Skip to content

ci(release): cut releases through a PR like tihole - #22

Merged
cooper-wright[bot] merged 3 commits into
mainfrom
ci/release-like-tihole
Oct 29, 2026
Merged

cooper-wright[bot] merged 3 commits into
mainfrom
ci/release-like-tihole

Conversation

@zackkitzmiller

Copy link
Copy Markdown
Member

Brings smbark's release flow in line with tihole and whetstone.

What changes

  • just release patch|minor|major opens a release/vX.Y.Z PR, waits for CI, squash-merges it (unless already auto-merged) and watches the release run, instead of tagging locally.
  • release.yml runs when VERSION changes on main (or on a v* tag push): re-runs just release-check, creates the tag, runs goreleaser, and attests build provenance over checksums.txt. Re-running a failed release reuses the existing tag.
  • AUR publish stays behind PUBLISH_TO_AUR and now skips beta tags.
  • New just prerelease for vX.Y.Z-beta.N tags.
  • golines 80-col gate in CI and release-check; go, gopls and golines pinned in mise.toml.
  • Keep a Changelog header and link footer in CHANGELOG.md; new RELEASING.md.
  • attest.yml removed: provenance is attested at release time now.
  • Go source reformatted to 80 columns (separate style: commit). A raw-string fstab fixture in TestParseFstab became an interpreted string because golines mangled its //host/share line as a comment.

Intentionally different from tihole

Release binaries keep their raw smbark-linux-<arch> names, not tarballs: site/install.sh, the site download links and aur/smbark-bin fetch those exact files.

Verification

  • just release-check passes; goreleaser check validates the config.
  • just release patch run end to end against a local bare remote: version bump, generated 1.2.2 changelog, SECURITY.md bump, branch, commit and push all correct; it stopped at gh pr create only because the remote was not GitHub. The merge-and-watch steps get their first real run on the next release.

Run gofmt + golines (--max-len=80 --shorten-comments) over the repo,
the same formatting gate tihole and whetstone enforce, so the release
check added next passes on main.

golines treated a //host/share line inside a raw-string fstab fixture
in TestParseFstab as a comment and split it, so that fixture is now an
interpreted string the formatter leaves alone.
Bring smbark's release flow in line with tihole and whetstone:

- just release opens a release/vX.Y.Z PR, waits for CI, squash-merges
  it and watches the release run instead of tagging locally
- release.yml runs when VERSION changes on main (or on a v* tag),
  re-runs just release-check, creates the tag, runs goreleaser and
  attests provenance over checksums.txt; re-runs reuse an existing tag
- AUR publish stays behind PUBLISH_TO_AUR and skips beta tags
- add just prerelease for vX.Y.Z-beta.N tags
- add the golines 80-col gate to CI and release-check
- pin go, gopls and golines in mise.toml
- add the Keep a Changelog header and link footer, and RELEASING.md
- drop attest.yml; provenance is attested at release time now

Release binaries keep their raw smbark-linux-<arch> names because
site/install.sh, the site download links and aur/smbark-bin fetch them.
@netlify

netlify Bot commented Oct 29, 2026 •

Copy link
Copy Markdown

✅ Deploy Preview for smbark canceled.

Name Link
🔨 Latest commit 5bf5582
🔍 Latest deploy log https://app.netlify.com/projects/smbark/deploys/6ae2d2789347388e1ed6f226

@cooper-wright
cooper-wright Bot merged commit 8bf0856 into main Oct 29, 2026
9 checks passed
@cooper-wright
cooper-wright Bot deleted the ci/release-like-tihole branch October 29, 2026 05:06
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