1919 # We need to share it between build and deploy jobs.
2020 outputs :
2121 registry_path : ${{ steps.registry_path.outputs.registry_path }}
22- tag : ${{ steps.tag_var.outputs.tag }}
22+ tag : ${{ steps.tag_vars.outputs.tag }}
23+ tag_latest : ${{ steps.tag_vars.outputs.tag_latest }}
2324 env_name : ${{ steps.env_var.outputs.env_name }}
2425
2526 steps :
3031 id : registry_path
3132 run : echo "registry_path=${{ env.REGISTRY }}/exadel-inc/compreface/" >> $GITHUB_OUTPUT
3233
33- - name : Set commit sha output from git
34- id : tag_var
35- run : echo "tag=${{ github.ref_name }}-$(git rev-parse HEAD | cut -c 1-7 | tr -d '\n')" >> $GITHUB_OUTPUT
34+ - name : Set tags from git output
35+ id : tag_vars
36+ run : |
37+ echo "tag=${{ github.ref_name }}-$(git rev-parse HEAD | cut -c 1-7 | tr -d '\n')" >> $GITHUB_OUTPUT
38+ echo "tag_latest=${{ github.ref_name }}-latest" >> $GITHUB_OUTPUT
3639
3740 - name : Set environment output from git
3841 id : env_var
@@ -48,19 +51,21 @@ jobs:
4851 - name : Check outputs
4952 run : |
5053 echo "Branch : ${{ github.ref_name }}"
51- echo "TAG : ${{ steps.tag_var .outputs.tag }}"
54+ echo "Tags : ${{ steps.tag_vars .outputs.tag }}, ${{ steps.tag_vars.outputs.tag_latest }}"
5255 echo "Environment: ${{ steps.env_var.outputs.env_name }}"
5356
5457 - name : Build images
5558 env :
56- TAG : ${{ steps.tag_var.outputs.tag }}
59+ TAG : ${{ steps.tag_vars.outputs.tag }}
60+ TAG_LATEST : ${{ steps.tag_vars.outputs.tag_latest }}
5761 REGISTRY_PATH : ${{ steps.registry_path.outputs.registry_path }}
58- APPERY_API_KEY : ${{ secrets.APPERY_API_KEY }}
5962 working-directory : ./dev
6063 run : |
6164 sed -i "s|registry=|registry=${REGISTRY_PATH}|g" .env
6265 sed -i "s/latest/${TAG}/g" .env
6366 docker-compose build
67+ sed -i "s/${TAG}/${TAG_LATEST}/g" .env
68+ docker-compose build
6469 docker images
6570
6671 - name : Log in to the Container registry
@@ -71,16 +76,21 @@ jobs:
7176 password : ${{ secrets.GITHUB_TOKEN }}
7277
7378 - name : Push images to the Container registry
79+ env :
80+ TAG : ${{ steps.tag_vars.outputs.tag }}
81+ TAG_LATEST : ${{ steps.tag_vars.outputs.tag_latest }}
7482 working-directory : ./dev
7583 run : |
7684 docker-compose push
85+ sed -i "s/${TAG_LATEST}/${TAG}/g" .env
86+ docker-compose push
7787
7888 deploy :
7989 needs : build
8090 # It's not possible to use natively env (e.g. env.ENV_NAME) variable on the runs-on job field (yet?)
8191 # for deploy to different environments depending on branch https://github.com/actions/runner/issues/480
8292 # That's why we use output from the previous build job
83- # Note: we are using self-hosted runner here
93+ # Note: we are using self-hosted runner here
8494 runs-on : ["${{needs.build.outputs.env_name}}"]
8595
8696 steps :
@@ -90,11 +100,11 @@ jobs:
90100 - name : Deploy
91101 working-directory : ./dev
92102 env :
93- TAG : ${{ needs.build.outputs.tag }}
103+ TAG_LATEST : ${{ needs.build.outputs.tag_latest }}
94104 REGISTRY_PATH : ${{ needs.build.outputs.registry_path }}
95105 run : |
96106 sed -i "s|registry=|registry=${REGISTRY_PATH}|g" .env
97- sed -i "s/latest/${TAG }/g" .env
107+ sed -i "s/latest/${TAG_LATEST }/g" .env
98108 sudo docker-compose stop
99109 sudo docker system prune -a -f
100110 sudo docker-compose pull
0 commit comments