fix(release): version public installer asset names#29
Conversation
- Purpose: make public GitHub release downloads clearly Unraid-specific, versioned, and differentiated by online versus bundled install path. - Before: release publishing uploaded generic install-user filenames, which made website links and larger bundled assets ambiguous. - Problem: the public asset names did not communicate the Unraid installer version or whether the asset includes the bundled Unraid OS payload. - Change: publish online ISO/IMG assets as unraid-installer-<version>-online.* and seeded IMG assets as unraid-installer-<version>-bundled.img.zip. - Cleanup: stale bundled release cleanup now recognizes both legacy install-user.img.zip assets and the new bundled asset names. - Docs: document the public release naming convention while keeping internal build artifact names unchanged.
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro (Legacy) Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughBoth seeded and online release workflows now extract a sanitized version from ChangesRelease Asset Versioning and Publishing
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~22 minutes Possibly related PRs
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 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/publish-release-seeded.yml:
- Around line 118-124: The current logic resets release_version to the raw
release_tag if sanitization yields an empty string; instead, change the behavior
in the release_version sanitization block (variables release_version and
release_tag) to fail fast: after running the sanitization command, detect if
release_version is empty and, if so, emit a clear error message to stderr and
exit with a non-zero status (e.g., echo "Error: sanitized release_version is
empty" >&2; exit 1) rather than falling back to release_tag; only write
release_version to GITHUB_OUTPUT when it is the valid sanitized value.
In @.github/workflows/publish-release.yml:
- Around line 120-126: The sanitized release_version may be empty and falling
back to raw release_tag undoes sanitization; instead, after computing
release_version in the workflow (the release_version and release_tag variables),
check if release_version is empty and if so emit a clear error to the runner
(e.g. via echo to stderr or process log) and exit non‑zero to reject the
dispatch input; only write release_tag, release_name and release_version to
GITHUB_OUTPUT after confirming release_version is non‑empty so malformed tags
are rejected rather than producing unsanitized filenames.
🪄 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: Organization UI
Review profile: CHILL
Plan: Pro (Legacy)
Run ID: 8cf9a0ef-f414-4c48-92a4-755ba475377c
📒 Files selected for processing (5)
.github/workflows/publish-release-seeded.yml.github/workflows/publish-release.yml.github/workflows/update-unraid-release-lock.ymldocs/USER_COMMANDS.mddocs/user-build.md
- Purpose: harden manual release publishing against malformed release tags. - Before: an empty sanitized release version fell back to the raw release tag. - Problem: that fallback could bypass the filename sanitization used for public assets. - Change: both publish workflows now fail fast with a clear error when sanitization produces an empty version. - Validation: parsed workflow YAML, ran git diff --check, and parsed embedded bash with bash -n.
Summary
unraid-installer-<version>-online.isoandunraid-installer-<version>-online.img.zipunraid-installer-<version>-bundled.img.zipinstall-user.img.zipassets while removing new stale bundled assets from older/non-stable releasesValidation
ruby -e 'require "yaml"; %w[.github/workflows/publish-release.yml .github/workflows/publish-release-seeded.yml .github/workflows/update-unraid-release-lock.yml].each { |f| YAML.load_file(f); puts "ok #{f}" }'\n-git diff --check\n-bash -non embedded shell from the edited workflows\nSummary by CodeRabbit
Documentation
Chores