fix(ci): publish PR plugin after unrelated failures - #2046
Conversation
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
Disabled knowledge base sources:
WalkthroughThe plugin upload workflow now treats a missing ChangesPlugin artifact flow
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: Poem
✨ 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 #2046 +/- ##
=======================================
Coverage 52.90% 52.90%
=======================================
Files 1035 1035
Lines 72088 72088
Branches 8313 8313
=======================================
Hits 38135 38135
Misses 33826 33826
Partials 127 127 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
This plugin has been deployed to Cloudflare R2 and is available for testing. |
🤖 I have created a release *beep* *boop* --- ## [4.36.0](v4.35.1...v4.36.0) (2026-07-21) ### Features * add docker restart mutation ([#2022](#2022)) ([b58120c](b58120c)) * update dependencies ([#2028](#2028)) ([1c8522d](1c8522d)) ### Bug Fixes * **ci:** publish PR plugin after unrelated failures ([#2046](#2046)) ([a2b0833](a2b0833)) * **ci:** resolve PR number for fork PR plugin uploads ([#2040](#2040)) ([a086778](a086778)) * **ui:** smooth notification drawer slide-in/out ([#2038](#2038)) ([66e86fe](66e86fe)) * **web:** send CSRF token on fetch-based webGUI requests ([#2039](#2039)) ([8cb15f1](8cb15f1)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
## Summary The `Audit Dependencies` job (`pnpm run audit --prod`) fails the entire **CI - Main (API)** workflow whenever a transitive production dependency has an open advisory. This turned the [4.36.0 release run](https://github.com/unraid/api/actions/runs/29869430785) red over unrelated advisories (`hono`, `fast-uri`, `immutable`) and required manual recovery of the production publish. This change marks the audit job `continue-on-error` so it can never block a release again. ## Why This Exists `audit` is not in any publish job's `needs`, so it doesn't gate publishing through the dependency graph — it blocks by turning the **aggregate workflow conclusion** red, which branch protection, downstream `workflow_run` gates, and humans all key off of. This is the same class of failure already patched for PR plugin previews in #2046, whose commit note reads: *"an Audit Dependencies failure made the aggregate workflow conclusion fail."* Rather than papering over the three current advisories in the ignore list, this keeps the audit fully decoupled from the publish path. ## Resolution Add `continue-on-error: true` to the `audit` job. The audit still runs on every PR and push and still surfaces vulnerable dependencies as step annotations and logs, but a finding no longer fails the workflow. ## Behavior Changes - A dependency advisory no longer fails **CI - Main (API)** or blocks a release/publish. - The `Audit Dependencies` job now reports success (with the failing step annotated) even when advisories are present. ## Trade-off The audit becomes advisory-only: a genuinely high/critical advisory will also no longer block a release. Individual advisories can still be triaged/suppressed via the existing `pnpm.auditConfig` (`ignoreCves` / `ignoreGhsas`) mechanism in `package.json` if a hard gate on specific CVEs is ever wanted. ## Verification - `actionlint .github/workflows/main.yml` reports only pre-existing shellcheck/type notes in untouched jobs; no new issues from this change. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Chores** * Dependency audit checks are now advisory and will no longer block the workflow when issues are detected. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
Summary
PR plugin previews were not published when any unrelated CI job failed; this changes the upload workflow to publish whenever the upstream PR run produced a plugin artifact.
Why This Exists
The PR 2044 plugin built successfully, but an Audit Dependencies failure made the aggregate workflow conclusion fail. The upload workflow required an overall success conclusion, so it skipped and left the advertised preview URL returning 404.
Resolution
Run the uploader for every completed pull-request workflow and use the plugin artifact itself as the gate. If the artifact exists, publication proceeds even when another job failed. If no artifact exists, the workflow records a notice and cleanly skips extraction, upload, and commenting.
Reviewer Considerations
Behavior Changes
A successfully built PR plugin is uploaded to the preview bucket even when another job in the upstream workflow fails. PR runs without a plugin artifact do not attempt an upload.
Implementation Summary
Verification
git diff --checkpassed.actionlint .github/workflows/upload-pr-plugin.ymlpassed.lint-stagedis not installed in this isolated worktree; the workflow-specific validations above passed.Risk
Low; the change only broadens preview publication to already-produced artifacts and retains all existing artifact and file validation.
Summary by CodeRabbit