@@ -17,27 +17,19 @@ jobs:
1717 run : echo ${GITHUB_TOKEN} | docker login -u ${GITHUB_ACTOR} --password-stdin docker.pkg.github.com
1818 env :
1919 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
20- - name : Pull images
20+ - name : Pull image
2121 run : |
22- docker pull ${{ env.IMAGE }}-builder:latest || true
23- docker pull ${{ env.IMAGE }}-final:latest || true
24- - name : Build images
22+ docker pull ${{ env.IMAGE }}:latest || true
23+ - name : Build image
2524 run : |
2625 docker build \
27- --target builder \
28- --cache-from ${{ env.IMAGE }}-builder:latest \
29- --tag ${{ env.IMAGE }}-builder:latest \
30- --file ./project/Dockerfile.prod \
31- "./project"
32- docker build \
33- --cache-from ${{ env.IMAGE }}-final:latest \
34- --tag ${{ env.IMAGE }}-final:latest \
26+ --cache-from ${{ env.IMAGE }}:latest \
27+ --tag ${{ env.IMAGE }}:latest \
3528 --file ./project/Dockerfile.prod \
3629 "./project"
37- - name : Push images
30+ - name : Push image
3831 run : |
39- docker push ${{ env.IMAGE }}-builder:latest
40- docker push ${{ env.IMAGE }}-final:latest
32+ docker push ${{ env.IMAGE }}:latest
4133
4234 test :
4335 name : Test Docker Image
@@ -50,21 +42,14 @@ jobs:
5042 run : echo ${GITHUB_TOKEN} | docker login -u ${GITHUB_ACTOR} --password-stdin docker.pkg.github.com
5143 env :
5244 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
53- - name : Pull images
45+ - name : Pull image
5446 run : |
55- docker pull ${{ env.IMAGE }}-builder:latest || true
56- docker pull ${{ env.IMAGE }}-final:latest || true
57- - name : Build images
47+ docker pull ${{ env.IMAGE }}:latest || true
48+ - name : Build image
5849 run : |
5950 docker build \
60- --target builder \
61- --cache-from ${{ env.IMAGE }}-builder:latest \
62- --tag ${{ env.IMAGE }}-builder:latest \
63- --file ./project/Dockerfile.prod \
64- "./project"
65- docker build \
66- --cache-from ${{ env.IMAGE }}-final:latest \
67- --tag ${{ env.IMAGE }}-final:latest \
51+ --cache-from ${{ env.IMAGE }}:latest \
52+ --tag ${{ env.IMAGE }}:latest \
6853 --file ./project/Dockerfile.prod \
6954 "./project"
7055 - name : Run container
7661 -e ENVIRONMENT=dev \
7762 -e DATABASE_TEST_URL=sqlite://sqlite.db \
7863 -p 5003:8765 \
79- ${{ env.IMAGE }}-final:latest
80- - name : Install requirements
81- run : docker exec fastapi-tdd pip install black==20.8b1 flake8===3.8.4 isort==5.6.4 pytest==6.2.0
64+ ${{ env.IMAGE }}:latest
8265 - name : Pytest
8366 run : docker exec fastapi-tdd python -m pytest .
8467 - name : Flake8
8770 run : docker exec fastapi-tdd python -m black . --check
8871 - name : isort
8972 run : docker exec fastapi-tdd python -m isort . --check-only
90-
91- deploy :
92- name : Deploy to Heroku
93- runs-on : ubuntu-latest
94- needs : [build, test]
95- env :
96- HEROKU_APP_NAME : secret-crag-02876
97- HEROKU_REGISTRY_IMAGE : registry.heroku.com/${HEROKU_APP_NAME}/summarizer
98- steps :
99- - name : Checkout master
100- uses : actions/checkout@v2.3.4
101- - name : Log in to GitHub Packages
102- run : echo ${GITHUB_TOKEN} | docker login -u ${GITHUB_ACTOR} --password-stdin docker.pkg.github.com
103- env :
104- GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
105- - name : Pull images
106- run : |
107- docker pull ${{ env.IMAGE }}-builder:latest || true
108- docker pull ${{ env.IMAGE }}-final:latest || true
109- - name : Build images
110- run : |
111- docker build \
112- --target builder \
113- --cache-from ${{ env.IMAGE }}-builder:latest \
114- --tag ${{ env.IMAGE }}-builder:latest \
115- --file ./project/Dockerfile.prod \
116- "./project"
117- docker build \
118- --cache-from ${{ env.IMAGE }}-final:latest \
119- --tag ${{ env.IMAGE }}:latest \
120- --tag ${{ env.HEROKU_REGISTRY_IMAGE }}:latest \
121- --file ./project/Dockerfile.prod \
122- "./project"
123- - name : Log in to the Heroku Container Registry
124- run : docker login -u _ -p ${HEROKU_AUTH_TOKEN} registry.heroku.com
125- env :
126- HEROKU_AUTH_TOKEN : ${{ secrets.HEROKU_AUTH_TOKEN }}
127- - name : Push to the registry
128- run : docker push ${{ env.HEROKU_REGISTRY_IMAGE }}:latest
129- - name : Set environment variables
130- run : |
131- echo "HEROKU_REGISTRY_IMAGE=${{ env.HEROKU_REGISTRY_IMAGE }}" >> $GITHUB_ENV
132- echo "HEROKU_AUTH_TOKEN=${{ secrets.HEROKU_AUTH_TOKEN }}" >> $GITHUB_ENV
133- - name : Release
134- run : |
135- chmod +x ./release.sh
136- ./release.sh
0 commit comments