chore: integrate release-pilot for CI/CD automation#18
Conversation
- 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
📝 WalkthroughWalkthroughIntroduces 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
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
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested labels
Poem
🚥 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)
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 |
Codecov Report✅ All modified and coverable lines are covered by tests. 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. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
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-pflag.The official VS Code publishing documentation recommends relying on the
VSCE_PATenvironment 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 }}
- 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
Summary
Replace custom release logic with release-pilot for cleaner, more maintainable CI/CD.
Changes
.github/release-pilot.ymlconfiguration for multi-crate Cargo publishingweekly_release.ymlwith simplified 143-line version using release-pilotvscode-publish.ymlandjetbrains-publish.ymlworkflowsrelease.yml,deploy.yml, andjetbrains-deploy.ymlBenefits
Workflow Structure (After)
Files Changed
.github/release-pilot.yml.github/workflows/vscode-publish.ymljetbrains-deploy.yml→jetbrains-publish.yml.github/workflows/weekly_release.yml.github/workflows/release.yml.github/workflows/deploy.ymlSummary by CodeRabbit
New Features
Refactor
Chores
✏️ Tip: You can customize this high-level summary in your review settings.