build/cmd/releasebot
Dmitri Shuralyov 9b5ce82b5f cmd/releasebot: add support for major releases
There were a few places in releasebot that assumed the version
being made was a minor release (like go1.2.3) and didn't work
as expected for major releases (like go1.2). This change fixes
those, making releasebot suitable for creating major releases.

Computing the release branch and some of the error checking can
be factored out of doRelease to happen earlier. It's out of scope
for this CL, as it's better suited for a larger refactor later.

Fixes golang/go#34045

Change-Id: Id2204d372043e1fd2afc699d39412677c603f034
Reviewed-on: https://go-review.googlesource.com/c/build/+/193018
Run-TryBot: Dmitri Shuralyov <dmitshur@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Alexander Rakoczy <alex@golang.org>
2019-09-10 01:23:21 +00:00
..
README.md cmd/releasebot: add support for beta releases 2018-06-19 19:43:43 +00:00
gcs.go cmd/releasebot: adapt to new minor release process 2018-06-13 21:27:35 +00:00
git.go cmd/releasebot: run all.bash in prepare mode 2019-01-09 19:52:41 +00:00
github.go cmd/releasebot: don't mention release status issue in security release mode 2019-08-19 17:20:10 +00:00
http.go cmd/releasebot: initial release process automation 2017-11-13 15:36:14 +00:00
main.go cmd/releasebot: add support for major releases 2019-09-10 01:23:21 +00:00
markdown.go cmd/releasebot: adapt to new minor release process 2018-06-13 21:27:35 +00:00

README.md

golang.org/x/build/cmd/releasebot

Command releasebot runs a Go release.

The release happens in two stages:

  • the prepare stage checks preconditions, and if needed makes the release commit and mails it for review;
  • the release stage runs after the release commit (if any) is merged, and it tags, builds and cleans up the release.

At the moment only minor and beta releases are supported.

Permissions

The user running a release will need:

  • A GitHub personal access token with the public_repo scope in ~/.github-issue-token, and an account with write access to golang/go
  • gomote access and a token in your name
  • gcloud application default credentials, and an account with GCS access to golang-org for bucket golang-release-staging
  • release-manager group membership on Gerrit

NOTE: all but the Gerrit permission are ensured by the bot on startup.