11name : Build and Run Docker Image
22
33on :
4+ schedule :
5+ # Refresh monthly to pick up base image updates
6+ - cron : ' 0 0 1 * *'
47 push :
58 branches :
6- - ' ci' # TODO: Trigger on push to release branches
9+ - main
10+ - ci
711
812jobs :
913 build :
1014 runs-on : ubuntu-latest
1115 outputs :
1216 DOCKER_IMAGE_NAME : ${{ steps.build-image-name.outputs.DOCKER_IMAGE_NAME }}
17+ VERSION : ${{ steps.build-image-name.outputs.VERSION }}
1318 CODELINE : ${{ steps.build-image-name.outputs.CODELINE }}
1419 INSTANCE_NAME : ${{ steps.build-image-name.outputs.INSTANCE_NAME }}
1520 steps :
@@ -18,11 +23,20 @@ jobs:
1823
1924 - name : Build Image Name
2025 id : build-image-name
26+ # TODO: going to both ENV and OUTPUTS is probably redundant
2127 run : |
2228 echo DOCKER_IMAGE_NAME=devdull/$(echo ${{ github.event.repository.name }} | tr '[A-Z]' '[a-z]') | tee -a $GITHUB_ENV | tee -a $GITHUB_OUTPUT
2329 echo CODELINE=$(echo ${{ github.ref_name }} | tr '[A-Z]' '[a-z]') | tee -a $GITHUB_ENV | tee -a $GITHUB_OUTPUT
2430 echo INSTANCE_NAME=${{ github.ref_name }}_InT | tee -a $GITHUB_ENV | tee -a $GITHUB_OUTPUT
2531
32+ - name : Set Version
33+ run : |
34+ version=$(cat pyterrabacktyl.py | grep __version__ | tr -d "[a-zA-Z ='_]")
35+ echo "VERSION=${version}" | tee -a $GITHUB_ENV | tee -a $GITHUB_OUTPUT
36+ if [ github.ref_name != 'main' ]; then
37+ echo "CODELINE=${{ github.ref_name }}_${version}" | tee -a $GITHUB_ENV | tee -a $GITHUB_OUTPUT
38+ fi
39+
2640 - name : Build Docker Image
2741 run : |
2842 docker build . --file Dockerfile --tag ${{ env.DOCKER_IMAGE_NAME }}:${{ env.CODELINE }}
@@ -183,17 +197,18 @@ jobs:
183197 - name : Docker Login
184198 run : |
185199 echo '${{ secrets.DOCKERHUB_PASSWORD }}' | docker login -u ${{ secrets.DOCKERHUB_USERNAME }} --password-stdin
186- echo '## Pushed image to DockerHub' >> $GITHUB_STEP_SUMMARY
200+ echo '## Push image to DockerHub (v${{ needs.build.outputs.VERSION }}) ' >> $GITHUB_STEP_SUMMARY
187201
188202 - name : Tag Docker Image
189203 if : github.ref_name != 'main'
190204 run : |
191- docker push ${{ needs.build.outputs.DOCKER_IMAGE_NAME }}:${{ needs.build.outputs.CODELINE }}
205+ echo docker push ${{ needs.build.outputs.DOCKER_IMAGE_NAME }}:${{ needs.build.outputs.CODELINE }}
192206 echo "${{ needs.build.outputs.DOCKER_IMAGE_NAME }}:${{ needs.build.outputs.CODELINE }}" >> $GITHUB_STEP_SUMMARY
193207
194208 - name : Tag and Push Latest
195209 if : github.ref_name == 'main'
196210 run : |
197211 docker tag ${{ needs.build.outputs.DOCKER_IMAGE_NAME }}:${{ needs.build.outputs.CODELINE }} ${{ needs.build.outputs.DOCKER_IMAGE_NAME }}:${{ needs.build.outputs.CODELINE }} ${{ needs.build.outputs.DOCKER_IMAGE_NAME }}:latest
198- docker push ${{ needs.build.outputs.DOCKER_IMAGE_NAME }}:latest
212+ docker tag ${{ needs.build.outputs.DOCKER_IMAGE_NAME }}:${{ needs.build.outputs.CODELINE }} ${{ needs.build.outputs.DOCKER_IMAGE_NAME }}:${{ needs.build.outputs.CODELINE }} ${{ needs.build.outputs.DOCKER_IMAGE_NAME }}:${{ needs.build.outputs.VERSION }}
213+ echo docker push ${{ needs.build.outputs.DOCKER_IMAGE_NAME }}:latest
199214 echo "${{ needs.build.outputs.DOCKER_IMAGE_NAME }}:${{ needs.build.outputs.CODELINE }}" >> $GITHUB_STEP_SUMMARY
0 commit comments