feat(release): automated release pipeline with semantic-release#157
Conversation
Two-stage pipeline with semantic-release + electron-builder: - Stage 1: workflow_dispatch -> semantic-release -> version + tag + draft release - Stage 2: tag push -> parallel platform builds -> undraft on success - Post-release auto-sync main -> develop via PR Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add concurrency protection to release.yml (prevent parallel releases) - Simplify sync-develop job (PR directly from main, no branch creation) - Make tweet job non-blocking with continue-on-error - Use GITHUB_TOKEN where PAT not required, document PAT reasoning - Add pnpm store cache to build workflow - Fix markdownlint warnings (fenced code block languages) - Document concurrency + tweet safety in Reliability Practices Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Caution Review failedPull request was closed or merged during review 📝 WalkthroughWalkthroughThis PR implements an automated release pipeline using semantic-release. It removes the legacy auto-tag.yml workflow, rewrites release.yml to use semantic-release for version management and tagging, adds a new build.yml workflow triggered by version tags for multi-platform builds, introduces release configuration and version-bumping scripts, and updates documentation to reflect the new Git Flow. Changes
Sequence DiagramsequenceDiagram
participant Dev as Developer
participant GH as GitHub
participant SR as semantic-release
participant Build as Build Workflow
participant Artifact as Artifacts
participant Release as GitHub Release
participant Tweet as Tweet Job
participant PR as Develop PR
Dev->>GH: Merge PR to main
GH->>SR: Trigger release workflow
SR->>SR: Analyze commits (conventional)
SR->>SR: Determine version bump
SR->>GH: Create version tag (v*)
GH->>GH: Push tag to remote
GH->>Build: Trigger build workflow (tag event)
Build->>Build: Build for macOS, Windows, Linux
Build->>Artifact: Upload platform artifacts
Build->>Release: Create GitHub Release
Build->>Tweet: Post release announcement
Build->>PR: Create sync PR to develop
Release-->>Dev: Release published
Tweet-->>Dev: Tweet posted
PR-->>Dev: Auto-sync initiated
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested labels
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches
🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
## Summary - Merges all develop changes into main for release preparation - Includes: AI core provider abstraction (#156), automated release pipeline (#157), and all other develop work - All conflicts resolved (develop is source of truth) ## What happens after merge 1. Go to **Actions → Release → Run workflow** (branch: main) 2. semantic-release calculates version, creates tag + draft release 3. Build workflow triggers automatically for mac/win/linux 4. Release is published when all builds succeed ## Test plan - [x] All tests pass (`pnpm test` — 16/16) - [x] No conflict markers remaining - [ ] CI checks pass on this PR 🤖 Generated with [Claude Code](https://claude.com/claude-code) --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
Summary
release.yml):workflow_dispatchon main → semantic-release analyzes commits, bumps version, creates tag + draft GitHub Release (~30s)build.yml): tag push triggers parallel mac/win/linux builds → signs + notarizes macOS → uploads artifacts → undrafts release → tweets → auto-PR syncs main→developChanges
release.config.js(conventionalcommits preset, draft release, beta channel ready)scripts/bump-version.jswith tests (syncs version across monorepo).github/workflows/release.yml(200 lines → 46 lines semantic-release workflow).github/workflows/build.yml(parallel platform builds + publish + tweet + sync-develop).github/workflows/auto-tag.yml(replaced by semantic-release)Required: New GitHub Secret
Create a
GH_TOKENrepository secret — a Personal Access Token withcontents: writescope. Needed because:Test plan
pnpm test)scripts/bump-version.test.js— 2 new tests passingrelease.config.jsloads correctlyGH_TOKENsecret in repo settings🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Documentation
Tests
Chores