@@ -291,6 +291,18 @@ jobs:
|
|||||||
- name: Create dashboard.zip
|
- name: Create dashboard.zip
|
||||||
run: cd packages/dashboard/out && zip -r ../../../dashboard.zip .
|
run: cd packages/dashboard/out && zip -r ../../../dashboard.zip .
|
||||||
|
|
||||||
|
- name: Extract changelog entry
|
||||||
|
run: |
|
||||||
|
VERSION="${{ needs.check-release.outputs.version }}"
|
||||||
|
awk '/<!-- release:start -->/{found=1; next} /<!-- release:end -->/{found=0} found{print}' CHANGELOG.md > /tmp/release-notes.md
|
||||||
|
|
||||||
|
LINES=$(wc -l < /tmp/release-notes.md | tr -d ' ')
|
||||||
|
if [ "$LINES" -lt 2 ]; then
|
||||||
|
echo "Error: No release notes found between <!-- release:start --> and <!-- release:end --> markers in CHANGELOG.md"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
echo "Extracted release notes for $VERSION ($LINES lines)"
|
||||||
|
|
||||||
- name: Create GitHub Release
|
- name: Create GitHub Release
|
||||||
run: |
|
run: |
|
||||||
VERSION="${{ needs.check-release.outputs.version }}"
|
VERSION="${{ needs.check-release.outputs.version }}"
|
||||||
@@ -303,7 +315,7 @@ jobs:
|
|||||||
echo "Creating release $TAG..."
|
echo "Creating release $TAG..."
|
||||||
gh release create "$TAG" \
|
gh release create "$TAG" \
|
||||||
--title "$TAG" \
|
--title "$TAG" \
|
||||||
--generate-notes \
|
--notes-file /tmp/release-notes.md \
|
||||||
bin/agent-browser-* dashboard.zip
|
bin/agent-browser-* dashboard.zip
|
||||||
fi
|
fi
|
||||||
env:
|
env:
|
||||||
|
|||||||
@@ -41,21 +41,22 @@ To prepare a release:
|
|||||||
1. Create a branch (e.g. `prepare-v0.24.0`)
|
1. Create a branch (e.g. `prepare-v0.24.0`)
|
||||||
2. Bump `version` in `package.json`
|
2. Bump `version` in `package.json`
|
||||||
3. Run `pnpm version:sync` to update `cli/Cargo.toml`, `cli/Cargo.lock`, and `packages/dashboard/package.json`
|
3. Run `pnpm version:sync` to update `cli/Cargo.toml`, `cli/Cargo.lock`, and `packages/dashboard/package.json`
|
||||||
4. Write the changelog entry in `CHANGELOG.md` at the top, under a new `## <version>` heading
|
4. Write the changelog entry in `CHANGELOG.md` at the top, under a new `## <version>` heading, wrapped in `<!-- release:start -->` and `<!-- release:end -->` markers
|
||||||
5. Add a matching entry to `docs/src/app/changelog/page.mdx` at the top (below the `# Changelog` heading)
|
5. Add a matching entry to `docs/src/app/changelog/page.mdx` at the top (below the `# Changelog` heading)
|
||||||
6. Open a PR and merge to `main`
|
6. Open a PR and merge to `main`
|
||||||
|
|
||||||
When the PR merges, CI compares `package.json` version to what's on npm. If it differs, it builds all 7 platform binaries, publishes to npm, and creates the GitHub release automatically.
|
When the PR merges, CI compares `package.json` version to what's on npm. If it differs, it builds all 7 platform binaries, publishes to npm, and creates the GitHub release automatically. The GitHub release body is extracted from the content between the `<!-- release:start -->` and `<!-- release:end -->` markers in `CHANGELOG.md`.
|
||||||
|
|
||||||
### Writing the changelog
|
### Writing the changelog
|
||||||
|
|
||||||
Review the git log since the last release and write the entry in `CHANGELOG.md`. Follow the existing format and voice. Group changes under `### New Features`, `### Bug Fixes`, `### Improvements`, etc. Bold the feature/fix name, then describe it concisely. Reference PR numbers in parentheses.
|
Review the git log since the last release and write the entry in `CHANGELOG.md`. Follow the existing format and voice. Group changes under `### New Features`, `### Bug Fixes`, `### Improvements`, etc. Bold the feature/fix name, then describe it concisely. Reference PR numbers in parentheses.
|
||||||
|
|
||||||
Example:
|
Wrap the release notes (everything between the `## <version>` heading and the previous version) in markers so CI can extract them for the GitHub release:
|
||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
## 0.24.0
|
## 0.24.0
|
||||||
|
|
||||||
|
<!-- release:start -->
|
||||||
### New Features
|
### New Features
|
||||||
|
|
||||||
- **Foo command** - Added `foo` command for bar (#1234)
|
- **Foo command** - Added `foo` command for bar (#1234)
|
||||||
@@ -63,8 +64,18 @@ Example:
|
|||||||
### Bug Fixes
|
### Bug Fixes
|
||||||
|
|
||||||
- Fixed **baz** not working when qux is enabled (#1235)
|
- Fixed **baz** not working when qux is enabled (#1235)
|
||||||
|
|
||||||
|
### Contributors
|
||||||
|
|
||||||
|
- @ctate
|
||||||
|
- @somecontributor
|
||||||
|
<!-- release:end -->
|
||||||
|
|
||||||
|
## 0.23.3
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Include a `### Contributors` section listing the GitHub usernames (with `@` prefix) of everyone who contributed to the release. Check the git log between the previous tag and HEAD to find them.
|
||||||
|
|
||||||
Do not prefix entries with commit hashes. Do not use the changesets `### Patch Changes` / `### Minor Changes` headings. Use descriptive section names instead.
|
Do not prefix entries with commit hashes. Do not use the changesets `### Patch Changes` / `### Minor Changes` headings. Use descriptive section names instead.
|
||||||
|
|
||||||
### Docs changelog
|
### Docs changelog
|
||||||
|
|||||||
Reference in New Issue
Block a user