- Have at least
Editor
level access toagones-images
project. - Have permission to publish new versions of the App Engine application.
- Have write access to Agones github repository.
- Have a
gcloud config configurations
configuration calledagones-images
that points to the same project. - Have a Github Personal Access Token with repo permissions.
- Edit access to the Agones Release Calendar
- Run
make shell
and rungcloud config configurations activate agones-images
. - Review closed issues with no milestone and add relevant ones to the current milestone.
- Issues tagged as
invalid
,duplicate
,question
,wontfix
, orarea/meta
can be ignored
- Issues tagged as
- Review closed issues in the current milestone to ensure that they have appropriate tags.
- Review merged PRs that have no milestone and add them to the current milestone.
- Review merged PRs in the current milestone to ensure that they have appropriate tags.
- Ensure the next RC and stable releases in the Google Calendar have the correct version number.
- Ensure the next version milestone is created.
- Any issues in the current milestone that are not closed, move to next milestone.
- If release candidate add the label
feature-freeze-do-not-merge
to any feature pull requests. -
git checkout main && git pull --rebase upstream main
- If full release, run
make site-deploy SERVICE={version}-1
, (replace . with -)- For example, if you are creating the 1.18.0 release, then you would deploy the 1-17-0 service (release minus one, and then replace dots with dashes).
- Run
make gen-changelog
to generate the CHANGELOG.md (if release candidatemake gen-changelog RELEASE_VERSION={version}-rc
). You will need your Github Personal Access Token for this. - Ensure the helm
tag
value is correct (should be {version} if a full release, {version}-rc if release candidate) - Ensure the helm
Chart
version values are correct (should be {version} if a full release, {version}-rc if release candidate) - Update SDK Package Versions
- Update the package version in
sdks/nodejs/package.json
andsdks/nodejs/package-lock.json
by runningnpm version {version}
if a full release ornpm version {version}-rc
if release candidate - Ensure the
sdks/csharp/sdk/AgonesSDK.nuspec
andsdks/csharp/sdk/csharp-sdk.csproj
versions are correct (should be {version} if a full release, {version}-rc if release candidate) - Update the package version in the [
sdks/unity/package.json
][unity] package file'sVersion
field to {version} if a full release, {version}-rc if release candidate
- Update the package version in
- Run
make gen-install
- Run
make test-examples-on-gcr
to ensure all example images exist on gcr.io/agones-images- - Create a draft release with the release template
- Make a
tag
with the release version.
- Make a
- Site updated
- Copy the draft release content into a new
/site/content/en/blog/releases
content (this will be what you send via email). - Review all
link_test
anddata-proofer-ignore
attributes and remove for link testing - If full release, review and remove all instances of the
feature
shortcode - If full release, add a link to previous version's documentation to nav dropdown.
- config.toml updates:
- If full release, update
release_branch
to the new release branch for {version}. - If full release, update
release-version
with the new release version {version}. - If full release, copy
dev_supported_k8s
tosupported_k8s
. - If full release, copy
dev_aks_minor_supported_k8s
toaks_minor_supported_k8s
. - If full release, copy
dev_minikube_minor_supported_k8s
tominikube_minor_supported_k8s
. - If full release, update documentation with updated example images tags.
- If full release, update
- Copy the draft release content into a new
- Create PR with these changes, and merge them with an approval.
- Confirm local git remote
upstream
points at[email protected]:googleforgames/agones.git
- Run
git remote update && git checkout main && git reset --hard upstream/main
to ensure your code is in line with upstream (unless this is a hotfix, then do the same, but for the release branch) - Publish SDK packages
- Run
make sdk-shell-node
to get interactive shell to publish node package. Requires Google internal process to publish. - Run
make sdk-publish-csharp
to deploy to NuGet. Requires login credentials. (if release candidate:make sdk-publish-csharp RELEASE_VERSION={version}-rc
). Will need NuGet API Key from Agones account.
- Run
- Run
make do-release
. (if release candidate:make do-release RELEASE_VERSION={version}-rc
) to create and push the docker images and helm chart. - Do a
helm repo add agones https://agones.dev/chart/stable
/helm repo update
and verify that the new version is available via the commandhelm search repo agones --versions --devel
. - Do a
helm install --namespace=agones-system agones agones/agones
(helm install --namespace=agones-system agones agones/agones --version={version}-rc
if release candidate) and a smoke test to confirm everything is working. - Attach all assets found in the
release
folder to the draft Github Release. - Publish the draft Github Release.
- Send an email to the mailing list with the release details (copy-paste the release blog post)
- Paste the announcement blog post to the #users Slack group.
- Post to the agonesdev twitter account.
- If full release, run
git checkout main
. - If full release, then increment the
base_version
inbuild/Makefile
- If full release move helm
tag
value is set to {version}+1-dev - If full release move the helm
Chart
version values is to {version}+1-dev - If full release, change to the
sdks/nodejs
directory and run the commandnpm version {version}+1-dev
to update the package version - If full release move the
sdks/csharp/sdk/AgonesSDK.nuspec
andsdks/csharp/sdk/csharp-sdk.csproj
to {version}+1-dev - If full release update the [
sdks/unity/package.json
][unity] package file'sVersion
field to {version}+1-dev - If full release, remove
feature-freeze-do-not-merge
labels from all pull requests - Run
make gen-install gen-api-docs
- Create PR with these changes, and merge them with approval
- Close this issue.
- If full release, close the current milestone. Congratulations! - the release is now complete! 🎉 👏 😄 👍