Skip to content

Commit a0aadee

Browse files
committed
Add some more release process details 🤓
Worked with @jerop to create the v0.19.0 release today and there were a few parts of the cheat sheet that felt like they could use a bit more detail: - You can configure kubectl to connect to multiple clusters if you want - Some info on how to choose the commit to release - The step that applies the PipelineResource was applying a file in the tekton dir that probably wasnt the one you meant to apply (the old instructions directed ppl to edit that file) - Changed the numbering in markdown to all be `1.` so you can add more steps without having to update all the numbers - Added some guidance on naming the release. - Mentioned that you have to uncheck the pre-release box (which I didn't realize last time XD) - Don't use patch versions in the example
1 parent 75f3776 commit a0aadee

File tree

1 file changed

+41
-27
lines changed

1 file changed

+41
-27
lines changed

‎tekton/release-cheat-sheet.md

+41-27
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,20 @@ the pipelines repo, a terminal window and a text editor.
66

77
1. `cd` to root of Pipelines git checkout.
88

9-
2. Point `kubectl` at dogfooding cluster.
9+
1. Configure `kubectl` to use the dogfooding cluster
10+
[as the default context](https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/)
11+
(**in the final step we will configure the default context to point to something else; until then be aware
12+
that any kubctl commands you run will act on the dogfooding cluster**)
1013

1114
```bash
1215
gcloud container clusters get-credentials dogfooding --zone us-central1-a --project tekton-releases
1316
```
1417

15-
3. Create PipelineResource for new version. e.g.
18+
1. Select the commit you would like to build the release from, most likely the
19+
most recent commit at https://github.com/tektoncd/pipeline/commits/master
20+
and note the commit's hash.
21+
22+
1. Create a `.yaml` file containing PipelineResource for new version. e.g.
1623
1724
```yaml
1825
apiVersion: tekton.dev/v1alpha1
@@ -25,26 +32,26 @@ the pipelines repo, a terminal window and a text editor.
2532
- name: url
2633
value: https://github.com/tektoncd/pipeline
2734
- name: revision
28-
value: # Example: 33e0847e67fc9804689e50371746c3cdad4b0a9d
35+
value: # The commmit you selected in the last step, e.g. 33e0847e67fc9804689e50371746c3cdad4b0a9d
2936
```
3037
31-
4. `kubectl apply -f tekton/resources.yaml`
38+
1. Apply file you just made to the dogfooding cluster: `kubectl apply -f your-pipeline-resource-file.yaml`
3239
33-
5. Create environment variables for bash scripts in later steps.
40+
1. Create environment variables for bash scripts in later steps.
3441
3542
```bash
36-
TEKTON_VERSION=# Example: v0.11.2
37-
TEKTON_RELEASE_GIT_RESOURCE=# Example: tekton-pipelines-v0-11-2
38-
TEKTON_IMAGE_REGISTRY=gcr.io/tekton-releases
43+
TEKTON_VERSION=# Example: v0.11.0
44+
TEKTON_RELEASE_GIT_RESOURCE=# Name of the resource you created, e.g.: tekton-pipelines-v0-11-0
45+
TEKTON_IMAGE_REGISTRY=gcr.io/tekton-releases # only change if you want to publish to a different registry
3946
```
4047
41-
6. Confirm commit SHA matches what you want to release.
48+
1. Confirm commit SHA matches what you want to release.
4249
4350
```bash
4451
kubectl get pipelineresource "$TEKTON_RELEASE_GIT_RESOURCE" -o=jsonpath="{'Target Revision: '}{.spec.params[?(@.name == 'revision')].value}{'\n'}"
4552
```
4653
47-
7. Execute the release pipeline.
54+
1. Execute the release pipeline.
4855
4956
**If you are backporting include this flag: `--param=releaseAsLatest="false"`**
5057
@@ -70,19 +77,22 @@ the pipelines repo, a terminal window and a text editor.
7077
pipeline-release
7178
```
7279
73-
8. Watch logs of pipeline-release.
80+
1. Watch logs of pipeline-release.
81+
82+
1. The YAMLs are now released! Anyone installing Tekton Pipelines will now get the new version. Time to create a new GitHub release announcement:
7483
75-
9. The YAMLs are now released! Anyone installing Tekton Pipelines will now get the new version. Time to create a new GitHub release announcement:
84+
1. Choose a name for the new release! The usual pattern is "< cat breed > < famous robot >" e.g. "Ragdoll Norby".
85+
(Check the previous releases to avoid repetition: https://github.com/tektoncd/pipeline/releases.)
7686
7787
1. Create additional environment variables
7888
7989
```bash
8090
TEKTON_OLD_VERSION=# Example: v0.11.1
81-
TEKTON_RELEASE_NAME=# Example: "Ragdoll Norby"
91+
TEKTON_RELEASE_NAME=# The release name you just chose, e.g.: "Ragdoll Norby"
8292
TEKTON_PACKAGE=tektoncd/pipeline
8393
```
8494
85-
2. Execute the Draft Release task.
95+
1. Execute the Draft Release task.
8696
8797
```bash
8898
tkn task start \
@@ -95,26 +105,30 @@ the pipelines repo, a terminal window and a text editor.
95105
create-draft-release
96106
```
97107
98-
4. Watch logs of create-draft-release
108+
1. Watch logs of create-draft-release
109+
110+
1. On successful completion, a URL will be logged. Visit that URL and sort the
111+
release notes.
112+
1. Manually add upgrade and deprecation notices based on the generated release notes
113+
1. Double-check that the list of commits here matches your expectations
114+
for the release. You might need to remove incorrect commits or copy/paste commits
115+
from the release branch. Refer to previous releases to confirm the expected format.
99116
100-
5. On successful completion, a URL will be logged. Visit that URL and sort the
101-
release notes. **Double-check that the list of commits here matches your expectations
102-
for the release.** You might need to remove incorrect commits or copy/paste commits
103-
from the release branch. Refer to previous releases to confirm the expected format.
117+
1. Un-check the "This is a pre-release" checkbox since you're making a legit for-reals release!
104118

105-
6. Publish the GitHub release once all notes are correct and in order.
119+
1. Publish the GitHub release once all notes are correct and in order.
106120

107-
10. Edit `README.md` on `master` branch, add entry to docs table with latest release links.
121+
1. Edit `README.md` on `master` branch, add entry to docs table with latest release links.
108122

109-
11. Push & make PR for updated `README.md`
123+
1. Push & make PR for updated `README.md`
110124

111-
12. **Important: Stop pointing `kubectl` at dogfooding cluster.**
125+
1. **Important: Stop pointing `kubectl` at dogfooding cluster.**
112126

113127
```bash
114128
kubectl config use-context my-dev-cluster
115129
```
116130

117-
13. Test release that you just made.
131+
1. Test release that you just made.
118132

119133
```bash
120134
# Test latest
@@ -126,9 +140,9 @@ the pipelines repo, a terminal window and a text editor.
126140
kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.11.2/release.yaml
127141
```
128142

129-
14. Announce the release in Slack channels #general and #pipelines.
143+
1. Announce the release in Slack channels #general and #pipelines.
130144

131-
15. Update [the catalog repo](https://github.com/tektoncd/catalog) test infrastructure
132-
to use the new release by updating the `RELEASE_YAML` link in [e2e-tests.sh](https://github.com/tektoncd/catalog/blob/v1beta1/test/e2e-tests.sh).
145+
1. Update [the catalog repo](https://github.com/tektoncd/catalog) test infrastructure
146+
to use the new release by updating the `RELEASE_YAML` link in [e2e-tests.sh](https://github.com/tektoncd/catalog/blob/master/test/e2e-tests.sh).
133147

134148
Congratulations, you're done!

0 commit comments

Comments
 (0)