-
Notifications
You must be signed in to change notification settings - Fork 9.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #18649 from ivanvc/use-gh-to-publish-releases
release: use GitHub's gh to create GitHub release
- Loading branch information
Showing
4 changed files
with
184 additions
and
16 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -28,7 +28,7 @@ jobs: | |
Name-Email: [email protected] | ||
Expire-Date: 0 | ||
EOF | ||
DRY_RUN=true ./scripts/release.sh --no-upload --no-docker-push --in-place 3.6.99 | ||
DRY_RUN=true ./scripts/release.sh --no-upload --no-docker-push --no-gh-release --in-place 3.6.99 | ||
- name: test-image | ||
run: | | ||
VERSION=3.6.99 ./scripts/test_images.sh | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -62,6 +62,8 @@ which don't need to be executed before releasing each version. | |
4. Authenticate the image registry, refer to [Authentication methods](https://cloud.google.com/container-registry/docs/advanced-authentication). | ||
- `gcloud auth login` | ||
- `gcloud auth configure-docker` | ||
5. Install gh, refer to [GitHub's documentation](https://github.com/cli/cli#installation). Ensure that running | ||
`gh auth login` succeeds for the GitHub account you use to contribute to etcd. | ||
|
||
### Release steps | ||
|
||
|
@@ -85,13 +87,8 @@ which don't need to be executed before releasing each version. | |
It generates all release binaries under the directory `/tmp/etcd-release-${VERSION}/etcd/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`. | ||
7. Publish the release page on GitHub | ||
- Set the release title as the version name | ||
- Choose the correct release tag (generated from step #4) | ||
- Follow the format of previous release pages | ||
- Attach the generated binaries and signature file | ||
- Verify the historical binary size for each architecture. If there's a big difference, verify that it works for that architecture | ||
- Select whether it's a pre-release | ||
- Publish the release | ||
- Open the **draft** release URL shown by the release script | ||
- Review that it looks correct, then publish the release | ||
8. Announce to the etcd-dev googlegroup | ||
|
||
Follow the format of previous release emails sent to [email protected], see an example below. After sending out the email, ask one of the mailing list maintainers to approve the email from the pending list. Additionally, label the release email as `Release`. | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,91 @@ | ||
Please check out [CHANGELOG](https://github.com/etcd-io/etcd/blob/main/CHANGELOG/CHANGELOG-${RELEASE_VERSION_MAJOR_MINOR}.md) for a full list of changes. And make sure to read [upgrade guide](https://etcd.io/docs/v${RELEASE_VERSION_MAJOR_MINOR}/upgrades/upgrade_${RELEASE_VERSION_MAJOR}_${RELEASE_VERSION_MINOR}/) before upgrading etcd (there may be breaking changes). | ||
|
||
For installation guides, please check out [play.etcd.io](http://play.etcd.io) and [operating etcd](https://etcd.io/docs/v${RELEASE_VERSION_MAJOR_MINOR}/op-guide/). Latest support status for common architectures and operating systems can be found at [supported platforms](https://etcd.io/docs/v${RELEASE_VERSION_MAJOR_MINOR}/op-guide/supported-platform/). | ||
|
||
###### Linux | ||
|
||
```sh | ||
ETCD_VER=${RELEASE_VERSION} | ||
|
||
# choose either URL | ||
GOOGLE_URL=https://storage.googleapis.com/etcd | ||
GITHUB_URL=https://github.com/etcd-io/etcd/releases/download | ||
DOWNLOAD_URL=${GOOGLE_URL} | ||
|
||
rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz | ||
rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test | ||
|
||
curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz | ||
tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1 | ||
rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz | ||
|
||
/tmp/etcd-download-test/etcd --version | ||
/tmp/etcd-download-test/etcdctl version | ||
/tmp/etcd-download-test/etcdutl version | ||
|
||
# start a local etcd server | ||
/tmp/etcd-download-test/etcd | ||
|
||
# write,read to etcd | ||
/tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 put foo bar | ||
/tmp/etcd-download-test/etcdctl --endpoints=localhost:2379 get foo | ||
``` | ||
|
||
###### macOS (Darwin) | ||
|
||
```sh | ||
ETCD_VER=${RELEASE_VERSION} | ||
|
||
# choose either URL | ||
GOOGLE_URL=https://storage.googleapis.com/etcd | ||
GITHUB_URL=https://github.com/etcd-io/etcd/releases/download | ||
DOWNLOAD_URL=${GOOGLE_URL} | ||
|
||
rm -f /tmp/etcd-${ETCD_VER}-darwin-amd64.zip | ||
rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test | ||
|
||
curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-darwin-amd64.zip -o /tmp/etcd-${ETCD_VER}-darwin-amd64.zip | ||
unzip /tmp/etcd-${ETCD_VER}-darwin-amd64.zip -d /tmp && rm -f /tmp/etcd-${ETCD_VER}-darwin-amd64.zip | ||
mv /tmp/etcd-${ETCD_VER}-darwin-amd64/* /tmp/etcd-download-test && rm -rf mv /tmp/etcd-${ETCD_VER}-darwin-amd64 | ||
|
||
/tmp/etcd-download-test/etcd --version | ||
/tmp/etcd-download-test/etcdctl version | ||
/tmp/etcd-download-test/etcdutl version | ||
``` | ||
|
||
###### Docker | ||
|
||
etcd uses [`gcr.io/etcd-development/etcd`](https://gcr.io/etcd-development/etcd) as a primary container registry, and [`quay.io/coreos/etcd`](https://quay.io/coreos/etcd) as secondary. | ||
|
||
```sh | ||
ETCD_VER=${RELEASE_VERSION} | ||
|
||
rm -rf /tmp/etcd-data.tmp && mkdir -p /tmp/etcd-data.tmp && \ | ||
docker rmi gcr.io/etcd-development/etcd:${ETCD_VER} || true && \ | ||
docker run \ | ||
-p 2379:2379 \ | ||
-p 2380:2380 \ | ||
--mount type=bind,source=/tmp/etcd-data.tmp,destination=/etcd-data \ | ||
--name etcd-gcr-${ETCD_VER} \ | ||
gcr.io/etcd-development/etcd:${ETCD_VER} \ | ||
/usr/local/bin/etcd \ | ||
--name s1 \ | ||
--data-dir /etcd-data \ | ||
--listen-client-urls http://0.0.0.0:2379 \ | ||
--advertise-client-urls http://0.0.0.0:2379 \ | ||
--listen-peer-urls http://0.0.0.0:2380 \ | ||
--initial-advertise-peer-urls http://0.0.0.0:2380 \ | ||
--initial-cluster s1=http://0.0.0.0:2380 \ | ||
--initial-cluster-token tkn \ | ||
--initial-cluster-state new \ | ||
--log-level info \ | ||
--logger zap \ | ||
--log-outputs stderr | ||
|
||
docker exec etcd-gcr-${ETCD_VER}/usr/local/bin/etcd --version | ||
docker exec etcd-gcr-${ETCD_VER}/usr/local/bin/etcdctl version | ||
docker exec etcd-gcr-${ETCD_VER}/usr/local/bin/etcdutl version | ||
docker exec etcd-gcr-${ETCD_VER}/usr/local/bin/etcdctl endpoint health | ||
docker exec etcd-gcr-${ETCD_VER}/usr/local/bin/etcdctl put foo bar | ||
docker exec etcd-gcr-${ETCD_VER}/usr/local/bin/etcdctl get foo | ||
``` |