-
Notifications
You must be signed in to change notification settings - Fork 51
Closed
Labels
Description
The week before the release
- Ensure CI is green
- Create release branch from main to freeze commits, like so:
RELEASE=25.05.0
git fetch origin
git checkout origin/HEAD
git switch --create release/$RELEASE
git push origin release/$RELEASE- If any changes are made in the harvest autosupport repository, please update the harvest-metrics repository
mainbranch with the latestasup_linux_amd64binary. This binary can be generated using Jenkins with the following parameters:
| Field | Value |
|---|---|
| VERSION | 25.05.0 |
| RELEASE | 1 |
| BRANCH | release/25.05.0 |
| ASUP_MAKE_TARGET | production |
| DOCKER_PUBLISH | false |
| RUN_TEST | true |
| OVERWRITE_DOCKER_LATEST_TAG | false |
| RUN_TRIVY_SCAN | true |
- Create a release branch for the harvest-metrics repo like so:
RELEASE=25.05.0
git clone https://github.com/NetApp/harvest-metrics.git
cd harvest-metrics
git checkout origin/HEAD
git switch --create release/$RELEASE
git push origin release/$RELEASE- Ensure all issues for the release are tagged with
status/testmeand unassigned. Useghor the GitHub UI to do this. - Use the release issue burn down list to verify issues are fixed. Move
status/testmeissues tostatus/openorstatus/done - Ensure that the release is validated against NABox.
- Ensure that the release is validated against FSX.
- Use Jenkins to create release artifacts for test machines
- Create changelog
- Draft a new release. Use
v$RELEASEfor the tag and pick the release/$RELEASE branch. Click theGenerate release notesbutton and double check, at the bottom of the release notes, that the commits are across the correct range. For example:https://github.com/NetApp/harvest/compare/v25.02.0...v25.05.0 - Copy/paste the generated release notes and save them in a file
pbpaste > ghrn_$RELEASE.md - Generate draft release highlights by executing
go run pkg/changelog/main.go new. This will create a file namedreleaseHighlights_$RELEASE.md. Edit that file to add content (example content)- Ensure all notable features are highlighted
- Ensure any breaking changes are highlighted
- Ensure any deprecations are highlighted
- Generate changelog by running
- Draft a new release. Use
go run pkg/changelog/main.go --title $RELEASE --highlights releaseHighlights_$RELEASE.md -r ghrn_$RELEASE.md | pbcopy- Open a PR against the release branch with the generated release notes for review
- PR approval
Update Metrics Documentation
bin/harvest generate metrics --poller POLLERNAME- Make sure docs look good and open a PR for review with
docs/ontap-metrics.mdchanges
The day of the release
- Create a new build from Jenkins (details)
- Click
Build with Parametersand fill in the appropriate fields. Here's an example, whereRELEASE=25.05.0
- Click
| Field | Value |
|---|---|
| VERSION | 25.05.0 |
| RELEASE | 1 |
| BRANCH | release/25.05.0 |
| ASUP_MAKE_TARGET | production |
| DOCKER_PUBLISH | true |
| RUN_TEST | true |
| OVERWRITE_DOCKER_LATEST_TAG | true |
| RUN_TRIVY_SCAN | true |
- Draft a new release. Use
v$RELEASEfor the tag and pick the release/$RELEASE branch. - Type
$RELEASEin theRelease titletext input - Open the
CHANGELOG.mdfile, copy the single $RELEASE section at the top, and paste into the release notes text area. - Ensure the
Set as the latest releasecheckbox is selected - Ensure the
Create a discussion for this releasecheckbox is selected - Upload the artifacts from the Jenkins build above and attach to the release
- Click
Publish releasebutton - Announce on Discord
- Publish latest docs to netapp.github.io
- Make sure you're on the release branch
git switch release/$RELEASE - The documentation version selector uses the short form of the release, so
25.05NOT25.05.0
- Make sure you're on the release branch
mike deploy --push --update-aliases $SHORT latest- Merge release branch into main. The PR should use the
chore:prefix
Reactions are currently unavailable