Skip to content

Let Go release callers pick runner, environment and signing - #28

Merged
imanimanyara merged 1 commit into
mainfrom
feat/go-release-runs-on
Nov 13, 2026
Merged

imanimanyara merged 1 commit into
mainfrom
feat/go-release-runs-on

Conversation

@imanimanyara

Copy link
Copy Markdown
Member

Summary

Four additions to the shared Go release workflow, each optional, so every existing caller behaves exactly as before:

  • runs-on input (default ubuntu-latest), used as the job's runs-on. simtabi/vigil builds darwin with CGO_ENABLED=1 and has to release on macos-latest.
  • environment input (default empty), used as environment: ${{ inputs.environment }}. An empty name runs the job under no environment. wli-kit and go-template run their release under environment: release.
  • SIGNPATH_API_TOKEN secret (on.workflow_call.secrets, required: false), exported into the GoReleaser step's env. wli-kit signs through src/scripts/sign.sh with it. Callers pass it explicitly, never with secrets: inherit.
  • Attestations skip on a private repository. Both attestation steps carry if: github.event.repository.private == false, because GitHub Free refuses attestations there. github.event.repository is the caller's repository, which is set on the push and workflow_dispatch events that start a release. The release itself still publishes.

go-release/README.md gains the two inputs in its table, plus Secrets and Attestations sections.

Not verified by a real release run: that an empty environment value means "no environment" at run time. actionlint accepts it, and no caller has run this revision yet.

Verification

  • python3 -m unittest discover -s go-release/tests -v: 11 tests pass, 4 of them new.
  • actionlint 1.7.12 is clean over the repository's workflows.
  • Proved red, then restored: runs-on default changed, job runs-on hard-coded, runs-on input removed; environment line removed, environment default set to release; secret made required: true, secret dropped from the GoReleaser env; the private-repo if: removed from each attestation step. Each failed its test.

Adds a runs-on input (default ubuntu-latest) for a darwin build that
needs cgo on macOS, an environment input (default empty) for a release
run under a GitHub environment, and an optional SIGNPATH_API_TOKEN
secret exported to GoReleaser. Both attestation steps now skip on a
private repository, where GitHub Free refuses attestations. Each is
documented in go-release/README.md and pinned by a test.
Copilot AI balanced review requested due to automatic review settings November 13, 2026 14:41

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

@imanimanyara
imanimanyara merged commit 941f7b7 into main Nov 13, 2026
6 checks passed
@imanimanyara
imanimanyara deleted the feat/go-release-runs-on branch November 13, 2026 15:14
imanimanyara added a commit to simtabi/vigil that referenced this pull request Nov 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants