You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/release-readiness.md
+59Lines changed: 59 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -56,6 +56,65 @@ Required:
56
56
- GitHub Actions passes on Linux, macOS, and Windows.
57
57
- Release workflow builds artifacts for supported platforms.
58
58
59
+
## Release automation checklist
60
+
61
+
The full release path is version-bump driven, not PR-merge driven:
62
+
63
+
1. Open a release PR that updates `Cargo.toml` to the next version.
64
+
2. Keep `Cargo.lock` aligned for the root `teams-cli` package version.
65
+
3. Add a matching `CHANGELOG.md` entry.
66
+
4. After the PR is merged to `main`, confirm `.github/workflows/auto-tag.yml` runs successfully.
67
+
5. Confirm `auto-tag.yml` creates the `vX.Y.Z` tag.
68
+
6. Confirm the tag starts `.github/workflows/release.yml`.
69
+
7. Confirm the release workflow completes all build targets, creates checksums, publishes the GitHub Release, and runs the Homebrew tap update job.
70
+
71
+
Important details:
72
+
73
+
- Merging a feature PR that does not change `Cargo.toml` only runs CI on `main`; it does not create a release.
74
+
-`auto-tag.yml` is path-filtered to `Cargo.toml` and only tags when the package version changes.
75
+
- The tag push is what triggers `release.yml`.
76
+
- The release workflow currently builds:
77
+
-`x86_64-apple-darwin`
78
+
-`aarch64-apple-darwin`
79
+
-`x86_64-unknown-linux-musl`
80
+
-`aarch64-unknown-linux-musl`
81
+
-`x86_64-pc-windows-msvc`
82
+
83
+
Homebrew tap follow-up as of 2026-06-04:
84
+
85
+
-`release.yml` sends a `repository_dispatch` event to `osodevops/homebrew-tap`.
86
+
- The tap repository currently has no workflow listening for that dispatch event.
87
+
- Until that automation exists, update `osodevops/homebrew-tap` manually after each CLI release.
88
+
- Use the published `checksums-sha256.txt` from the GitHub Release to update `Formula/teams-cli.rb`.
89
+
- Verify the remote formula points at the new release URLs and checksums.
90
+
91
+
Known CI maintenance item as of 2026-06-04:
92
+
93
+
- GitHub Actions is warning that Node.js 20 actions are deprecated.
94
+
- Update pinned actions used by CI/release before GitHub's June 16, 2026 Node 24 default switch.
95
+
- Watch especially `actions/checkout`, `actions/upload-artifact`, `actions/download-artifact`, and `softprops/action-gh-release`.
96
+
97
+
## GitHub Actions supply-chain checklist
98
+
99
+
For every GitHub Actions dependency update:
100
+
101
+
1. Verify the owner and repository are unchanged.
102
+
2. Verify the target tag exists in the official action repository.
103
+
3. Resolve the tag to the underlying commit.
104
+
4. Pin the workflow to the full 40-character commit SHA, not the tag.
105
+
5. Keep the trailing version comment accurate, for example `# v7.0.1`.
106
+
6. Check `action.yml` for the runtime. Prefer Node 24 compatible action versions.
107
+
7. Read the release notes for behavior changes, new inputs, permission changes, or token handling changes.
108
+
8. Keep workflow `permissions` at least privilege. Do not give write permissions to build/test jobs.
109
+
9. Set `persist-credentials: false` on `actions/checkout` unless a later step explicitly needs checkout's persisted git credentials.
110
+
10. Do not merge a Dependabot Actions PR if it changes the action owner/repository, points to a fork, removes SHA pinning, or leaves comments inconsistent with the reviewed version.
111
+
112
+
Preferred repository setting:
113
+
114
+
- Require actions and reusable workflows to be pinned to a full-length commit SHA at the repository or organization level.
115
+
116
+
Dependabot is configured to group GitHub Actions updates into one PR so the complete workflow supply-chain diff can be reviewed together.
117
+
59
118
## Commercial release blockers
60
119
61
120
These must be resolved before marketing this as production-ready for external customers:
0 commit comments