Build, tag, and publish a new release with cross-compiled binaries and GitHub release
Create a versioned release of openshift-ci-mcp. Pushing the tag triggers a container build on Quay.io automatically. Confirm the version with the user before proceeding.
The user may specify:
major, minor, or patch (default: patch) — which semver component to bumpv1.2.3# Get the latest semver tag (ignore non-semver tags)
git tag -l 'v*' --sort=-v:refname | head -1
v0.1.0.v prefix if missing).patchminor: v0.1.0 → v0.2.0major: v0.1.0 → v1.0.0Tell the user the version and ask for confirmation before continuing.
Run tests and lint before building anything:
make test
make lint
Stop if either fails.
make build-all
This builds for linux/amd64, linux/arm64, darwin/amd64, and darwin/arm64. Binaries are written to bin/ as openshift-ci-mcp-<os>-<arch>.
Generate release notes from the git log since the previous tag (or all commits if first release):
# If previous tag exists:
git log <prev-tag>..HEAD --oneline --no-merges
# If first release:
git log --oneline --no-merges
Organize the notes into sections based on commit prefixes:
feat: or Addfix: or FixInclude a summary line at the top describing the release. Keep it concise.
git tag -a <version> -m "Release <version>"
git push origin <version>
gh release create <version> \
--title "<version>" \
--notes "<release-notes>" \
bin/openshift-ci-mcp-*
This attaches all cross-compiled binaries as release assets. Pushing the tag also triggers the Quay.io container build.
Print a summary:
quay.io/rh_ee_jeroche/openshift-ci-mcp:<tag> (e.g. v0.1.0, built automatically by Quay)gh release create output)