[CI/CD] Make the CI and release toolchain immutable and reproducible - #364
Open
fettpl wants to merge 2 commits into
Open
[CI/CD] Make the CI and release toolchain immutable and reproducible#364fettpl wants to merge 2 commits into
fettpl wants to merge 2 commits into
Conversation
Author
|
@0xSero This ready replacement is rebuilt narrowly from current |
8 tasks
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.
Summary
Makes the remaining CI and release execution inputs reproducible on current
dev: third-party actions use verified immutable SHAs, release tooling is installed from an exact root lockfile, and a zero-network policy gate prevents mutable workflow inputs from returning.Closes #230
Maintainer rework addressed
This is a narrow replacement for closed PR #248, rebuilt from current
dev. It preserves the exact Bun version, frozen installs, and exact-tested-revision release protections already present ondev, then adds only the remaining action/release-tool pinning and policy validation requested in the maintainer review.Solution design
uses:tag in CI, maintenance, and release workflows with the full commit SHA resolved from the action's official repository tag.22.19.0, Bun1.3.14, frozen application installs, and the existing release-SHA dependency graph unchanged.npm ci --ignore-scripts.Acceptance criteria
latest, mutable action tags, dynamicnpx/bunx/npm exec, or non-frozen package installs.npm run checkand CI.dev's exact-revision release protections remain intact.Validation
Validated exact head
184ef965e2395056b68f40bca9ccc19957d4f79c:npm ci --ignore-scripts: lockfile remained stable;npm run check: passed;npm run test:integration: 97 tests passed; andDependency review note
The root lockfile contains only development-scoped release tooling, and
npm audit --omit=devreports zero vulnerabilities. A full development audit reports transitive advisories in semantic-release's bundled, unused npm-publishing plugin; testing supported semantic-release majors found advisories in every graph, with the selected current exact version producing the smallest set. The exact pinned dependency-review action filters to runtime scope before vulnerability and license evaluation, the release config does not load the npm-publishing plugin, and installation uses--ignore-scripts. Dependabot remains the follow-up path when the upstream graph offers a supported clean release.Scope and rollout
The change is limited to CI/release workflow references, the root release-tool lockfile, the workflow policy and its tests, and GitHub-Actions-only Dependabot configuration. It changes no application or frontend behavior, publishes no release, rotates no secrets, and does not alter the current release job graph. Future action updates should arrive through Dependabot and be checked against the official upstream tag before merge.