Skip to content

Create GitHub releases automatically - #2

Merged
Backware merged 2 commits into
mainfrom
ci/auto-release
Nov 11, 2026
Merged

Backware merged 2 commits into
mainfrom
ci/auto-release

Conversation

@Backware

Copy link
Copy Markdown
Owner

Requested by Adrian · project thread

Summary

Releases are now created automatically.

How to release from now on: bump version in src/manifest.json and package.json, add a ## <version> (<date>) section to CHANGELOG.md, merge to main. Done.

  • .github/workflows/release.yml: on every push to main it checks whether v<manifest version> already exists. If not, it runs the tests, builds gta6-blocker-chrome-<version>.zip and publishes the GitHub release with the matching changelog section (plus short install notes) as release notes. Pushes without a version bump are a no-op. It fails if the two version fields differ. Can also be triggered by hand (Actions → Release → Run workflow).
  • .github/workflows/test.yml: runs npm test on every pull request.
  • scripts/package-chrome.*: exclude src/_metadata/ (generated by Chrome when tests load the extension), so it never ends up in the zip.
  • CONTRIBUTING.md: release instructions.

Heads-up: main is at 1.2.0 and only v1.1.0 exists, so merging this PR will immediately publish v1.2.0 (GitHub exception + Twitch).

Safari is not built in CI: it needs signing on a Mac, so the release only contains the Chrome zip.

Tests

Ran the version, packaging and release-notes steps locally: version 1.2.0 detected as unreleased, npm test passes (80/80), the zip contains no _metadata, and the notes are the 1.2.0 changelog section. Publishing itself only runs on GitHub; this PR's Test workflow is the first real CI run.


Generated by Claude Code

- release.yml: on every push to main, if the version in src/manifest.json
  has no tag yet, run the tests, build the Chrome zip and publish release
  v<version> with the matching CHANGELOG.md section as notes. Fails if
  manifest.json and package.json versions differ. Can also be started by
  hand (workflow_dispatch).
- test.yml: run the tests on every pull request.
- package-chrome: leave out src/_metadata, which Chrome generates when the
  tests load the extension, so it never ends up in the release zip.
- CONTRIBUTING: how to release.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JwxKLiPRub6p8CfggHK7nR
@Backware Backware self-assigned this Nov 11, 2026
The first Test run failed in 'playwright install --with-deps' because the
runner could not resolve security.ubuntu.com, so apt could not download
fonts. The ubuntu-24.04 runner image already ships Chrome's system
libraries, so only the browser itself is installed now. Also move to
Node 22 (Node 20 actions runtime is deprecated).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JwxKLiPRub6p8CfggHK7nR
@Backware
Backware merged commit 345fb1c into main Nov 11, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants