ci: fix release build and nexus upload pipeline after 1.6#2444
Conversation
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughRefactors release automation to dispatch builds after semantic-release tag creation, gates build/post-release jobs by release action, rewires Nexus dry-run to run on published releases, broadens prerelease cleanup matching, switches Nexus description output to a heredoc, and adds a per-feature INI opt-out for version auditing. ChangesRelease Automation to Address
Feature Audit Opt-Out Control
Sequence Diagram(s)sequenceDiagram
participant SemanticRelease as semantic-release
participant ReleaseSemantic as release-semantic.yaml
participant GH as GitHub Actions
participant ReleaseBuild as release-build.yaml
participant NexusDry as nexus-dry-run
SemanticRelease->>ReleaseSemantic: produce new_release_published + new_release_git_tag
ReleaseSemantic->>GH: gh workflow run release-build.yaml --ref refs/tags/TAG
GH->>ReleaseBuild: start build job (dispatch/tag/draft)
ReleaseBuild->>GH: attach artifacts to release (draft)
GH->>NexusDry: nexus-dry-run reads release assets (on published)
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related issues
Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Warning There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure. 🔧 actionlint (1.7.12).github/workflows/release-semantic.yamlcould not read ".github/workflows/release-semantic.yaml": open .github/workflows/release-semantic.yaml: no such file or directory 🔧 zizmor (1.25.2).github/workflows/release-semantic.yamlINFO zizmor: 🌈 zizmor v1.25.2 🔧 YAMLlint (1.38.0).github/workflows/release-semantic.yaml[Errno 2] No such file or directory: '.github/workflows/release-semantic.yaml' 🔧 OpenGrep (1.22.0)OpenGrep fatal error (exit code 2): [00.10][ERROR]: Error: exception Unix_error: No such file or directory stat tools/feature_version_audit.py 🔧 Checkov (3.2.529).github/workflows/release-semantic.yaml2026-05-31 11:48:00,140 [MainThread ] [ERROR] Template file not found: .github/workflows/release-semantic.yaml ... [truncated 9250 characters] ... ess file .github/workflows/release-semantic.yaml 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 |
|
No actionable suggestions for changed features. |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
.github/workflows/release-semantic.yaml (1)
1-1: PR metadata polish for merge automationSuggested title (<=50 chars):
ci(release): fix draft tag build dispatch
If not already present in the PR body, add:As per coding guidelines, "Conventional Commit Titles ... Format: type(scope): description ... Length: 50 characters limit for title" and "Issue References ... suggest adding appropriate GitHub keywords".
🤖 Prompt for 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. In @.github/workflows/release-semantic.yaml at line 1, Update the PR metadata to follow the Conventional Commit title and include issue references: change the PR title to "ci(release): fix draft tag build dispatch" and ensure the PR body contains the lines "Fixes `#2443`" and "Fixes `#2439`" (add them if missing) so the merge automation and issue tracking pick up the references per the repo guidelines.
🤖 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/release-semantic.yaml:
- Around line 184-185: Update the stale comment in the
".github/workflows/release-semantic.yaml" block that mentions "publishing the
draft re-runs the build" to reflect current behavior: publishing the draft does
NOT re-run the build because release-build.yaml skips the build on the "release:
published" event; locate the comment near the "draft with .7z artifacts" line
and replace the sentence so it clearly states that publishing the draft
publishes artifacts without triggering a rebuild (reference the "release:
published" event and "release-build.yaml" behavior).
In `@tools/feature_version_audit.py`:
- Around line 199-203: The AuditVersion parsing is inconsistent with AutoUpload
because an empty INI value currently evaluates to True; update the check in the
audit_version assignment (using audit_version_str, metadata['audit_version'],
and the section keys 'auditversion'/'audit_version') to treat empty string as
false like AutoUpload does—i.e., include '' in the false/exclusion tuple (or
explicitly check for empty string) so that AuditVersion = (empty) yields False.
---
Nitpick comments:
In @.github/workflows/release-semantic.yaml:
- Line 1: Update the PR metadata to follow the Conventional Commit title and
include issue references: change the PR title to "ci(release): fix draft tag
build dispatch" and ensure the PR body contains the lines "Fixes `#2443`" and
"Fixes `#2439`" (add them if missing) so the merge automation and issue tracking
pick up the references per the repo guidelines.
🪄 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: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 51b8602e-10d3-413b-849c-f5739f0ff84c
📒 Files selected for processing (6)
.github/workflows/maint-cleanup-releases.yaml.github/workflows/nexus-upload.yaml.github/workflows/release-build.yaml.github/workflows/release-semantic.yamlfeatures/Terrain Helper/Shaders/Features/TerrainHelper.initools/feature_version_audit.py
Cherry-pick (path-scoped) the AuditVersion opt-out from upstream community-shaders community-shaders#2444 into tools/feature_version_audit.py — applied only to the audit script, not the 5 diverged pipeline workflows that PR also touched (those would conflict against our fork's AIO/aio-mode pipeline). Mark Terrain Helper AuditVersion = false: it is activation-only (no shaders under features/, all logic in src/Features/TerrainHelper.cpp), so the audit should not demand a version bump when only its toggle .ini changes. This makes the PR audit pass and stops the release --apply-bumps from spuriously bumping it — it stays 1-0-1 while remaining in the AIO (autoupload = true). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Summary
Release-pipeline fixes surfaced while cutting v1.6.0 (the first release after
the
devrecovery). CI/tooling/metadata only — no runtime or shader code. Typedci:so it won't trigger a release bump.Fixes #2443, #2439.
Changes
Auto-build releases (bug(ci): artifact build never auto-triggers on release tags ([skip ci] + draftRelease) #2443). Release tags sit on a
[skip ci]commit andthe release is a draft, so nothing triggered
release-build— drafts had noartifacts until manually built.
release-semanticnow dispatches the build onthe new tag (needs
actions: write).No double build. Build runs once at draft creation; on publish only the
Nexus dry-run runs, consuming the already-attached release assets instead of
rebuilding. Also removes the old build-vs-Nexus race.
Nexus multi-line description crash. The core file-description (a multi-line
feature-version manifest) broke
$GITHUB_OUTPUTwithInvalid format '• HDR 1.0.2'. Switched to the heredoc-delimiter form.Prerelease tag cleanup (# bug(ci):
maint-cleanup-releases.yamlregex never matches dottedrc.Nprerelease tags #2439). The cleanup regexrc[0-9]+never matchedsemantic-release's dotted
rc.Ntags, so orphaned RCs were never removed. Nowallows the dot.
Terrain Helper decoupled. It's activation-only (code lives in the core
mod), but it auto-uploaded to Nexus with an invalid file-group id and got
version-bumped on every
.iniedit. Setautoupload = falseand added areusable
AuditVersion = falseopt-out (read byfeature_version_audit.py).Summary by CodeRabbit