ci: release workflow that attaches kne_cli binaries to GitHub Releases#27
Merged
Conversation
added 2 commits
May 28, 2026 12:16
Adds .github/workflows/release.yml: on any `v*` tag push (or manual
workflow_dispatch with a tag input), cross-compiles kne_cli for
linux + darwin / amd64 + arm64, packages each as a `.tar.gz`
(binary + LICENSE + README), generates SHA256SUMS, and uploads
everything to the matching GitHub Release via
softprops/action-gh-release@v2.
Adds a `make dist` target that does the exact same thing locally so
releases are reproducible outside CI:
TAG=v0.4.0-dn make dist
To allow that override, switch `TAG :=` to `TAG ?=` so the env wins.
Verified locally (~250s, no network): 4 tarballs produced
(~14-16 MB each), Linux amd64 binary smoke-tested by extracting and
running `kne help`.
Adds `dist/` to .gitignore so local builds don't get committed.
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.
Summary
Currently the drivenets fork of kne has no
gh releaseartifacts — users have to clone +go buildto get a workingknebinary. Adds a release workflow + amake disttarget so:v*git tag automatically produces a GitHub Release with cross-compiled binaries for linux/{amd64,arm64} and darwin/{amd64,arm64}TAG=v0.4.0-dn make distWhat's in each release
Per platform (
{os}_{arch}):Binaries are built with:
Trigger model
pushof any tag matchingv*→ creates / updates the release with that tagworkflow_dispatchwith ataginput → rebuilds for an existing tag (useful for re-issuing assets without retagging)generate_release_notes: trueso GitHub auto-fills the body from PR titles since the previous tag.Test plan
TAG=v0.4.0-dn make distlocally → 4 tarballs produced (~14–16 MB each)kne_v0.4.0-dn_linux_amd64.tar.gz, ran the embeddedkne help— output is the standard help textfile dist/.../kneconfirms statically linked, stripped x86-64 ELFFollow-up
Once merged, tagging
v0.4.0-dnonmainwill produce the first drivenets-fork release. That tag is suggested because the fork has accumulated breaking-ish changes vs upstreamv0.3.1(CVE deps bumps, narrowed RBAC equivalents, empty-ConfigMap fix, skip-empty-Topology fix).Made with Cursor