Skip to content

Automate releases and publish Homebrew cask to own tap - #1

Merged
rethab merged 3 commits into
mainfrom
feat/automated-releases
Jul 12, 2026
Merged

Automate releases and publish Homebrew cask to own tap#1
rethab merged 3 commits into
mainfrom
feat/automated-releases

Conversation

@rethab

@rethab rethab commented Jul 12, 2026

Copy link
Copy Markdown
Owner

No description provided.

Releases were cut from a laptop and the formula copied into the tap by
hand. Tagging now drives everything from CI.

Also migrates the deprecated brews config to homebrew_casks: formulas are
meant to build from source, casks ship pre-compiled binaries, and casks
gained Linux support in Homebrew/brew#19121.
rethab added 2 commits July 12, 2026 06:49
Supply-chain hardening based on GoReleaser's example-secure reference and
a zizmor audit (now clean):

- Pin all actions to commit SHAs; Dependabot with a 7-day cooldown keeps
  them fresh without picking up freshly-compromised releases.
- Attest SLSA build provenance for all release artifacts; users verify
  with 'gh attestation verify'. Ship SPDX SBOMs per archive.
- Scope workflow permissions per job, drop checkout credential
  persistence, disable Go build cache in the release job.
- Build reproducibly: -trimpath, commit-pinned mod timestamps, exact Go
  toolchain from go.mod, no release-time go mod tidy.
- Pin the golangci-lint install script to its release tag instead of
  master.

CI lint was crashing because go-version '^1.25.6' resolved to Go 1.26.4,
which golangci-lint 2.6.2 cannot typecheck; go-version-file follows the
toolchain in go.mod instead. Verified locally: 0 issues under 1.25.6,
reproduces the crash under 1.26.4.
GoReleaser OSS has no nightly mode, so the snapshot workflow publishes a
prerelease itself and renders the jira-cli-snapshot cask from the build's
checksums — snapshots get the same pinned SHA-256s, provenance
attestation, and SBOMs as releases. Old snapshots are pruned, keeping 5.

Also moves the Docker workflow to trigger on the tag push: releases are
now created by a workflow with GITHUB_TOKEN, whose events GitHub
suppresses, so the release:published trigger would never fire again.
@rethab
rethab merged commit 5096397 into main Jul 12, 2026
1 check passed
@rethab
rethab deleted the feat/automated-releases branch July 12, 2026 05:04
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.

1 participant