Skip to content

fix: release.yml YAML parse error (0-job startup failure on tag push)#10

Merged
SoundMatt merged 1 commit into
mainfrom
fix/release-workflow-yaml
Jun 17, 2026
Merged

fix: release.yml YAML parse error (0-job startup failure on tag push)#10
SoundMatt merged 1 commit into
mainfrom
fix/release-workflow-yaml

Conversation

@SoundMatt

Copy link
Copy Markdown
Owner

Problem

Every v* tag push produced a red release.yml run with 0 jobs and the message "This run likely failed because of a workflow file issue." The releases themselves exist only because they were created manually with gh release create — the workflow that regenerates safety artifacts (FMEA, TARA, GSN safety case, ISO 26262 / IEC 61508 / DO-178C gap reports, SBOM, audit pack, badge) never actually ran.

Root cause

The "Commit regenerated artifacts" step embedded a multi-line commit message inside a run: | block scalar:

            git commit -m "chore: regenerate safety artifacts for $TAG [skip ci]

Signed-off-by: github-actions[bot] <...>"

The Signed-off-by: trailer sits at column 0. In YAML, a non-indented non-empty line terminates a literal block scalar, so the parser then tried to read Signed-off-by: ... as a mapping key. This is a structural parse error → workflow startup failure with no jobs.

Confirmed with PyYAML against the pre-fix file:

mapping values are not allowed here
  in "release.yml", line 148, column 13

Fix

Build the commit message with two -m flags so every line stays indented within the block scalar:

            git commit \
              -m "chore: regenerate safety artifacts for $TAG [skip ci]" \
              -m "Signed-off-by: github-actions[bot] <...>"

The DCO trailer is preserved (now as a second -m body line).

Validation

  • PyYAML parses release.yml, ci.yml, dco.yml cleanly after the fix
  • PyYAML confirms the pre-fix release.yml raised the parse error
  • CI matrix green on this PR
  • After merge: re-tag to confirm release.yml runs green end-to-end

The git commit step embedded a multi-line commit message inside a `run: |`
block scalar with the `Signed-off-by:` trailer at column 0. A non-indented,
non-empty line terminates a YAML literal block scalar, so the parser then read
`Signed-off-by: ...` as a mapping key and the workflow failed to parse —
producing a 0-job startup failure on every `v*` tag push (the "This run likely
failed because of a workflow file issue" error).

Fix: build the commit message with two `-m` flags, keeping all content properly
indented within the block scalar. Validated with PyYAML: release.yml, ci.yml,
and dco.yml all parse cleanly.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Matt Jones <47545907+SoundMatt@users.noreply.github.com>
@SoundMatt
SoundMatt merged commit 91ace31 into main Jun 17, 2026
19 checks passed
@SoundMatt
SoundMatt deleted the fix/release-workflow-yaml branch June 17, 2026 02:51
SoundMatt added a commit that referenced this pull request Jun 17, 2026
…ports

After the YAML parse fix (PR #10) the Release workflow ran for real and surfaced
two runtime failures, both already solved the same way in ci.yml:

1. `lcov --capture` failed with "GCOV failed ... .gcda" because the coverage
   build uses g++-12 but the runner's default gcov is v11. Add
   `--gcov-tool gcov-12`, matching ci.yml.

2. The certification gap/coverage reports (ISO 26262 ASIL-B, IEC 61508 SIL-2,
   DO-178C DAL-B, structural coverage, full compliance report) grade against
   100% thresholds the stub bridge implementations cannot meet, so they exit
   non-zero by design. The release workflow's job is to GENERATE these artifacts,
   not gate on them (gating lives in ci.yml), so append `|| true` — same pattern
   as ci.yml's cpfusa-report job. Pure artifact generators (fmea, safety-case,
   tara, sbom, sas, sci, audit-pack, badge) and the qualify gate stay hard.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Signed-off-by: Matt Jones <47545907+SoundMatt@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant