ci: skip build and publish when upstream versions are unchanged
Build and update CoreDNS MySQL / image (push) Successful in 33s

This commit is contained in:
bryanpedini committed 2026-11-09 23:22:33 +01:00
1 parent 6835e480c1
commit 94e55db7c8
1 file changed
+8 -3
+8 -3
View File
@@ -19,16 +19,21 @@ jobs:
with: with:
persist-credentials: false persist-credentials: false
- name: Check upstream versions - name: Check upstream versions
id: update
if: github.event_name != 'push' if: github.event_name != 'push'
run: python3 scripts/update.py run: |
set -eu
python3 scripts/update.py
if git diff --quiet -- versions.env; then echo changed=false; else echo changed=true; fi >> "$GITHUB_OUTPUT"
- name: Build and test - name: Build and test
if: github.event_name == 'push' || steps.update.outputs.changed == 'true'
run: | run: |
set -eu set -eu
. ./versions.env . ./versions.env
docker build --pull --build-arg COREDNS_VERSION="$COREDNS_VERSION" --build-arg MYSQL_PLUGIN_REV="$MYSQL_PLUGIN_REV" -f dockerfile -t coredns-mysql:ci . docker build --pull --build-arg COREDNS_VERSION="$COREDNS_VERSION" --build-arg MYSQL_PLUGIN_REV="$MYSQL_PLUGIN_REV" -f dockerfile -t coredns-mysql:ci .
scripts/test-image.sh coredns-mysql:ci "$COREDNS_VERSION" scripts/test-image.sh coredns-mysql:ci "$COREDNS_VERSION"
- name: Commit and push updated versions - name: Commit and push updated versions
if: github.event_name != 'push' if: github.event_name != 'push' && steps.update.outputs.changed == 'true'
env: env:
GIT_HOST: ${{ vars.GIT_HOST }} GIT_HOST: ${{ vars.GIT_HOST }}
GIT_NAME: ${{ vars.GIT_NAME }} GIT_NAME: ${{ vars.GIT_NAME }}
@@ -37,7 +42,6 @@ jobs:
GIT_TOKEN: ${{ secrets.GIT_TOKEN }} GIT_TOKEN: ${{ secrets.GIT_TOKEN }}
run: | run: |
set -eu set -eu
if git diff --quiet -- versions.env; then exit 0; fi
test -n "$GIT_HOST" && test -n "$GIT_NAME" && test -n "$GIT_EMAIL" && test -n "$REGISTRY_USER" && test -n "$GIT_TOKEN" test -n "$GIT_HOST" && test -n "$GIT_NAME" && test -n "$GIT_EMAIL" && test -n "$REGISTRY_USER" && test -n "$GIT_TOKEN"
git config user.name "$GIT_NAME" git config user.name "$GIT_NAME"
git config user.email "$GIT_EMAIL" git config user.email "$GIT_EMAIL"
@@ -49,6 +53,7 @@ jobs:
chmod 700 "$askpass" chmod 700 "$askpass"
GIT_ASKPASS="$askpass" GIT_TERMINAL_PROMPT=0 git push "https://${GIT_HOST}/${GITHUB_REPOSITORY}.git" HEAD:refs/heads/main GIT_ASKPASS="$askpass" GIT_TERMINAL_PROMPT=0 git push "https://${GIT_HOST}/${GITHUB_REPOSITORY}.git" HEAD:refs/heads/main
- name: Publish image - name: Publish image
if: github.event_name == 'push' || steps.update.outputs.changed == 'true'
env: env:
GIT_HOST: ${{ vars.GIT_HOST }} GIT_HOST: ${{ vars.GIT_HOST }}
REGISTRY_USER: ${{ vars.REGISTRY_USER }} REGISTRY_USER: ${{ vars.REGISTRY_USER }}