72 lines
2.0 KiB
Markdown
72 lines
2.0 KiB
Markdown
# Cutting a release
|
|
|
|
## Tags
|
|
|
|
First, see what has been tagged:
|
|
|
|
```
|
|
git tag
|
|
```
|
|
|
|
Pick the next release number and tag it.
|
|
|
|
```
|
|
git tag -am v3.3.2 v3.3.2
|
|
```
|
|
|
|
## Build and push to staging
|
|
|
|
To build git-sync you need [docker buildx](https://github.com/docker/buildx).
|
|
|
|
Make sure you are logged into Google Cloud (to push to GCR).
|
|
|
|
```
|
|
gcloud auth login
|
|
```
|
|
|
|
The following step will build for all platforms and push the container images
|
|
to our staging repo (gcr.io/k8s-staging-git-sync).
|
|
|
|
```
|
|
make manifest-list
|
|
```
|
|
|
|
This will produce output like:
|
|
```
|
|
<...lots of output...>
|
|
Successfully tagged gcr.io/k8s-staging-git-sync/git-sync:v3.3.2__linux_amd64
|
|
<...lots of output...>
|
|
v3.3.2__linux_amd64: digest: sha256:74cd8777ba08c7b725cd2f6de34a638ba50b48cde59f829e1dc982c8c8c9959a size: 951
|
|
pushed: gcr.io/k8s-staging-git-sync/git-sync:v3.3.2__linux_amd64
|
|
<...lots of output...>
|
|
Digest: sha256:853ae812df916e59a7b27516f791ea952d503ad26bc8660deced8cd528f128ae 433
|
|
```
|
|
|
|
Take note of this final sha256.
|
|
|
|
## Promote the images
|
|
|
|
Make a PR against
|
|
https://github.com/kubernetes/k8s.io to edit the file
|
|
k8s.gcr.io/images/k8s-staging-git-sync/images.yaml and add the sha256 and tag
|
|
name from above. For example:
|
|
|
|
```
|
|
- name: git-sync
|
|
dmap:
|
|
+ "sha256:853ae812df916e59a7b27516f791ea952d503ad26bc8660deced8cd528f128ae": ["v3.3.2"]
|
|
"sha256:95bfb980d3b640f6015f0d1ec25c8c0161d0babcf83d31d4c0453dd2b59923db": ["v3.3.1"]
|
|
"sha256:5f3d12cb753c6cd00c3ef9cc6f5ce4e584da81d5210c15653644ece675f19ec6": ["v3.3.0"]
|
|
"sha256:6a543fb2d1e92008aad697da2672478dcfac715e3dddd33801d772da6e70cf24": ["v3.2.2"]
|
|
```
|
|
|
|
When that PR is merged, the promoter bot will copy the images from staging to
|
|
the final prod location (e.g. `registry.k8s.io/git-sync/git-sync:v3.3.2`).
|
|
|
|
## Make a GitHub release
|
|
|
|
Lastly, make a release through the [github UI](https://github.com/kubernetes/git-sync/releases).
|
|
Include all the notable changes since the last release and the final container
|
|
image location. The "Auto-generate release notes" button is a great starting
|
|
place.
|