[x] Install gh and authenticate with GitHub by running gh auth login.
[x] Define NEW_RELEASE and PREVIOUS_RELEASE environment variables. For
example, if you are releasing a new Hubble CLI version based on
Cilium 1.16.1 with the previous release being Cilium 1.16.0:
[x] Install
gh
and authenticate with GitHub by runninggh auth login
.[x] Define
NEW_RELEASE
andPREVIOUS_RELEASE
environment variables. For example, if you are releasing a new Hubble CLI version based onCilium 1.16.1
with the previous release beingCilium 1.16.0
:export NEW_RELEASE=1.16.1 export PREVIOUS_RELEASE=1.16.0
[x] Create a release prep branch:
git checkout main git pull origin main git switch -c pr/$USER/v$NEW_RELEASE-prep
[x] Check if
replace
directive ingo.mod
is in sync withcilium/cilium
. Run:curl https://raw.githubusercontent.com/cilium/cilium/$NEW_RELEASE/go.mod
and copy the
replace
directive togo.mod
if it's out of sync.[x] Update Cilium dependency:
go get github.com/cilium/cilium@${NEW_RELEASE} go mod tidy && go mod vendor && go mod verify git add go.mod go.sum vendor
[x] Prepare release notes. You need to generate release notes from both cilium/cilium and cilium/hubble repositories and manually combine them.
docker pull quay.io/cilium/release-tool:main alias release='docker run -it --rm -e GITHUB_TOKEN=$(gh auth token) quay.io/cilium/release-tool:main' release changelog --base v$PREVIOUS_RELEASE --head v$NEW_RELEASE --repo cilium/cilium --label-filter hubble-cli release changelog --base v$PREVIOUS_RELEASE --head main --repo cilium/hubble
[x] Modify
CHANGELOG.md
with the generated release notes:$EDITOR CHANGELOG.md ... git add CHANGELOG.md
[x] Push the prep branch and open a Pull Request against main branch.
git commit -s -m "Prepare for v$NEW_RELEASE release" git push
Get the pull request reviewed and merged: https://github.com/cilium/hubble/pull/1607
[x] Update your local checkout:
git checkout main git pull origin main
[x] Set the commit you want to tag:
export COMMIT_SHA=
Usually this is the most recent commit on
main
, i.e.export COMMIT_SHA=$(git rev-parse origin/main)
[x] Create a tag:
git tag -s -a "v$NEW_RELEASE" -m "v$NEW_RELEASE" $COMMIT_SHA
Admire the tag you just created for 1 minute:
git show "v$NEW_RELEASE"
Then push the tag:
git push origin "v$NEW_RELEASE"
[x] Ping
hubble-maintainers
team on Slack to get an approval to run Image Release Build workflow.[x] Wait for the
Create a release
workflow to finish.[x] Find the release draft in the Releases page. Copy and paste release notes from CHANGELOG.md, and click on
Publish release
button.[x] Post a release announcement message in the Cilium Slack #general channel. Example:
Hubble CLI v0.8.2 is released  Release notes and binaries: https://github.com/cilium/hubble/releases/tag/v0.8.2 Notable changes:
[x] Update the Releases section of the
README.md
to point to the latest release.[x] Update
stable.txt
in the main branch:git switch -c pr/$USER/update-stable main echo v$NEW_RELEASE > stable.txt git add README.md stable.txt git commit -s -m "Update stable release to $NEW_RELEASE" git push origin pr/$USER/update-stable
and then open a pull request against the
main
branch, get it reviewed and merged: https://github.com/cilium/hubble/pull/1611