-
Notifications
You must be signed in to change notification settings - Fork 9
/
release.yml
132 lines (124 loc) · 5.54 KB
/
release.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
name: New Release
description: Publish a new release of the Benefits app
title: Make a Release
labels:
- release
body:
- type: markdown
attributes:
value: |
## Prepare a new release
Use the form below to prepare a new release of the Benefits app.
Each release is coordinated by a **Release Manager**. The release manager may assign sub-tasks or ask for help
as-needed, but is otherwise responsible for all aspects of the release.
Each release also identifies a **Smoke Tester** responsible for carrying out the [Smoke Tests according to our
established procedure](https://docs.google.com/document/d/1ADXWW4mfLJwLKVqtVemPNX9yTqYKqIWfCz1DipAU02g/edit).
After this issue is created, use the checklist to manage the steps
of the release process, marking items as completed. [Read more about the
release process](https://docs.calitp.org/benefits/deployment/release/).
Close this issue when the checklist is complete.
validations:
required: true
- type: input
id: manager
attributes:
label: Release manager
description: GitHub handle of who is responsible for this release; assign this issue to this user
placeholder: "@cal-itp-bot"
validations:
required: true
- type: input
id: smoke-tester
attributes:
label: Smoke tester
description: GitHub handle of who is responsible for smoke testing this release
placeholder: "@cal-itp-bot"
validations:
required: false
- type: input
id: version
attributes:
label: Release version
description: Calver-formatted version for this release
placeholder: YYYY.0M.R
validations:
required: true
- type: input
id: slack
attributes:
label: Slack thread
description: Link to the Slack thread for this release
placeholder: "https://slack.com/archives/ABC/XZY"
validations:
required: false
- type: markdown
attributes:
value: |
## Release type
Reference the discussion on [the release process docs](https://docs.calitp.org/benefits/deployment/release/).
* `Regular` release: a normal release.
* `Hotfix` release: a release to quickly fix something in production.
* `Rollback` release: a release to restore the app to a known working state.
- type: dropdown
id: type
attributes:
label: What type of release is this?
options:
- "Regular"
- "Hotfix"
- "Rollback"
validations:
required: true
- type: markdown
attributes:
value: |
## Release checklist
After this issue is created, edit the description to keep only the checklist for the release type.
- type: checkboxes
id: regular-checklist
attributes:
label: Regular release checklist
description: Complete these items in sequence as the `Regular` release progresses
options:
- label: Ensure the `main` branch and secrets are up to date
- label: Ensure `test` secrets are up to date
- label: Create an annotated release candidate tag on `main` (`git tag -a YYYY.0M.R-rcR`)
- label: Push the annotated release candidate tag (`git push origin YYYY.0M.R-rcR`)
- label: QA the app in test
- label: Ensure `prod` secrets are up to date
- label: Create an annotated release tag on `main` (`git tag -a YYYY.0M.R`)
- label: Push the annotated release tag (`git push origin YYYY.0M.R`)
- label: Smoke Test the app in prod
- label: Confirm acceptance of Smoke Tests by adding a comment to this issue
- label: Edit release notes to link back to this Release process issue
- label: Edit release notes with additional context, images, animations, etc. as-needed
- type: checkboxes
id: hotfix-checklist
attributes:
label: Hotfix release checklist
description: Complete these items in sequence as the `Hotfix` release progresses
options:
- label: Create a hotfix branch from the latest release tag on `main` (`git checkout -b hotfix YYYY.0M.R`)
- label: Commit the fixes to the hotfix branch
- label: Ensure `prod` secrets are up to date
- label: Create an annotated tag on the hotfix branch (`git tag -a YYYY.0M.R`)
- label: Push the annotated tag (`git push origin YYYY.0M.R`)
- label: Smoke Test the fix in prod
- label: Confirm acceptance of Smoke Tests by adding a comment to this issue
- label: Edit release notes to link back to this Release process issue
- label: Edit release notes with additional context, images, animations, etc. as-needed
- label: Open a PR from the hotfix branch to the current state of `main`
- label: Merge the PR into `main`
- type: checkboxes
id: rollback-checklist
attributes:
label: Rollback release checklist
description: Complete these items in sequence as the `Rollback` release progresses
options:
- label: Create an annotated release tag for the rollback on the commit associated with the last known good release tag on `main` (`git tag -a YYYY.0M.R <commit-hash>`)
- label: Ensure `prod` secrets are up to date
- label: Push the annotated tag (`git push origin YYYY.0M.R`)
- label: Smoke Test the rollback in prod
- label: Confirm acceptance of Smoke Tests by adding a comment to this issue
- label: Edit release notes to link back to this Release process issue
- label: Edit release notes with additional context, images, animations, etc. as-needed