ci: run the finalize-release shell tests - #249
Conversation
osr21
left a comment
There was a problem hiding this comment.
Reviewed against a fresh clone of main and against #247's diff. Everything technically claimed here holds; the one real issue is coordination, not correctness.
Verified:
- Both suites are indeed referenced nowhere —
grep -rnfortest_arcupandtest-finalize-releaseoutside the scripts themselves comes back empty across the whole tree,.github/and Makefile included. - Your macOS-only caveat is closed: I ran both suites on Linux (GNU coreutils/tar, bash 5).
arcup/test_arcup.sh→ 25/25 ok, exit 0;.github/scripts/test-finalize-release.sh→finalize-release tests passed, exit 0. Thesha256sum/shasumand GNU/BSDtarbranching works, so the firstubuntu-latestrun should be green rather than "the confirming check." - The pinned checkout SHA (
df4cb1c0… # v6.0.3) matches the exact convention used by all ten existing jobs inci.yml, and a dependency-free parallel job fits the workflow's structure (noneeds:, no toolchain).
The blocking concern: this overlaps #247, opened ~2h before the issue this PR closes. That PR wires the arcup suite into CI via make test-arcup (glob-based, so future arcup/*_test.sh files are picked up automatically), adds it to test-all, and runs shellcheck over arcup/arcup and arcup/install. I diffed both PRs: they insert their job at the same anchor in ci.yml (after the docker job), so whichever merges second conflicts, and if both merged the arcup suite would run twice per CI pass. Details in my comment on #248.
Suggested resolution — which keeps this PR's genuinely novel contribution intact: #247 is a strict superset on the arcup half (CI + Makefile + lint), but it does not touch test-finalize-release.sh — that coverage exists only here. So the clean split is to slim this PR to the finalize-release suite: either keep shell-tests as a small job running just that script, or coordinate with @wolfgang1211 to add it as one extra step in his job. Since you offered a make target restructure in the PR description anyway: a make test-finalize-release target mirroring #247's test-arcup pattern would make the two PRs compose neatly instead of collide.
Happy to re-verify whichever shape this lands in.
`.github/scripts/test-finalize-release.sh` covers the release finalizer's
tag and version parsing, and nothing invokes it — not CI, not the
Makefile, not another script:
$ grep -rn "test-finalize-release" .github/ Makefile \
| grep -v "^.github/scripts/test-finalize-release.sh"
(no matches)
Add a `make test-finalize-release` target and a standalone CI job that
calls it. No toolchain and no network, so it runs in parallel with
everything else and finishes in seconds.
The target mirrors the `test-arcup` pattern in circlefin#247, which covers the
other orphaned suite (`arcup/test_arcup.sh`) more thoroughly than an
earlier revision of this branch did. Scoped down to the finalize-release
half so the two compose instead of colliding: circlefin#247 anchors its job after
`proto` and its target before `test-all`, this one anchors before
`docker-build` and after `test-all`, so the diffs do not overlap.
`test-all` deliberately left alone — it is a single line both PRs would
otherwise touch. Happy to add this target to it in a follow-up once circlefin#247
lands.
Closes circlefin#248
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2b4fba0 to
550bca6
Compare
|
Thanks — you were right on both counts, and the Linux run is genuinely useful: that closes the one caveat I could not resolve here (no Docker, no Linux box), so the first On the overlap: my mistake, and worth naming precisely so I do not repeat it. I swept the issue tracker for anything already claiming this ground and stopped there — I never checked open PRs. #247 predates my issue by about two hours, so the collision was entirely avoidable. Rescoped to the finalize-release half. #247 is the better answer on arcup — glob discovery so future Anchored the two changes apart so they merge in either order rather than racing:
I left |
|
Re-verified the rescoped shape (
One tiny observation, take it or leave it: With the overlap resolved, both PRs are now independently mergeable and jointly complete: #247 covers the installer half (tests + lint + |
Closes #248.
Summary
.github/scripts/test-finalize-release.shcovers the release finalizer's tag and version parsing, and nothing invokes it:Adds a
make test-finalize-releasetarget and a standaloneRelease Finalizerjob that calls it. No toolchain, no network, noneeds:— runs in parallel and finishes in seconds.Composing with #247
The target deliberately mirrors #247's
test-arcupshape, and the two changes are anchored apart so they merge in either order:ci.ymljobprotodocker-buildtest-alltest-alltest-allis left alone on purpose — it is the one line both PRs would otherwise touch. Addingtest-finalize-releaseto it is a clean follow-up once #247 lands, and I am happy to open that.Testing
Verified on macOS here. @osr21 ran both suites on Linux (GNU coreutils/tar, bash 5) during review and reported
finalize-release tests passed, exit 0 — so the macOS-only caveat from the first revision is closed and the firstubuntu-latestrun should be green rather than exploratory.