memories/gha-reusable-workflows.md records several consumer-side gotchas but
not this one, which cost a review round tonight.
lint-markdown.yml's fail input gates markdownlint only. The composite also
runs a list-item merge-splice check, a fenced-code-block length check, and a
GFM table-split check, gated by fail-on-item-splices,
fail-on-long-code-blocks, and fail-on-table-splits respectively --- each
defaulting to true.
So a caller written fail: false, to adopt the workflow warn-only while a
pre-existing backlog is worked down, still fails the build.
The reason it costs a round rather than a minute is that the evidence reads as
a contradiction: the caller says warn-only, the check is red, and the natural
hypotheses are a wrong pin or an ignored input. Both are wrong. A different
check inside the same job failed, and the job's conclusion comes from whichever
step failed --- which is the same shape fully-clean.md already describes for a
green guard step beside a red job.
lint-yaml.yml has the same split: fail gates yamllint, fail-on-long-scripts
gates its companion.
Measured on UCD-SERG/shigella#37. Its lint-markdown caller was added at
fail: false in UCD-SERG/shigella#33 and went red on six list-item splices.
memories/gha-reusable-workflows.mdrecords several consumer-side gotchas butnot this one, which cost a review round tonight.
lint-markdown.yml'sfailinput gates markdownlint only. The composite alsoruns a list-item merge-splice check, a fenced-code-block length check, and a
GFM table-split check, gated by
fail-on-item-splices,fail-on-long-code-blocks, andfail-on-table-splitsrespectively --- eachdefaulting to true.
So a caller written
fail: false, to adopt the workflow warn-only while apre-existing backlog is worked down, still fails the build.
The reason it costs a round rather than a minute is that the evidence reads as
a contradiction: the caller says warn-only, the check is red, and the natural
hypotheses are a wrong pin or an ignored input. Both are wrong. A different
check inside the same job failed, and the job's conclusion comes from whichever
step failed --- which is the same shape
fully-clean.mdalready describes for agreen guard step beside a red job.
lint-yaml.ymlhas the same split:failgates yamllint,fail-on-long-scriptsgates its companion.
Measured on UCD-SERG/shigella#37. Its
lint-markdowncaller was added atfail: falsein UCD-SERG/shigella#33 and went red on six list-item splices.