Skip to content

Commit 59f4a0f

Browse files
committed
chore: Release process issue template
1 parent 15825c7 commit 59f4a0f

File tree

1 file changed

+131
-0
lines changed

1 file changed

+131
-0
lines changed

.github/ISSUE_TEMPLATE/release.yml

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

0 commit comments

Comments
 (0)