From be4e77c13697a37668998c5846b85e8104f1d6fb Mon Sep 17 00:00:00 2001 From: Carl Bennett Date: Fri, 20 Mar 2026 13:22:52 -0500 Subject: [PATCH] fix: trigger docker-build workflow after GITHUB_TOKEN push from update.yml GITHUB_TOKEN pushes do not trigger downstream workflows, so docker-build.yml never fires after update.yml commits a new version. Add a workflow_run trigger so docker-build runs after Check Update completes. A change-detection step skips the build when triggered via workflow_run but buildinfo.json was not modified, avoiding spurious builds on every hourly run. References #604 Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/docker-build.yml | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) diff --git a/.github/workflows/docker-build.yml b/.github/workflows/docker-build.yml index 08593067..cb570ae8 100644 --- a/.github/workflows/docker-build.yml +++ b/.github/workflows/docker-build.yml @@ -6,7 +6,13 @@ on: - master paths: - buildinfo.json - # workaround for #526 + # workflow_run is used because GITHUB_TOKEN pushes from update.yml don't trigger push events + workflow_run: + workflows: ["Check Update"] + types: + - completed + branches: + - master workflow_dispatch: jobs: @@ -16,12 +22,25 @@ jobs: - name: Checkout uses: actions/checkout@v6 + with: + fetch-depth: 2 + + - name: Check if buildinfo.json changed + id: check + if: github.event_name == 'workflow_run' + run: | + if git diff --name-only HEAD~1 HEAD | grep -q '^buildinfo.json$'; then + echo "changed=true" >> $GITHUB_OUTPUT + else + echo "changed=false" >> $GITHUB_OUTPUT + fi - name: Set up QEMU + if: github.event_name != 'workflow_run' || steps.check.outputs.changed == 'true' uses: docker/setup-qemu-action@v3 - name: build and push all images - if: ${{ env.DOCKER_USERNAME != '' && env.DOCKER_PASSWORD != '' }} + if: (github.event_name != 'workflow_run' || steps.check.outputs.changed == 'true') && env.DOCKER_USERNAME != '' && env.DOCKER_PASSWORD != '' env: DOCKER_PASSWORD: ${{ secrets.DOCKER_PASSWORD }} DOCKER_USERNAME: ${{ secrets.DOCKER_USERNAME }}