Repository navigation
Add safe reusable Go, npm and Rust package workflows - #7
Open
venkata-kishore wants to merge 3 commits into
Open
venkata-kishore wants to merge 3 commits into
venkata-kishore wants to merge 3 commits into
Conversation
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.
Adds reusable build and release workflows for one public root Go module, npm package, or Rust crate. Release callers follow their repository's current default branch, accept
Release X.Yas shorthand forX.Y.0, and validate full versions, changelog entries, commit ancestry, and immutable tags before publishing. Existing Maven workflows are unchanged.Build and package scripts run in read-only jobs. Separate publishing jobs receive the finished artifact by immutable artifact ID and use narrowly scoped permissions. Every external action in the new workflows is pinned to the verified latest stable release's full commit SHA.
latest/nextordering are checked.Caller examples and registry/environment setup are in
docs/package-workflows.md. The release YAML is generated from.github/release-tools/so reused workflows remain self-contained at the pinned commit; review helper sources and renderer alongside the generated files.Validation: 27 unit tests passed; actionlint 1.7.12 passed for all six workflows (ShellCheck integration disabled); embedded Python parsing, release shell syntax, generated-file consistency, action SHA checks, and
git diff --checkpassed. Independent review found no remaining material issues. A follow-up adversarial review added isolated Python execution and a regression test against checkout-controlled imports; documented fork-PR and caller-protection boundaries.Live publishing and GitHub execution have not been tested. Callers must configure registry trust and environment protection before use. Monorepos, Cargo artifact dependencies, and build-metadata versions are deliberately outside this initial contract. Cargo wire-format handling needs review when the upstream publish schema changes.