mirror of
https://github.com/dreamhunter2333/cloudflare_temp_email.git
synced 2026-09-08 17:08:59 +08:00
29 lines
1.9 KiB
Markdown
29 lines
1.9 KiB
Markdown
---
|
|
name: cf-temp-mail-release
|
|
description: Create a GitHub release for cloudflare_temp_email project. Use when the user asks to create a release, publish a version, tag a release, or make a new release. Reads CHANGELOG.md for release content, collects merged PRs via `gh` CLI, and creates a properly formatted GitHub release.
|
|
---
|
|
|
|
# Release Workflow
|
|
|
|
## Steps
|
|
|
|
1. **Read version**: Get current version from `worker/package.json` (`"version"` field) and the latest release tag via `gh release list --limit 1`.
|
|
2. **Read CHANGELOG**: Read `CHANGELOG.md` for the current version section (e.g. `## v1.4.0(main)`). Verify content matches `CHANGELOG_EN.md`. If entries are missing from either file, notify the user.
|
|
3. **Collect PRs**: Get the last release tag timestamp, then filter merged PRs by time:
|
|
```bash
|
|
TAG="$(gh release list --limit 1 --json tagName --jq '.[0].tagName')"
|
|
SINCE="$(git show -s --format=%cI "$TAG")"
|
|
gh pr list --state merged --search "is:pr is:merged merged:>$SINCE base:main" --json number,title,author --limit 200
|
|
```
|
|
Sort by PR number ascending.
|
|
4. **Compose release body**: Follow the template in [references/release-template.md](references/release-template.md). Key rules:
|
|
- Write release body in **bilingual format**: Chinese sections first (from `CHANGELOG.md`), then wrap the English sections (from `CHANGELOG_EN.md`) in `<details><summary>English</summary>...</details>`.
|
|
- Copy changelog sections verbatim from both files. Omit empty sections.
|
|
- Wrap PRs list in `<details><summary>PRs</summary>...</details>`.
|
|
- Always include the cache-clearing discussion link.
|
|
- End with `**Full Changelog**` comparison link.
|
|
5. **Create release**:
|
|
- Write body to a temp file (e.g. `/tmp/release-notes.md`)
|
|
- Run: `gh release create vX.Y.Z --title "vX.Y.Z" --notes-file /tmp/release-notes.md --target main`
|
|
6. **Verify**: Confirm the release URL and ask the user to review.
|