Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughThe nightly publish workflow now computes a skip flag before pre-release versioning, build, verification, and publishing. It also adds Open VSX pre-release publishing and handles already-published output distinctly. ChangesNightly pre-release workflow
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant Workflow as GitHub Actions Workflow
participant GH as GitHub Releases API
participant Marketplace as VS Code Marketplace
participant OpenVSX as Open VSX Registry
Workflow->>GH: gh release view (check existing stable release)
GH-->>Workflow: release status
Workflow->>Workflow: compute skip flag
alt skip != true
Workflow->>Workflow: set pre-release version
Workflow->>Workflow: build and verify VSIX
Workflow->>Marketplace: vsce publish --pre-release
Workflow->>OpenVSX: ovsx publish --pre-release
OpenVSX-->>Workflow: publish output (already published or success)
else skip == true
Workflow->>Workflow: skip build and publish steps
end
Related issues: Suggested labels: ci, workflow, publishing Suggested reviewers: none Poem 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ 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. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/nightly-publish.yml:
- Around line 44-67: The nightly publish step in the release-check shell block
is matching gh release view’s missing-release error too exactly, which makes the
normal “not found” path brittle. Update the logic around the gh release view
call in the workflow script to treat the missing-release case with a substring
check instead of an exact string comparison, while still failing fast on any
other unexpected error and preserving the existing skip output behavior.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: cc8d52f9-9f30-412a-8735-ccd383c09190
📒 Files selected for processing (1)
.github/workflows/nightly-publish.yml
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.github/workflows/nightly-publish.yml:
- Around line 131-158: The Marketplace publish step in the nightly publish
workflow is not idempotent, so reruns can fail on an already-published version
before reaching the Open VSX step. Update the `Publish pre-release to VS Code
Marketplace` job in the workflow to pass `--skip-duplicate` to the `npx
`@vscode/vsce` publish` command, keeping the existing `steps.release-check` guard
and `VSCE_PAT`/`VERSION_NUMBER` usage unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro Plus
Run ID: 419c61b6-0af0-47e4-ade9-b7c6b645c99a
📒 Files selected for processing (1)
.github/workflows/nightly-publish.yml
Related GitHub Issue
Closes: #784
Description
Publishes nightly pre-release builds to Open VSX in addition to the VS Code Marketplace, and adds a guard so the release-PR merge back into
maindoesn't also trigger a redundant nightly pre-release.Open VSX pre-release publishing
The workflow previously skipped Open VSX for nightlies, with a comment claiming Open VSX has no pre-release concept. That was incorrect — verified against the Open VSX server source (
ExtensionVersionJooqRepository.findLatestQuery, eclipse-openvsx/openvsx) and confirmed live against the realZooCodeOrganization.zoo-codelisting:pre-releasealias correctly isolates pre-release-flagged versions.latestalias resolves to the highest semver across stable and pre-release, using the pre-release flag only as a tie-breaker at identicalmajor.minor.patch. A nightly build can therefore transiently becomelatestuntil the next stable release outranks it — the same trade-off already accepted for Marketplace pre-release publishing, since both track "newest published version."The Open VSX publish step intentionally omits
ovsx publish --pre-release: for an already-packaged.vsix(built earlier in the job viavsce package --pre-release),ovsxignores that flag and warns that it's a no-op — the pre-release marker is already baked into the VSIX'sMicrosoft.VisualStudio.Code.PreReleasemanifest property, which is what Open VSX actually reads.Skip on release merge
The release runbook (
.roo/commands/release.md) squash-merges release PRs intomainwith the commit messagechore: prepare v[version] release, after the tag has already been pushed and stable has already shipped. Without a guard, that merge would also trigger a nightly pre-release publish of code that was just released as stable. Added a "Skip if this push is a release merge" step that checks:src/package.jsonversion (belt-and-suspenders if the message convention ever drifts).gh release viewfailures are distinguished by message: "release not found" is the expected non-match; anything else (auth/API failure) fails the step loudly instead of silently falling through to a publish.Duplicate-publish logging
The Open VSX publish step now checks
ovsx's output for "is already published" and logs that the version was skipped rather than unconditionally claiming a fresh publish —--skip-duplicatereturns success without actually publishing in that case.Test Procedure
vsce package --pre-releaseand confirmed theMicrosoft.VisualStudio.Code.PreReleasemanifest property is set.ZooCodeOrganization.zoo-codeOpen VSX listing and confirmed via the registry API that thepre-releasealias correctly isolated it whilelatesttracked highest-semver as expected.chore: prepare v3.64.0 release (#729),chore: prepare v3.62.0 release (#658)) and against a normal feature commit, confirming correct match/no-match in both directions.gh release viewerror handling against three cases: version not found, version found (existing stable releasev3.64.0), and an invalid token (401) — confirmed each takes the correct branch.ovsx"already published" response and a real publish-success response.Pre-Submission Checklist
Documentation Updates
Additional Notes
This is a CI/workflow-only change (
.github/workflows/nightly-publish.yml); there's no application code path to unit test. Verification was done by exercising the actualovsx/ghcommands and shell logic locally against the real registry and repo, as detailed in the Test Procedure above.Summary by CodeRabbit