Skip to content

chore: integrate release-pilot for CI/CD automation#18

Merged
Arthurdw merged 2 commits intomainfrom
chore/release-pilot-integration
Jan 31, 2026
Merged

chore: integrate release-pilot for CI/CD automation#18
Arthurdw merged 2 commits intomainfrom
chore/release-pilot-integration

Conversation

@Arthurdw
Copy link
Owner

@Arthurdw Arthurdw commented Jan 31, 2026

Summary

Replace custom release logic with release-pilot for cleaner, more maintainable CI/CD.

Changes

  • Add .github/release-pilot.yml configuration for multi-crate Cargo publishing
  • Replace 319-line weekly_release.yml with simplified 143-line version using release-pilot
  • Create reusable vscode-publish.yml and jetbrains-publish.yml workflows
  • Remove redundant release.yml, deploy.yml, and jetbrains-deploy.yml

Benefits

  • ~200 fewer lines of release workflow code
  • Centralized version file updates for README.md, package.json, build.gradle.kts, plugin.xml
  • Automatic PR label parsing (release:major/minor/patch) handled by release-pilot
  • Built-in changelog generation
  • Reusable workflows for extension publishing (can be triggered manually)

Workflow Structure (After)

weekly_release.yml
├── check-changes (skip if no code changes)
├── release (release-pilot: version bump, crates.io publish, GitHub release)
├── publish-vscode (reusable workflow)
└── publish-jetbrains (reusable workflow)

Files Changed

Action File
Added .github/release-pilot.yml
Added .github/workflows/vscode-publish.yml
Renamed jetbrains-deploy.ymljetbrains-publish.yml
Modified .github/workflows/weekly_release.yml
Deleted .github/workflows/release.yml
Deleted .github/workflows/deploy.yml

Summary by CodeRabbit

  • New Features

    • Added automated VS Code extension publishing.
    • Introduced centralized release configuration to coordinate multi-package releases and version propagation.
  • Refactor

    • Reorganized weekly release into modular jobs (change check, release, conditional publishers).
    • Updated JetBrains publishing flow and concurrency behavior.
  • Chores

    • Removed legacy deployment workflow and streamlined release orchestration.

✏️ Tip: You can customize this high-level summary in your review settings.

- Add release-pilot configuration for multi-crate Cargo publishing
- Replace 319-line weekly_release.yml with simplified 143-line version
- Create reusable vscode-publish.yml and jetbrains-publish.yml workflows
- Remove redundant release.yml, deploy.yml, and jetbrains-deploy.yml
- Centralize version file updates (README, package.json, build.gradle.kts, plugin.xml)
- Leverage release-pilot's PR label parsing and changelog generation

Net reduction: ~200 lines across release workflows
@coderabbitai
Copy link

coderabbitai bot commented Jan 31, 2026

📝 Walkthrough

Walkthrough

Introduces a declarative release-pilot config for multi-package releases, adds a VSCode publish workflow, renames/simplifies JetBrains publish workflow, removes legacy deploy/release workflows, and restructures the weekly release into multi-job orchestration with change detection and conditional publishing.

Changes

Cohort / File(s) Summary
Release Pilot config
​.github/release-pilot.yml
New centralized declarative release configuration listing packages, release-order, labels, git/tag settings, changelog generation, and versionFiles mappings to propagate versions into README.md, vscode-rovo, jetbrains-plugin, and plugin.xml.
Removed legacy CI
​.github/workflows/deploy.yml, ​.github/workflows/release.yml
Removed matrix-driven crates.io deploy and the tag-triggered release workflow that built, tested, verified workspace version vs tag, and created GitHub releases.
Weekly release orchestration
​.github/workflows/weekly_release.yml
Replaced single job flow with multi-job workflow: check-changes (git-based change detection, outputs has_changes), release (uses release-pilot, outputs version/skipped), conditional publish-vscode and publish-jetbrains, and no-release; added force input.
VSCode publish workflow
​.github/workflows/vscode-publish.yml
Added workflow (workflow_call/workflow_dispatch) to build/package the VSCode extension and publish via vsce using VSCE_PAT secret.
JetBrains publish workflow
​.github/workflows/jetbrains-publish.yml
Renamed to "Publish JetBrains Plugin", switched trigger to workflow_call, simplified concurrency, added required secrets as inputs, and replaced workflow_run dependency/conditional execution.

Sequence Diagram(s)

sequenceDiagram
    participant GH as GitHub Actions
    participant Check as check-changes
    participant ReleaseJob as release
    participant Pilot as release-pilot Action
    participant VSCodePub as publish-vscode
    participant JBPub as publish-jetbrains

    GH->>Check: scheduled or manual (force)
    Check->>Check: detect last tag, compute changed files, set has_changes
    Check-->>ReleaseJob: has_changes (true)
    ReleaseJob->>Pilot: run release-pilot with repo context
    Pilot->>Pilot: compute bumps, update versionFiles, generate changelog
    Pilot->>Pilot: publish crates (respecting order/delays)
    Pilot-->>ReleaseJob: outputs version, skipped
    alt skipped != true
        ReleaseJob->>VSCodePub: trigger publish-vscode
        ReleaseJob->>JBPub: trigger publish-jetbrains
        VSCodePub->>VSCodePub: npm build/package + vsce publish
        JBPub->>JBPub: publish to JetBrains marketplace
    else skipped == true
        ReleaseJob->>GH: mark release skipped
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Possibly related PRs

  • fix: resolve ci/cd issue #11: Modifies release-detection and version-bump logic in the weekly release workflow; closely related to the new git-history-based change detection and release orchestration.

Suggested labels

enhancement, release:minor

Poem

🐰 A Rabbit's Release Note

I hopped through tags and changelog trees,
nudged versions gently with my paws and knees,
macros first, then LSP and core,
VSCode, JetBrains—publish galore!
Celebrate the flow — hop, patch, and soar! 🥕🎉

🚥 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 accurately reflects the main change: integrating release-pilot as a replacement for custom release automation logic across multiple workflows and configuration files.
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 unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch chore/release-pilot-integration

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.

@codecov
Copy link

codecov bot commented Jan 31, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 92.42%. Comparing base (0ddac38) to head (4240378).
⚠️ Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #18      +/-   ##
==========================================
+ Coverage   91.89%   92.42%   +0.52%     
==========================================
  Files          17       17              
  Lines        5505     5462      -43     
==========================================
- Hits         5059     5048      -11     
+ Misses        446      414      -32     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Fix all issues with AI agents
In @.github/workflows/jetbrains-publish.yml:
- Around line 3-6: The workflow currently uses workflow_call but doesn't declare
on.workflow_call.secrets, so callers won't pass credentials; add an
on.workflow_call.secrets block declaring each secret name required by the
signing and publishing steps (e.g., the secret keys/tokens referenced in those
steps) and mark them as required so they are populated when invoked (use the
YAML key on.workflow_call.secrets with entries matching the secret identifiers
used by the signing/publishing actions).

In @.github/workflows/vscode-publish.yml:
- Around line 3-6: Add a required secret declaration for VSCE_PAT under the
reusable workflow's on.workflow_call.secrets so callers know the contract;
specifically, update the workflow's on.workflow_call block to include a secrets
entry for VSCE_PAT with required: true (referencing the on.workflow_call.secrets
and the secret name VSCE_PAT) to prevent callers that pass explicit secrets from
failing.
🧹 Nitpick comments (1)
.github/workflows/vscode-publish.yml (1)

29-33: Use VSCE_PAT environment variable for authentication instead of -p flag.

The official VS Code publishing documentation recommends relying on the VSCE_PAT environment variable alone. Removing the token from the CLI command reduces exposure of secrets in logs and command history.

♻️ Suggested change
       - name: Publish to VS Code Marketplace
         working-directory: vscode-rovo
-        run: npx vsce publish -p ${{ secrets.VSCE_PAT }}
+        run: npx vsce publish
         env:
           VSCE_PAT: ${{ secrets.VSCE_PAT }}

@Arthurdw Arthurdw added the release:patch Patch version bump label Jan 31, 2026
@Arthurdw Arthurdw self-assigned this Jan 31, 2026
@Arthurdw Arthurdw added the CI/CD label Jan 31, 2026
- Add workflow_call.secrets declarations to vscode-publish.yml and jetbrains-publish.yml
- Use VSCE_PAT env variable instead of -p flag for better security
@Arthurdw Arthurdw merged commit 2b727f5 into main Jan 31, 2026
10 checks passed
@Arthurdw Arthurdw deleted the chore/release-pilot-integration branch January 31, 2026 20:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CI/CD release:patch Patch version bump

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant