diff --git a/.gitea/workflows/lint.yml b/.gitea/workflows/lint.yml index 51348ed..af2242a 100644 --- a/.gitea/workflows/lint.yml +++ b/.gitea/workflows/lint.yml @@ -11,16 +11,19 @@ name: Lint # triggered. # # `branches: ['**']` (rather than a bare `push:`) deliberately EXCLUDES tag -# pushes. A bare `push:` also fires on `refs/tags/v*`, which was pure duplicate -# work — the tagged tree was already linted when the same commit was pushed to -# main (v1.6.4: lint id=529 on refs/heads/main, then id=531 again on -# refs/tags/v1.6.4, same sha e86e5df). Worse, that duplicate consumed one of the -# two self-hosted runners while the release pipeline wanted both for its -# parallel multi-arch variant builds, and it made release-run discovery -# ambiguous: the runs listing is newest-first, so the tag-ref lint run sorts -# ABOVE the publish run and "first run matching refs/tags/" picks lint — -# which goes green in minutes while the image is still building. See AGENTS.md -# "Gitea API access" for the head_sha-filtered discovery pattern. +# pushes. A bare `push:` also fires on `refs/tags/v*`, which was duplicate work — +# the tagged tree was already linted when the same commit was pushed to main +# (v1.6.4: lint id=529 on refs/heads/main, then id=531 again on +# refs/tags/v1.6.4, same sha e86e5df). The wasted compute is small (measured: +# lint here runs 0.3-0.9 min, against a 77.6 min release build for v1.6.4 — so +# runner contention is NOT a real argument in this repo, unlike opencode-devbox +# where actionlint installs shellcheck and takes 6-15 min). The substantive +# reason is discovery ambiguity: the runs listing is newest-first, so the +# tag-ref lint run sorts ABOVE the publish run, and "first run matching +# refs/tags/" picks lint — which goes green in under a minute while the +# image is still building, making a release look finished before anything is +# published. See AGENTS.md "Gitea API access" for the head_sha-filtered +# discovery pattern. on: push: branches: