@@ -2,6 +2,8 @@ name: push
22on :
33 push :
44 branches : main
5+ tags :
6+ - ' v*'
57
68env :
79 BACKEND_IMAGE_NAME : alert-api
@@ -23,15 +25,22 @@ jobs:
2325 poetry-version : ${{ env.POETRY_VERSION }}
2426 - name : Resolve dependencies
2527 run : poetry export -f requirements.txt --without-hashes --output requirements.txt
28+ - name : Resolve image tag
29+ run : |
30+ if [[ "${GITHUB_REF}" == refs/tags/v* ]]; then
31+ echo "IMAGE_TAG=${GITHUB_REF#refs/tags/v}" >> $GITHUB_ENV
32+ else
33+ echo "IMAGE_TAG=latest" >> $GITHUB_ENV
34+ fi
2635 - name : Build docker
27- run : docker build -f src/Dockerfile . -t $DOCKERHUB_USER/$BACKEND_IMAGE_NAME:latest
36+ run : docker build -f src/Dockerfile . -t $DOCKERHUB_USER/$BACKEND_IMAGE_NAME:$IMAGE_TAG
2837 - name : Login to DockerHub
2938 uses : docker/login-action@v3
3039 with :
3140 username : ${{ secrets.DOCKERHUB_LOGIN }}
3241 password : ${{ secrets.DOCKERHUB_PW }}
3342 - name : Push to hub
34- run : docker push $DOCKERHUB_USER/$BACKEND_IMAGE_NAME:latest
43+ run : docker push $DOCKERHUB_USER/$BACKEND_IMAGE_NAME:$IMAGE_TAG
3544 - name : Login to GHCR
3645 uses : docker/login-action@v3
3746 with :
@@ -42,10 +51,11 @@ jobs:
4251 run : |
4352 IMAGE_ID=ghcr.io/${{ github.repository_owner }}/$BACKEND_IMAGE_NAME
4453 IMAGE_ID=$(echo $IMAGE_ID | tr '[A-Z]' '[a-z]')
45- docker tag $DOCKERHUB_USER/$BACKEND_IMAGE_NAME:latest $IMAGE_ID:latest
46- docker push $IMAGE_ID:latest
54+ docker tag $DOCKERHUB_USER/$BACKEND_IMAGE_NAME:$IMAGE_TAG $IMAGE_ID:$IMAGE_TAG
55+ docker push $IMAGE_ID:$IMAGE_TAG
4756
4857 deploy-dev :
58+ if : github.ref == 'refs/heads/main'
4959 needs : docker
5060 runs-on : ubuntu-latest
5161 steps :
0 commit comments