Conversation
jserv
force-pushed
the
cicd
branch
3 times, most recently
from
August 19, 2026 13:49
b36513b to
f570fab
Compare
artifact-scans.yml folds into ci.yml as a job of its own. A guard in repo-guards.rs had to learn to read every file under .github/workflows before it could see that a whole gate ran in the second file, which is the failure that guard exists to prevent, one file over. The paths-ignore filter is gone. It skipped every job on a push touching only markdown, which skipped cargo test --test unit and check-artifacts.sh, the two gates that read the markdown. The filter turned off precisely the checks for the files being changed. A build job produces Linux x86_64 and macOS arm64 tarballs and runs each binary on the platform it was built for, and a release job republishes them as a rolling "latest" on every green push to main. Cargo.lock is tracked and the build passes --locked, so a published binary is a function of the commit that names it. The fast lane gains a macOS leg for the same reason the build job runs what it produced: the tarball ships for a platform no test had run on. repo-guards.rs gains released_tarball_names_match_the_build_matrix, pinning the asset names in the build matrix, the release job and README to one list. The release job checks its own copy against the artifacts at run time; README's copy was checked by nothing, and a renamed target would have left it pointing at a download that 404s while every gate stayed green. ci_runs_every_test_target now reads the one-line "run:" form as its two siblings already did. It saw only the block form, so it reported test-integration as run by nobody once that step no longer needed a block.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
artifact-scans.yml folds into ci.yml as a job of its own. A guard in repo-guards.rs had to learn to read every file under .github/workflows before it could see that a whole gate ran in the second file, which is the failure that guard exists to prevent, one file over.
The paths-ignore filter is gone. It skipped every job on a push touching only markdown, which skipped cargo test --test unit and check-artifacts.sh, the two gates that read the markdown. The filter turned off precisely the checks for the files being changed.
A build job produces Linux x86_64 and macOS arm64 tarballs and runs each binary on the platform it was built for, and a release job republishes them as a rolling "latest" on every green push to main. Cargo.lock is tracked and the build passes --locked, so a published binary is a function of the commit that names it. The fast lane gains a macOS leg for the same reason the build job runs what it produced: the tarball ships for a platform no test had run on.
repo-guards.rs gains released_tarball_names_match_the_build_matrix, pinning the asset names in the build matrix, the release job and README to one list. The release job checks its own copy against the artifacts at run time; README's copy was checked by nothing, and a renamed target would have left it pointing at a download that 404s while every gate stayed green. ci_runs_every_test_target now reads the one-line "run:" form as its two siblings already did. It saw only the block form, so it reported test-integration as run by nobody once that step no longer needed a block.
Summary by cubic
Consolidates CI into one workflow and ships prebuilt Linux x86_64 and macOS arm64 binaries via a rolling latest release. Tracks Cargo.lock and builds with --locked so published binaries are reproducible by commit.
CI and release
.github/workflows/ci.ymlwith four jobs: Rust unit/build on Ubuntu+macOS, artifact scans, Frama‑C 33.0 integration, and binary build.main, stages an exact asset list, smoke-runs each built binary, and safely replaceslatest(no cancel-in-progress onmain, explicit 200/404 checks).Guards, docs, maintenance
released_tarball_names_match_the_build_matrix; unifies YAML step parsing; gate discovery now scans all files under.github/workflows.scripts/check-artifacts.shflags links to untracked/missing files; tests drop references toCLAUDE.md..gitignorestops ignoring Cargo.lock; adds.github/dependabot.ymlfor weeklygithub-actionsandcargoupdates.Written for commit 2c2fb0b. Summary will update on new commits.