-
Notifications
You must be signed in to change notification settings - Fork 2.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
2 changed files
with
33 additions
and
39 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
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 |
---|---|---|
@@ -1,7 +1,5 @@ | ||
# cAdvisor Release Instructions | ||
|
||
Google internal-only version: [cAdvisor Release Instructions](https://go/cadvisor-release-instructions) | ||
|
||
## 1. Send Release PR | ||
|
||
Example: https://github.com/google/cadvisor/pull/1281 | ||
|
@@ -18,60 +16,50 @@ Add release notes to [CHANGELOG.md](../../CHANGELOG.md) | |
Skip this step for patch releases. | ||
|
||
``` | ||
# Example version | ||
VERSION=v0.23 | ||
PATCH_VERSION=$VERSION.0 | ||
# Sync to HEAD, or the commit to branch at | ||
$ git fetch upstream && git checkout upstream/master | ||
git fetch upstream && git checkout upstream/master | ||
# Create the branch | ||
$ git branch release-v0.XX | ||
git branch release-$VERSION | ||
# Push it to upstream | ||
$ git push [email protected]:google/cadvisor.git release-v0.XX | ||
git push [email protected]:google/cadvisor.git release-$VERSION | ||
``` | ||
|
||
### 2.b Tag the release | ||
|
||
For a release of minor version XX, patch version YY: | ||
### 2.b Tag the release (for all releases) | ||
|
||
``` | ||
# Example patch version | ||
VERSION=v0.23 | ||
PATCH_VERSION=$VERSION.0 | ||
# Checkout the release branch | ||
$ git fetch upstream && git checkout upstream/release-v0.XX | ||
git fetch upstream && git checkout upstream/release-$VERSION | ||
# Tag the release commit. If you aren't signing, ommit the -s | ||
$ git tag -s -a v0.XX.YY | ||
git tag -s -a $PATCH_VERSION | ||
# Push it to upstream | ||
$ git push [email protected]:google/cadvisor.git v0.XX.YY | ||
git push [email protected]:google/cadvisor.git $PATCH_VERSION | ||
``` | ||
|
||
## 3. Build release binary | ||
## 3. Build release artifacts | ||
|
||
Command: `make release` | ||
|
||
- Make sure your git client is synced to the release cut point | ||
- Use the same go version as kubernetes: [dependencies.yaml](https://github.com/kubernetes/kubernetes/blob/master/build/dependencies.yaml#L101) | ||
- Tip: use https://github.com/moovweb/gvm to manage multiple go versions. | ||
- Try to build it from the release branch, since we include that in the binary version | ||
- Verify the ldflags output, in particular check the Version, BuildUser, and GoVersion are expected | ||
|
||
Once the build is complete, check the VERSION and note the sha256 hash. | ||
|
||
## 4. Push the Docker images | ||
|
||
Docker Hub: | ||
``` | ||
$ docker login | ||
Username: **** | ||
Password: **** | ||
$ docker push google/cadvisor:$VERSION | ||
$ docker logout # Good practice with shared account | ||
``` | ||
|
||
Google Container Registry: | ||
`make release` should output a command to push the image. Alternatively, run: | ||
|
||
``` | ||
$ gcloud auth login <account> | ||
... | ||
Go to the following link in your browser: | ||
https://accounts.google.com/o/oauth2/auth?<redacted> | ||
Enter verification code: **** | ||
$ gcloud docker push gcr.io/cadvisor/cadvisor:$VERSION | ||
$ gcloud auth revoke # Log out of shared account | ||
$ PATCH_VERSION=v0.23.0 | ||
$ docker push gcr.io/cadvisor/cadvisor:$PATCH_VERSION | ||
``` | ||
|
||
## 5. Cut the release | ||
|
@@ -81,14 +69,14 @@ Go to https://github.com/google/cadvisor/releases and click "Draft a new release | |
- "Tag version" and "Release title" should be preceded by 'v' and then the version. Select the tag pushed in step 2.b | ||
- Copy an old release as a template (e.g. github.com/google/cadvisor/releases/tag/v0.23.1) | ||
- Body should start with release notes (from CHANGELOG.md) | ||
- Next is the Docker image: `google/cadvisor:$VERSION` | ||
- Next is the Docker image: `gcr.io/cadvisor/cadvisor:$VERSION` | ||
- Next are the binary hashes (from step 3) | ||
- Upload the binary build in step 3 | ||
- If this is an alpha or beta release, mark the release as a "pre-release" | ||
- If this is a minor version release, mark the release as a "pre-release" | ||
- Click publish when done | ||
|
||
## 6. Finalize the release | ||
|
||
~~Once you are satisfied with the release quality (consider waiting a week for bug reports to come in), it is time to promote the release to *latest*~~ | ||
~~Once you are satisfied with the release quality (generally we wait until the next minor release), it is time to remove the "pre-release" tag~~ | ||
|
||
cAdvisor is no longer pushed with the :latest tag. This is to ensure tagged images are immutable. |