@@ -19,27 +19,19 @@ jobs:
1919 run : echo ${GITHUB_TOKEN} | docker login -u ${GITHUB_ACTOR} --password-stdin ghcr.io
2020 env :
2121 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
22- - name : Pull images
22+ - name : Pull image
2323 run : |
24- docker pull ${{ env.IMAGE }}-builder:latest || true
25- docker pull ${{ env.IMAGE }}-final:latest || true
26- - name : Build images
24+ docker pull ${{ env.IMAGE }}:latest || true
25+ - name : Build image
2726 run : |
2827 docker build \
29- --target builder \
30- --cache-from ${{ env.IMAGE }}-builder:latest \
31- --tag ${{ env.IMAGE }}-builder:latest \
32- --file ./project/Dockerfile.prod \
33- "./project"
34- docker build \
35- --cache-from ${{ env.IMAGE }}-final:latest \
36- --tag ${{ env.IMAGE }}-final:latest \
28+ --cache-from ${{ env.IMAGE }}:latest \
29+ --tag ${{ env.IMAGE }}:latest \
3730 --file ./project/Dockerfile.prod \
3831 "./project"
39- - name : Push images
32+ - name : Push image
4033 run : |
41- docker push ${{ env.IMAGE }}-builder:latest
42- docker push ${{ env.IMAGE }}-final:latest
34+ docker push ${{ env.IMAGE }}:latest
4335
4436 test :
4537 name : Test Docker Image
@@ -54,21 +46,14 @@ jobs:
5446 run : echo ${GITHUB_TOKEN} | docker login -u ${GITHUB_ACTOR} --password-stdin ghcr.io
5547 env :
5648 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
57- - name : Pull images
49+ - name : Pull image
5850 run : |
59- docker pull ${{ env.IMAGE }}-builder:latest || true
60- docker pull ${{ env.IMAGE }}-final:latest || true
61- - name : Build images
51+ docker pull ${{ env.IMAGE }}:latest || true
52+ - name : Build image
6253 run : |
6354 docker build \
64- --target builder \
65- --cache-from ${{ env.IMAGE }}-builder:latest \
66- --tag ${{ env.IMAGE }}-builder:latest \
67- --file ./project/Dockerfile.prod \
68- "./project"
69- docker build \
70- --cache-from ${{ env.IMAGE }}-final:latest \
71- --tag ${{ env.IMAGE }}-final:latest \
55+ --cache-from ${{ env.IMAGE }}:latest \
56+ --tag ${{ env.IMAGE }}:latest \
7257 --file ./project/Dockerfile.prod \
7358 "./project"
7459 - name : Run container
8166 -e DATABASE_URL=sqlite://sqlite.db \
8267 -e DATABASE_TEST_URL=sqlite://sqlite.db \
8368 -p 5003:8765 \
84- ${{ env.IMAGE }}-final:latest
85- - name : Install requirements
86- run : docker exec fastapi-tdd pip install black==23.12.1 flake8==7.0.0 isort==5.13.2 pytest==7.4.4
69+ ${{ env.IMAGE }}:latest
8770 - name : Pytest
8871 run : docker exec fastapi-tdd python -m pytest .
8972 - name : Flake8
9275 run : docker exec fastapi-tdd python -m black . --check
9376 - name : isort
9477 run : docker exec fastapi-tdd python -m isort . --check-only
95-
96- deploy :
97- name : Deploy to Heroku
98- runs-on : ubuntu-latest
99- needs : [build, test]
100- env :
101- HEROKU_APP_NAME : quiet-citadel-80656
102- HEROKU_REGISTRY_IMAGE : registry.heroku.com/${HEROKU_APP_NAME}/summarizer
103- steps :
104- - name : Checkout
105- uses : actions/checkout@v3
106- with :
107- ref : main
108- - name : Log in to GitHub Packages
109- run : echo ${GITHUB_TOKEN} | docker login -u ${GITHUB_ACTOR} --password-stdin ghcr.io
110- env :
111- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
112- - name : Pull images
113- run : |
114- docker pull ${{ env.IMAGE }}-builder:latest || true
115- docker pull ${{ env.IMAGE }}-final:latest || true
116- - name : Build images
117- run : |
118- docker build \
119- --target builder \
120- --cache-from ${{ env.IMAGE }}-builder:latest \
121- --tag ${{ env.IMAGE }}-builder:latest \
122- --file ./project/Dockerfile.prod \
123- "./project"
124- docker build \
125- --cache-from ${{ env.IMAGE }}-final:latest \
126- --tag ${{ env.IMAGE }}:latest \
127- --tag ${{ env.HEROKU_REGISTRY_IMAGE }}:latest \
128- --file ./project/Dockerfile.prod \
129- "./project"
130- - name : Log in to the Heroku Container Registry
131- run : docker login -u _ -p ${HEROKU_AUTH_TOKEN} registry.heroku.com
132- env :
133- HEROKU_AUTH_TOKEN : ${{ secrets.HEROKU_AUTH_TOKEN }}
134- - name : Push to the registry
135- run : docker push ${{ env.HEROKU_REGISTRY_IMAGE }}:latest
136- - name : Set environment variables
137- run : |
138- echo "HEROKU_REGISTRY_IMAGE=${{ env.HEROKU_REGISTRY_IMAGE }}" >> $GITHUB_ENV
139- echo "HEROKU_AUTH_TOKEN=${{ secrets.HEROKU_AUTH_TOKEN }}" >> $GITHUB_ENV
140- - name : Release
141- run : |
142- chmod +x ./release.sh
143- ./release.sh
0 commit comments