Skip to content

Commit

Permalink
Merge pull request etcd-io#17677 from jmhbnz/fix-release-issues
Browse files Browse the repository at this point in the history
Fix release git url & document lessons learned
  • Loading branch information
ahrtr authored Apr 2, 2024
2 parents 09769c4 + a9e4e2a commit a08812e
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
12 changes: 10 additions & 2 deletions Documentation/contributor-guide/release.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,10 +72,10 @@ which don't need to be executed before releasing each version.
3. Clone the etcd repository and checkout the target branch,
- `git clone [email protected]:etcd-io/etcd.git`
- `git checkout release-3.X`
4. Run the release script under the repository's root directory,
4. Run the release script under the repository's root directory, replacing `${VERSION}` with a value without the `v` prefix, i.e. `3.5.13`.
- `DRY_RUN=false ./scripts/release.sh ${VERSION}`

It generates all release binaries under directory ./release and images. Binaries are pushed to the google cloud bucket
It generates all release binaries under directory `./release` and images. Binaries are pushed to the google cloud bucket
under project `etcd-development`, and images are pushed to `quay.io` and `gcr.io`.
5. Publish release page in Github
- Set release title as the version name
Expand All @@ -100,3 +100,11 @@ etcd team
7. Update the changelog to reflect the correct release date.
8. Paste the release link to the issue raised at step 1 and close the issue.
9. Crease a new stable branch through `git push origin release-${VERSION_MAJOR}.${VERSION_MINOR}` if this is a new major or minor stable release.

#### Release known issues

1. Timeouts pushing binaries - If binaries fail to fully upload to google cloud storage, the script must be re-run using the same command. Any artifacts that already pushed will be overwritten to ensure they are correct. The storage bucket does not use object versioning so there no possibility for incorrect files to remain.

2. Timeouts pushing images - It is rare, although possible for connection timeouts to occur when publishing etcd release images to `quay.io` or `gcr.io`. If this occurs, it is known to be safe to rerun the release script command appending the `--no-upload` flag and image uploads will gracefully resume.

3. GPG vs SSH signing - The release scripts assume that git tags will be signed with a GPG key. Since 2022 GitHub has supported [signing commits and tags using ssh](https://github.blog/changelog/2022-08-23-ssh-commit-verification-now-supported). Until further release script updates are completed you will need to disable this feature in your `~/.gitconfig` and revert to signing via GPG to perform etcd releases.
2 changes: 1 addition & 1 deletion scripts/release.sh
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ main() {
REPOSITORY=$(pwd)
BRANCH=$(git rev-parse --abbrev-ref HEAD)
else
REPOSITORY=${REPOSITORY:-"https://github.com/etcd-io/etcd.git"}
REPOSITORY=${REPOSITORY:-"git@github.com:etcd-io/etcd.git"}
BRANCH=${BRANCH:-"release-${MINOR_VERSION}"}
fi

Expand Down

0 comments on commit a08812e

Please sign in to comment.