Skip to content

Latest commit

 

History

History
99 lines (92 loc) · 8.07 KB

release_issue.md

File metadata and controls

99 lines (92 loc) · 8.07 KB

Release {version}

Prerequisites

  • Have at least Editor level access to agones-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 called agones-images that points to the same project.
  • Have a Github Personal Access Token with repo permissions.
  • Edit access to the Agones Release Calendar

Steps

  • Run make shell and run gcloud 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, or area/meta can be ignored
  • 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 candidate make 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
  • 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.
  • 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 and data-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 to supported_k8s.
      • If full release, copy dev_aks_minor_supported_k8s to aks_minor_supported_k8s.
      • If full release, copy dev_minikube_minor_supported_k8s to minikube_minor_supported_k8s.
      • If full release, update documentation with updated example images tags.
  • Create PR with these changes, and merge them with an approval.
  • Confirm local git remote upstream points at git@github.com: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 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 command helm 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 in build/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 command npm version {version}+1-dev to update the package version
  • If full release move the sdks/csharp/sdk/AgonesSDK.nuspec and sdks/csharp/sdk/csharp-sdk.csproj to {version}+1-dev
  • If full release update the [sdks/unity/package.json][unity] package file's Version 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! 🎉 👏 😄 👍