From d871811105c144e08c88246eb27526b147ebebf4 Mon Sep 17 00:00:00 2001 From: Mark Mandel Date: Wed, 12 Apr 2023 17:38:55 -0700 Subject: [PATCH] Use GitHub's Changelog Generation Remove `ferrarimarco/github-changelog-generator` as that was extremely flaky, and required some maintenance of secrets, and replace it with GitHubs automation. Updated the release checklist as well to match. Snuck in a small typo on the release README.md as well. Work on #725 --- .github/release.yml | 37 ++++++++++++++++++++++++++++++++ build/release/README.md | 4 ++-- build/release/cloudbuild.yaml | 15 ------------- build/templates/release-issue.md | 13 ++++++----- 4 files changed, 47 insertions(+), 22 deletions(-) create mode 100644 .github/release.yml diff --git a/.github/release.yml b/.github/release.yml new file mode 100644 index 0000000000..69a5694243 --- /dev/null +++ b/.github/release.yml @@ -0,0 +1,37 @@ +# Copyright 2023 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +changelog: + exclude: + labels: + - duplicate + - question + - invalid + - priority/wontfix + categories: + - title: Breaking changes + labels: + - kind/breaking + - title: Implemented enhancements + labels: + - kind/feature + - title: Fixed bugs + labels: + - kind/bug + - title: Security fixes + labels: + - area/security + - title: Other + labels: + - "*" diff --git a/build/release/README.md b/build/release/README.md index 1dc8758caa..f1bc398e5a 100644 --- a/build/release/README.md +++ b/build/release/README.md @@ -3,8 +3,8 @@ Run `make` to submit the `cloudbuild.yaml` to [Google Cloud Build](https://cloud.google.com/build) and build the release: -* arm64 Linux, Windows and macOS executables. -* arm64 Linux Docker image. +* amd64 Linux, Windows and macOS executables. +* amd64 Linux Docker image. If you need to pass extra arguments to the `make` target, the target comes with an `$(ARGS)` parameter than can be used. diff --git a/build/release/cloudbuild.yaml b/build/release/cloudbuild.yaml index 31e0c2e364..13c823d8e8 100644 --- a/build/release/cloudbuild.yaml +++ b/build/release/cloudbuild.yaml @@ -41,23 +41,12 @@ steps: - 'make version > ../version' id: output-version waitFor: ['-'] - - name: ferrarimarco/github-changelog-generator:1.15.2 - id: changelog - entrypoint: sh - args: - - '-c' - - 'github_changelog_generator --user=googleforgames --project=quilkin --bug-labels=kind/bug --enhancement-labels=kind/feature --breaking-labels=kind/breaking --security-labels=area/security --exclude-labels=duplicate,question,invalid,wontfix,priority/wontfix --future-release "v$(cat ./version)" --release-branch=main --token $$GH_TOKEN' - secretEnv: - - GH_TOKEN - waitFor: - - output-version artifacts: objects: location: '$_STORAGE' paths: - '*.zip' - 'license.html' - - 'CHANGELOG.md' images: - ${_REPOSITORY}quilkin options: @@ -71,8 +60,4 @@ substitutions: _BUILD_IMAGE_TAG: us-docker.pkg.dev/${PROJECT_ID}/ci/build-image _REPOSITORY: us-docker.pkg.dev/${PROJECT_ID}/release/ _STORAGE: gs://${PROJECT_ID}-quilkin-releases -availableSecrets: - secretManager: - - versionName: projects/${PROJECT_ID}/secrets/release-github-token/versions/latest - env: GH_TOKEN timeout: 1800s diff --git a/build/templates/release-issue.md b/build/templates/release-issue.md index 81bb3633cf..e9b4bd6dc4 100644 --- a/build/templates/release-issue.md +++ b/build/templates/release-issue.md @@ -18,7 +18,6 @@ - [ ] Edit the `version` field in `./macros/Cargo.toml` and remove the `-dev` suffix. - [ ] cd to `./build/release` and run `make` to submit the cloud build - [ ] Download all the artifacts from the cloud build. -- [ ] Move the CHANGELOG.md to the root of this repository, replacing any previous versions. - [ ] Review `license.html` to ensure that there aren't any new MPL, or CDDL dependencies from the last release. If there are: - [ ] Add the dependencies to [archive_dependencies.sh](https://github.com/googleforgames/quilkin/blob/main/build/release/archive_dependencies.sh) @@ -29,11 +28,15 @@ - [ ] Add a release item to README.md "Documentation" > "Releases" list with related links in reverse chronological order. - [ ] Remove any `data-proofer-ignore` attributes from links in the documentation in `./docs`. +- [ ] Create a draft [Github release](https://github.com/googleforgames/quilkin/releases/new) + - [ ] Populate the tag with `v{version}` + - [ ] Click `Generate release notes` to generate the change log for this release. + - [ ] Copy the release notes from the draft release and paste it at the top of CHANGELOG.md. + - [ ] Using the + [Github release template](https://github.com/googleforgames/quilkin/blob/main/build/templates/github-release.md) + update the generated release notes with a description, and relevant changelog sections. + - [ ] Attach all the cloud build artifacts to the draft GitHub release. - [ ] Submit these changes as a PR, and merge with approval. -- [ ] Create a [Github release](https://github.com/googleforgames/quilkin/releases/new) using the - [Github release template](https://github.com/googleforgames/quilkin/blob/main/build/templates/github-release.md). - - [ ] Populate the tag with `v{version}`, description, and relevant changelog sections. - - [ ] Attach all the remaining cloud build artifacts to the release. - [ ] Run `git remote update && git checkout main && git reset --hard upstream/main` to ensure your code is in line with upstream. - [ ] Run `git checkout -b release-{version} && git push upstream release-{version}` to create a release branch.