@@ -26,23 +26,39 @@ jobs:
2626 id-token : write
2727
2828 steps :
29+ - name : Checkout
30+ uses : actions/checkout@v4
31+
32+ - name : Check for Docker changes
33+ id : changes
34+ run : |
35+ if git diff --name-only ${{ github.event.before }} ${{ github.sha }} | grep '^\.devcontainer/Dockerfile'; then
36+ echo "changed=true" >> $GITHUB_OUTPUT
37+ else
38+ echo "changed=false" >> $GITHUB_OUTPUT
39+ fi
40+
2941 - name : Log in to Container registry
42+ if : ${{ steps.changes.outputs.changed == 'true' }}
3043 uses : docker/login-action@v3
3144 with :
3245 registry : ${{ env.REGISTRY }}
3346 username : ${{ github.actor }}
3447 password : ${{ secrets.GITHUB_TOKEN }}
3548
3649 - name : Extract metadata for Docker
50+ if : ${{ steps.changes.outputs.changed == 'true' }}
3751 id : meta
3852 uses : docker/metadata-action@v5
3953 with :
4054 images : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
4155
4256 - name : Set up Docker Buildx
57+ if : ${{ steps.changes.outputs.changed == 'true' }}
4358 uses : docker/setup-buildx-action@v3
4459
4560 - name : Build Docker image
61+ if : ${{ steps.changes.outputs.changed == 'true' }}
4662 id : push
4763 uses : docker/build-push-action@v6
4864 with :
5470 cache-to : type=gha,mode=max
5571
5672 - name : Generate artifact attestation
73+ if : ${{ steps.changes.outputs.changed == 'true' }}
5774 uses : actions/attest-build-provenance@v3
5875 with :
5976 subject-name : ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
0 commit comments