Skip to content

feat(release): automated release pipeline with semantic-release#157

Merged
github-actions[bot] merged 10 commits into
developfrom
feature/automated-release-pipeline
Mar 14, 2026
Merged

feat(release): automated release pipeline with semantic-release#157
github-actions[bot] merged 10 commits into
developfrom
feature/automated-release-pipeline

Conversation

@tomymaritano

@tomymaritano tomymaritano commented Mar 14, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Replace manual release process with a two-stage automated pipeline using semantic-release
  • Stage 1 (release.yml): workflow_dispatch on main → semantic-release analyzes commits, bumps version, creates tag + draft GitHub Release (~30s)
  • Stage 2 (build.yml): tag push triggers parallel mac/win/linux builds → signs + notarizes macOS → uploads artifacts → undrafts release → tweets → auto-PR syncs main→develop

Changes

  • Add release.config.js (conventionalcommits preset, draft release, beta channel ready)
  • Add scripts/bump-version.js with tests (syncs version across monorepo)
  • Replace .github/workflows/release.yml (200 lines → 46 lines semantic-release workflow)
  • Create .github/workflows/build.yml (parallel platform builds + publish + tweet + sync-develop)
  • Delete .github/workflows/auto-tag.yml (replaced by semantic-release)
  • Update CLAUDE.md Git Flow section with release process + rollback docs
  • Add semantic-release + plugins as devDependencies

Required: New GitHub Secret

Create a GH_TOKEN repository secret — a Personal Access Token with contents: write scope. Needed because:

  1. semantic-release must push tags that trigger other workflows (GITHUB_TOKEN can't do this)
  2. electron-builder needs write access to upload artifacts to GitHub Releases

Test plan

  • All existing tests pass (pnpm test)
  • scripts/bump-version.test.js — 2 new tests passing
  • release.config.js loads correctly
  • All workflow YAML files are syntactically valid
  • Create GH_TOKEN secret in repo settings
  • After merge to main: click "Run workflow" on Release action to test end-to-end

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Implemented automated release pipeline with semantic versioning, generating changelogs automatically.
    • Added multi-platform build automation for simultaneous macOS, Windows, and Linux releases.
  • Documentation

    • Updated Git Flow and release process documentation to reflect new automated workflows.
  • Tests

    • Added tests for automated version management.
  • Chores

    • Refined release workflows for improved efficiency and reliability.

tomymaritano and others added 10 commits March 14, 2026 16:42
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>
@vercel

vercel Bot commented Mar 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
readide Ready Ready Preview, Comment Mar 14, 2026 7:46pm

Request Review

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@github-actions github-actions Bot added dependencies Pull requests that update a dependency file ci labels Mar 14, 2026
@github-actions github-actions Bot enabled auto-merge (squash) March 14, 2026 19:46
@coderabbitai

coderabbitai Bot commented Mar 14, 2026

Copy link
Copy Markdown

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

Walkthrough

This 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

Cohort / File(s) Summary
Legacy Workflow Removal
.github/workflows/auto-tag.yml
Deleted the auto-tag workflow that previously triggered on merged PRs to create version tags based on package.json.
Release Workflow Rewrite
.github/workflows/release.yml
Replaced multi-phase platform build matrix with semantic-release-driven release job; removed tag validation, per-platform builds, and artifact uploads; now triggers on workflow_dispatch and main branch with expanded permissions.
Build Workflow Addition
.github/workflows/build.yml
New workflow triggered on v* tags with multi-platform build matrix (macOS, Windows, Linux); builds Electron app, creates platform-specific distributables, uploads artifacts, publishes GitHub Release, posts tweets, and syncs changes back to develop.
Semantic-Release Configuration
release.config.js
New configuration file for semantic-release defining branches, commit-analyzer rules, release notes generation, changelog creation, version bumping via exec, git operations, and GitHub draft release management.
Version Bump Scripts
scripts/bump-version.js, scripts/bump-version.test.js
New script to update version fields across root and desktop package.json files, with corresponding Vitest test suite validating version updates and error handling.
Dependencies
package.json
Added semantic-release, conventional-changelog-conventionalcommits, and related changelog/commit-analyzer/github/git/exec plugins as devDependencies; added vitest.
Documentation
CLAUDE.md, docs/superpowers/specs/2026-03-14-automated-release-pipeline-design.md, docs/superpowers/plans/2026-03-14-automated-release-pipeline.md
Replaced Git Flow description with automated release model; removed release/* branch; added automated Release Process and rollback procedures; added comprehensive design and implementation plan documents for the new two-stage CI/CD pipeline.

Sequence Diagram

sequenceDiagram
    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
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

  • #135: Adds automatic "tweet" job to release workflows; both PRs introduce tweet functionality in release processes.

Suggested labels

ci, size/M

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and specifically describes the main change: implementing an automated release pipeline using semantic-release.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
  • 📝 Generate docstrings (stacked PR)
  • 📝 Generate docstrings (commit on current branch)
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feature/automated-release-pipeline
📝 Coding Plan
  • Generate coding plan for human review comments

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot merged commit 64d7010 into develop Mar 14, 2026
14 of 15 checks passed
github-actions Bot pushed a commit that referenced this pull request Mar 14, 2026
## 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>
tomymaritano added a commit that referenced this pull request Mar 18, 2026
Resolve conflicts keeping tool use features + CodeRabbit fixes.
Incoming from develop: ai-core base (#156), release pipeline (#157), cleanUrls fix (#164).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ci dependencies Pull requests that update a dependency file size/XL

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant