Closed michi-covalent closed 2 months ago
[x] Install gh and authenticate with GitHub by running gh auth login.
gh
gh auth login
[x] Install the latest Cilium release tool:
git clone https://github.com/cilium/release.git "$(go env GOPATH)/src/github.com/cilium/release" cd $(go env GOPATH)/src/github.com/cilium/release git checkout master && git pull && make sudo install release /usr/local/bin
[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:
NEW_RELEASE
PREVIOUS_RELEASE
Cilium 1.16.1
Cilium 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 in go.mod is in sync with cilium/cilium. Run:
replace
go.mod
cilium/cilium
curl https://raw.githubusercontent.com/cilium/cilium/$NEW_RELEASE/go.mod
and copy the replace directive to go.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:
GITHUB_TOKEN=$(gh auth token) release changelog --base v$PREVIOUS_RELEASE --head v$NEW_RELEASE --repo cilium/cilium --label-filter hubble-cli
[x] Modify CHANGELOG.md with the generated release notes:
CHANGELOG.md
$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.
[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.
main
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.
hubble-maintainers
[x] Wait for the Create a release workflow to finish.
Create a release
[x] Find the release draft in the Releases page. Copy and paste release notes from CHANGELOG.md, and click on Publish release button.
Publish release
[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.
README.md
[x] Update stable.txt in the main branch:
stable.txt
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.
[x] Install
gh
and authenticate with GitHub by runninggh auth login
.[x] Install the latest Cilium release tool:
git clone https://github.com/cilium/release.git "$(go env GOPATH)/src/github.com/cilium/release" cd $(go env GOPATH)/src/github.com/cilium/release git checkout master && git pull && make sudo install release /usr/local/bin
[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:
GITHUB_TOKEN=$(gh auth token) release changelog --base v$PREVIOUS_RELEASE --head v$NEW_RELEASE --repo cilium/cilium --label-filter hubble-cli
[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.
[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.