RELEASE.md
March 28, 2025 ยท View on GitHub
Releases
Creating a new minor release
- Create release branch. The release branch name follows the pattern
release/vX.Y.x, whereXis the major version andYis the new minor version. For example, when releasing a newv1.0.0version, we'd create the release branchrelease/v1.0.x.
git checkout main
git pull origin main
git checkout -b release/v1.0.x
git push origin release/v1.0.x
-
Update the
change_indirectives for the new release branch. There's an easy one-liner for that here. Since the release branch is protected, you'll need a PR for updating it with those changes. -
Start the ephemeral environment and run the E2Es on it. If the E2Es are not green, you need to fix them before proceeding.
-
If E2Es are green, tag the release branch:
git checkout release/v1.0.x
git pull origin release/v1.0.x
git tag v1.0.0
git push origin v1.0.0
-
Use the "Generate Helm chart" and "Release" promotions to create a new Helm chart and push it to a release in GitHub.
-
After the release is published, generate the changelog for it and add it in the release description. Details for that are here.
Update change_in directives
You can use yq to update all change_in directives in the Semaphore YAML:
yq e -i '(.blocks.[].run.when) |= (. | sub("main", "release/v1.0.x"))' .semaphore/semaphore.yml
Generate changelog
Use git-cliff, using the previous release tag and this one:
git-cliff --github-repo "semaphoreio/semaphore" -c cliff.toml <previous-version>..v1.0.0
A few notes here:
- You will need to review the changes and make sure they are appropriate. We are not enforcing conventional commits yet, so some changes might not be included.
- If there are breaking changes, include a section at the beginning of the changelog detailing the breaking changes.
- If the upgrade process requires any attention, include a section for it as well.