Root cause of the auto-bump-pin miss flagged in #1864.
The Blueprint Release workflow has been in `startup_failure` since
PR #1858 (commit cf35b4a) merged at 21:04:22Z. The lockstep step's
multi-line shell heredoc inside a `run: |` block-scalar:
if [ ... ]; then
msg="deploy(...) (auto, Refs TBD-A6)
<-- literal blank line
Also locksteps platform blueprint.yaml ..." <-- column 1, no indent
is interpreted by the YAML scanner as the END of the block-scalar
at the blank line, and the next column-1 line is then parsed as a
new top-level mapping key — which fails because the previous mapping
isn't terminated. The whole workflow file is rejected at workflow-
startup time. Verified with `python3 -c yaml.safe_load(...)` (raises
`ScannerError: could not find expected ':' line 815`) and by `gh api
.../actions/runs/26060392136` returning `conclusion=failure,
status=completed, jobs: []` for every push since cf35b4a.
Consequence: no chart bump since cf35b4a has triggered the TBD-A6
auto-bump-pin or the TBD-A20 blueprint.yaml lockstep. PR #1865 was
the manual catch-up for bp-newapi (1.4.20 -> 1.4.21); without this
fix every future chart publish will drift the same way.
Fix: build the multi-line commit message with `printf '%s\n\n%s'`
so the string source stays on physically-indented lines that the
YAML block-scalar accepts. Behaviour is identical — same commit
subject, same blank line, same body — only the construction shape
changes. Added a 9-line comment naming the seam so future authors
don't reintroduce the same trap.
Verified locally:
* `python3 -c yaml.safe_load(open(...))` succeeds, parses 24
build-job steps.
* `CHART_NAME=bp-newapi PREV_VERSION=1.4.20 CHART_VERSION=1.4.21
BP_PREV_VERSION=1.4.20 bash -c "$(printf ...)"` emits the
canonical "deploy(bp-newapi): bump bootstrap-kit pin 1.4.20 ->
1.4.21 (auto, Refs TBD-A6)\n\nAlso locksteps platform ..." body.
Refs #1864.
Refs PR #1858 (TBD-A20 lockstep that introduced the YAML defect).