headroom/.github/workflows
chopratejas 7fe2d1e5b6 fix(ci): stage smoke-import script as host file (broke main post-#387)
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.
2026-05-04 23:52:52 -07:00
..
ci.yml refactor: single-wheel maturin build backend (fixes #355) 2026-05-03 13:16:41 -07:00
devcontainers.yml fix: harden devcontainer worktree startup 2026-04-10 13:49:29 -05:00
docker.yml fix(ci): docker per-arch bake needs explicit image name in output 2026-05-04 12:26:46 -07:00
docs.yml Add MkDocs GitHub Pages documentation site 2026-01-30 20:33:29 -08:00
eval.yml refactor: single-wheel maturin build backend (fixes #355) 2026-05-03 13:16:41 -07:00
init-e2e.yml test: cover init install flows end to end 2026-04-21 20:15:11 -05:00
init-native-e2e.yml refactor: single-wheel maturin build backend (fixes #355) 2026-05-03 13:16:41 -07:00
publish.yml refactor: single-wheel maturin build backend (fixes #355) 2026-05-03 13:16:41 -07:00
release.yml fix(ci): stage smoke-import script as host file (broke main post-#387) 2026-05-04 23:52:52 -07:00
rust.yml fix(ci): yarnpkg GPG + YAML colon syntax in refactor 2026-05-03 13:22:49 -07:00
wrap-e2e.yml feat(ci): add docker wrap e2e workflow 2026-04-07 22:36:43 -05:00