mirror of
https://github.com/headroomlabs-ai/headroom.git
synced 2026-08-27 14:17:10 -04:00
The X1 smoke-import job (PR #387) embedded the smoke check as a `<<PY ... PY` heredoc inside `bash -ec '...'`. The outer bash single-quote preserves whitespace, so the heredoc body and the closing `PY` retained their YAML indentation (column 14 inside `bash -ec`). Bash never found a column-0 `PY` and read past EOF: bash: line 71: warning: here-document at line 65 delimited by end-of-file (wanted `PY') IndentationError: unexpected indent Process completed with exit code 1 Caught immediately on the post-merge release run on main, manylinux_2_28_x86_64 / Python 3.11 (glibc 2.28-floor): https://github.com/chopratejas/headroom/actions/runs/25361396712/job/74362427755 `python -c "<f-string>"` was the obvious next try but reintroduces single-quote nesting (Python f-strings need quote chars; outer `bash -ec '...'` cannot contain unescaped single quotes). Fix: write the smoke script to `${RUNNER_TEMP}/smoke_import.py` in a new "Stage smoke-import script" step (one heredoc at YAML `run: |` level — uniform indent strip works fine). Linux job mounts it via `-v ${RUNNER_TEMP}/smoke_import.py:/smoke_import.py:ro` and runs `python /smoke_import.py`. macOS host runs the same file directly. No quoting drift between paths. Locally validated: - actionlint clean - 20/20 tests in test_release_workflows.py pass - hand-execution of the heredoc + script roundtrip works This is the second X1 follow-up after PR #387's shellcheck fix. The original X1 design's gap: no PR-time release dry-run that would have caught the heredoc on PR #387 itself. X2 (PR-time dry-run) is the structural fix. |
||
|---|---|---|
| .. | ||
| ci.yml | ||
| devcontainers.yml | ||
| docker.yml | ||
| docs.yml | ||
| eval.yml | ||
| init-e2e.yml | ||
| init-native-e2e.yml | ||
| publish.yml | ||
| release.yml | ||
| rust.yml | ||
| wrap-e2e.yml | ||