diff --git a/.github/workflows/stamp-version.yml b/.github/workflows/stamp-version.yml index 69a111d..5c73474 100644 --- a/.github/workflows/stamp-version.yml +++ b/.github/workflows/stamp-version.yml @@ -23,12 +23,16 @@ jobs: stamp: # The bot's own commit carries [skip-stamp]; pushes made with GITHUB_TOKEN # don't retrigger workflows anyway, so this guard is belt-and-suspenders. + # Match the subject line only: a squash commit carries the PR body, and #35's + # body merely mentioned "[skip-stamp]" — which skipped the stamp it shipped. # That same no-retrigger behaviour means the stamp push does not redeploy # the site on its own — and since v0 stamping, the stamp commit is where # `version: 0` and the README's `v0` cell first appear, so the last step # dispatches deploy.yml explicitly (a workflow_dispatch call from # GITHUB_TOKEN does run; only events *caused by* its pushes are dropped). - if: ${{ !contains(github.event.head_commit.message, '[skip-stamp]') }} + # A manual run (workflow_dispatch) always runs — stamp.mjs handles starting + # from the bot's own commit — so the guard applies to push events only. + if: ${{ github.event_name != 'push' || !startsWith(github.event.head_commit.message, 'Stamp QEP version hash and sync README [skip-stamp]') }} runs-on: ubuntu-latest steps: - uses: actions/checkout@v4