Skip to content

feat(release): step 3, add GoReleaser build, packaging, and release workflows - #41

Merged
synackd merged 13 commits into
seantronsen/release-400from
seantronsen/feat/redesign-deployment
Oct 13, 2026
Merged

synackd merged 13 commits into
seantronsen/release-400from
seantronsen/feat/redesign-deployment

Conversation

@seantronsen

@seantronsen seantronsen commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

Description

Moves building, packaging, and releasing onto GoReleaser, driven by each repo's .goreleaser.yaml, with sanity checks kept in Make.

  • build-check-goreleaser: snapshot build of everything (binaries, archives, rpm/deb, images); publishes nothing, fork safe.
  • build-release-goreleaser: mode chosen from the event. pull_request pushes pr-<N> images; v* tags publish semver images, packages (signed when gpg-key is passed), a draft release with generated notes, attestations, and the derived GPG public key.
  • validate-packages: rpm/deb file list, signature, install test, report-only lint; gates publish-release.
  • .goreleaser.example.yml: annotated reference config.
  • Deprecates the workflows/actions these replace (GoReleaser/Docker build workflows, quadlet RPM build, GPG signing chain, signed-artifact release, quadlet validation). They warn at runtime and stay for pinned callers.

Important

Future PR: secure signing key procurement. Keys are currently passed as secrets by callers and only used on tag pushes; anyone with write access to a caller can still read them. Proper key handling is a separate PR.

Important

Future PR: deploy packages to remote distro repos. Packages are only attached to the GitHub release. Publishing to yum/apt repositories is a separate post-release workflow, out of scope for GoReleaser.

Checklist

  • My code follows the style guidelines of this project
  • I have added/updated comments where needed
  • I have added tests that prove my fix is effective or my feature works
  • I have run make test (or equivalent) locally and all tests pass
  • I have updated the relevant documentation (CLI examples, man pages, README, other docs, etc.)
  • DCO Sign-off: All commits are signed off (git commit -s) with my real name and email
  • REUSE Compliance:
    • Each new/modified source file has SPDX copyright and license headers
    • Any non-commentable files include a <filename>.license sidecar
    • All referenced licenses are present in the LICENSES/ directory

Type of Change

  • Bug fix
  • New feature
  • Breaking change
  • Documentation update
  • Dependency update
  • Build system/CI

@seantronsen seantronsen self-assigned this Oct 6, 2026
@seantronsen

Copy link
Copy Markdown
Contributor Author

Since we're already going to v4, we should consider deleting the now deprecated old deployment methodology in favor of the new one.

@seantronsen
seantronsen requested a review from synackd October 6, 2026 04:03
@seantronsen
seantronsen marked this pull request as ready for review October 6, 2026 04:04
@seantronsen
seantronsen added this pull request to stack #40 October 6, 2026 04:04
@seantronsen

Copy link
Copy Markdown
Contributor Author

@seantronsen , this needs to provide an example .goreleaser.yml file.

@seantronsen

Copy link
Copy Markdown
Contributor Author

@seantronsen another todo: need to create another stacked PR for the actual deployment of these packages to the remote repo (e.g., yum/dnf/apt etc.).

@seantronsen
seantronsen force-pushed the seantronsen/feat/redesign-deployment branch from 89dd220 to 5b8f3de Compare October 6, 2026 15:22
@synackd synackd added this to the v4 milestone Oct 7, 2026
@synackd synackd changed the title v4: step 3, deployment sanity. feat(release): step 3, add GoReleaser build, packaging, and release workflows Oct 7, 2026
@synackd

synackd commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

@seantronsen You've requested my review, but I notice there are still outstanding items in the description and #41 (comment). Are those complete and do they need to be updated?

@seantronsen

Copy link
Copy Markdown
Contributor Author

@seantronsen You've requested my review, but I notice there are still outstanding items in the description and #41 (comment). Are those complete and do they need to be updated?

It's ready. Two of the outstanding items are large enough to merit their own PRs. The third is just a note I need to delete.

Comment thread .github/workflows/validate-packages.yml Outdated
Comment thread .github/workflows/build-release-goreleaser.yml Outdated
Comment thread .github/workflows/build-release-goreleaser.yml Outdated
@synackd
synackd force-pushed the seantronsen/feat/redesign-deployment branch from 5b8f3de to 1969d90 Compare October 8, 2026 21:54
@seantronsen
seantronsen force-pushed the seantronsen/feat/redesign-deployment branch from 1969d90 to 6fa3735 Compare October 12, 2026 17:15
Comment thread .github/workflows/validate-packages.yml Fixed
Comment thread .github/workflows/validate-packages.yml Fixed
@seantronsen
seantronsen requested a review from synackd October 12, 2026 19:23
Base automatically changed from seantronsen/feat/workflow-ports to seantronsen/release-400 October 12, 2026 23:59
@seantronsen

Copy link
Copy Markdown
Contributor Author

force pushing to fix stack.

…releaser

Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
…on workflows

Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
… validated

Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
…watch for updates

Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
@seantronsen
seantronsen force-pushed the seantronsen/feat/redesign-deployment branch from 8708e0d to 466cf8d Compare October 13, 2026 00:21
Comment thread .github/workflows/build-release-goreleaser.yml Outdated
Comment thread .github/workflows/build-release-goreleaser.yml
Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
Signed-off-by: Sean Tronsen <sean.tronsen@gmail.com>
@synackd
synackd merged commit 020d476 into seantronsen/release-400 Oct 13, 2026
5 checks passed
@synackd
synackd deleted the seantronsen/feat/redesign-deployment branch October 13, 2026 21:27
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.

3 participants