Repository navigation
chore: cut releases through the shared workflow (ENG-9233) - #30
Merged
Merged
Conversation
johnsca
marked this pull request as ready for review
October 20, 2026 17:25
There was a problem hiding this comment.
All reported issues were addressed across 2 files
Architecture diagram
sequenceDiagram
participant Dev as Release Engineer
participant GH as GitHub Actions
participant Caller as release.yml (Caller)
participant Shared as cut-release.yml (Shared)
participant SCS as Step Security Action
participant Sec as Step Security API
participant Reg as Terraform Registry
participant Users as Module Consumers
Note over Dev,Users: Release Orchestration via Shared Workflow
Dev->>GH: Trigger workflow_dispatch (bump, dry_run)
GH->>Caller: Start release job
Caller->>Caller: Enforce concurrency (one release at a time)
Caller->>Shared: Call reusable workflow (pinned commit)
Shared->>Shared: Load STEP_SECURITY_API_KEY
Shared->>SCS: Run step-security/harden-runner
SCS->>Sec: Audit workflow actions
Sec-->>SCS: Security audit result
SCS-->>Shared: Audit outcome
alt dry_run = true
Shared->>Shared: Calculate next version (v0.0.0 -> v1.0.0)
Shared-->>Caller: Report planned version, stop
Caller-->>GH: Dry run summary
else dry_run = false
Shared->>Shared: Calculate next version (e.g., v1.0.0 -> v1.1.0)
Shared->>Shared: Create git tag & release notes
Shared->>Shared: Publish release (write permissions)
Shared-->>Reg: Publish module artifact
Reg-->>Shared: Publication confirmation
Shared-->>Caller: Release complete
Caller-->>GH: Workflow success
end
Note over Users,Reg: Consumer Adoption of Registry Versioning
Users->>Reg: Fetch module with version constraint (e.g., ~> 1.0)
Reg-->>Users: Module source code
Users->>Users: Resolve compatible version
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
johnsca
force-pushed
the
johnsca/chore/ENG-9233/standardize-release
branch
3 times, most recently
from
October 20, 2026 19:53
130739a to
7351527
Compare
[ENG-9233](https://stacklet.atlassian.net/browse/ENG-9233) What ---- - Adds `.github/workflows/release.yml`, a dispatch caller for `cut-release.yml` in `stacklet/github-tooling`, pinned to a commit on that repository's main. - Points both README examples at the Terraform Registry address rather than a GitHub URL with a commit ref, and adds a Versioning section. The migration note now tells the reader to move `source` and set `version` rather than to update a SHA. - The `bump` dropdown opens on `(choose one)` rather than defaulting to `patch`, matching stacklet/github-tooling#5. A dispatch has to say which bump it wants. Why ---- - This repository has no release workflow and no tags, so callers pin a raw commit and there is no version to read notes against. - Five module repositories need the same workflow, and the sixth already had it. Calling one copy beats keeping six in step. The guards are the part worth sharing, because a published release is immutable and a slip cannot be taken back. Testing ---- - [x] `just lint` passes. - [x] `uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/` reports no findings, with the five online audits scheduled rather than skipped. - [x] The pin resolves to a commit via `gh api repos/stacklet/github-tooling/commits/<sha>`. - [ ] After merge, dispatch Release on `main` with dry run checked and confirm the summary reports `v0.0.0` as previous and `v0.1.0` as new. - [ ] Dispatch Release with a `minor` bump and confirm `v0.1.0` publishes. This is the first run anywhere to open a repository on a minor, so it is where the dropdown change gets exercised for real. - [ ] Publish the module to the registry, since the README now sends readers to an address that holds nothing yet. Docs ---- The README gains a Versioning section naming the registry address this module publishes to, with the patch-level constraint a 0.x line calls for. The example now pins `0.1.0`. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
johnsca
force-pushed
the
johnsca/chore/ENG-9233/standardize-release
branch
from
October 20, 2026 20:18
7351527 to
adc6381
Compare
jtroup
approved these changes
Oct 20, 2026
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.
ENG-9233
what
.github/workflows/release.yml, a dispatch caller forcut-release.ymlin
stacklet/github-tooling, pinned to a commit onthat repository's main.
GitHub URL with a commit ref, and adds a Versioning section. The migration
note now tells the reader to move
sourceand setversionrather than toupdate a SHA.
bumpdropdown opens on(choose one)rather than defaulting topatch, matching fix: make the release dispatch ask which bump it wants (ENG-9233) github-tooling#5. A dispatch has to say whichbump it wants.
why
commit and there is no version to read notes against.
it. Calling one copy beats keeping six in step. The guards are the part worth
sharing, because a published release is immutable and a slip cannot be taken
back.
testing
just lintpasses.uvx zizmor@1.23.1 -v --gh-token=... .github/workflows/reports nofindings, with the five online audits scheduled rather than skipped.
gh api repos/stacklet/github-tooling/commits/<sha>.mainwith dry run checked and confirmthe summary reports
v0.0.0as previous andv0.1.0as new.minorbump and confirmv0.1.0publishes.This is the first run anywhere to open a repository on a minor, so it is
where the dropdown change gets exercised for real.
an address that holds nothing yet.
docs
The README gains a Versioning section naming the registry address this module
publishes to, with the patch-level constraint a 0.x line calls for. The
example now pins
0.1.0.