Skip to content

fix(ci): fix YAML literal block scalar indentation in 3 workflows - #124

Merged
mpaulosky merged 1 commit into
mainfrom
squad/123-fix-workflow-yaml
Apr 24, 2026
Merged

fix(ci): fix YAML literal block scalar indentation in 3 workflows#124
mpaulosky merged 1 commit into
mainfrom
squad/123-fix-workflow-yaml

Conversation

@mpaulosky

Copy link
Copy Markdown
Owner

Summary

Working as Boromir (DevOps Engineer)

Closes #123

Fixes YAML parse failures in three GitHub Actions workflows that have been silently failing since the Sprint 5 merge (PR #122).

Root Cause

All three workflows use run: | (YAML literal block scalars) where multi-line bash body strings drop to column 0 inside the block. The block indentation level is 10 spaces (set by the first content line). Any non-empty line at column 0 terminates the YAML block, causing a parse error before any job starts.

Evidence:

  • Zero jobs ran for all 3 failing runs (total_count: 0, jobs: [])
  • Run name showed the file path instead of the workflow's name: field (GitHub couldn't parse past the error)
  • All three runs show event: push because GitHub registers new workflow files on the first push to main

Fix

Added the required 10-space block indentation prefix to all col-0 non-empty content lines within each run: | block. YAML strips exactly the block-indent level from each line during parse, so the resulting bash script content is semantically identical — no behavior change.

Files Changed

File Error location Lines fixed
release-blog.yml line 49, col 1 17 lines in BODY string
milestone-blog.yml line 65, col 1 25 lines in BODY string
milestone-release-decision.yml lines 66, 112, 144 18 lines across 3 run blocks

squad-release.yml Status

This workflow (tag push trigger) validated OK and was intentionally not triggered for v1.2.0 — GitHub's anti-loop protection prevents push: tags workflows from firing when the tag is pushed by a GITHUB_TOKEN workflow run. The v1.2.0 release was correctly created by squad-milestone-release.yml.

Verification

python3 -c 'import yaml; [yaml.safe_load(open(f).read()) for f in ["release-blog.yml", "milestone-blog.yml", "milestone-release-decision.yml"]]'
# No errors — all 3 files parse cleanly

release-blog.yml, milestone-blog.yml, and milestone-release-decision.yml
all failed to parse because multi-line bash body strings inside run: |
blocks had content lines at column 0. YAML literal block scalars terminate
on any non-empty line below the established block indent level (10 spaces).

Fix: add the required 10-space block indentation to all col-0 non-empty
lines within each run: | block. YAML strips the block indent on parse,
so the resulting bash script content is semantically identical.

Root cause was introduced in dev branch ~Apr 21 when the workflows were
authored with unindented heredoc-style strings inside YAML run blocks.

Affected workflows (zero jobs ever ran — pure parse failures):
- release-blog.yml:               on release:published
- milestone-blog.yml:             on milestone:closed
- milestone-release-decision.yml: on issues:labeled

squad-release.yml (on push:tags) validated OK; did not run for v1.2.0
because tags were pushed by GITHUB_TOKEN (GitHub anti-loop protection) —
the release was correctly created by squad-milestone-release.yml instead.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot AI review requested due to automatic review settings April 24, 2026 05:16
@github-actions github-actions Bot added the squad Squad triage inbox — Lead will assign to a member label Apr 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

🏗️ PR Added to Squad Triage Queue

This PR has been labeled with squad and added to the triage queue.

Next steps:

  • The squad Lead will review and assign to an appropriate team member
  • A squad:member label will be added after triage

If you know which squad member should handle this, you can add the appropriate squad:member label yourself.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot wasn't able to review any files in this pull request.

@github-actions

Copy link
Copy Markdown
Contributor

Test Results Summary

206 tests  ±0   206 ✅ ±0   14s ⏱️ ±0s
  5 suites ±0     0 💤 ±0 
  5 files   ±0     0 ❌ ±0 

Results for commit aa7f0da. ± Comparison against base commit 07f8291.

@codecov

codecov Bot commented Apr 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 76.93%. Comparing base (07f8291) to head (aa7f0da).
⚠️ Report is 1 commits behind head on main.

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #124   +/-   ##
=======================================
  Coverage   76.93%   76.93%           
=======================================
  Files          43       43           
  Lines         672      672           
  Branches      111      111           
=======================================
  Hits          517      517           
  Misses        105      105           
  Partials       50       50           
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@mpaulosky
mpaulosky merged commit 2cbd189 into main Apr 24, 2026
21 checks passed
@mpaulosky
mpaulosky deleted the squad/123-fix-workflow-yaml branch April 24, 2026 15:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

squad Squad triage inbox — Lead will assign to a member

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants