fix(ci): fix Windows desktop staging build and add Linux desktop build#232
Conversation
Windows: winfsp-sys build script checks registry for WinFsp install dir but the MSI registry writes aren't visible to the Cargo process. Set WINFSP_INSTALL_DIR env var as explicit fallback. Linux: add build-desktop-linux job to staging deploy workflow (was missing since Phase 11.3 shipped after the last staging deploy). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Entire-Checkpoint: 95a5ce2468fd
WalkthroughThe pull request adds a new Linux desktop build job to the GitHub Actions staging workflow, following the existing macOS and Windows patterns. Additionally, it updates the Windows build configuration with an explicit fallback path for WinFsp and extends the release body documentation to reference Linux packages. Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Possibly related PRs
🚥 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 |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In @.github/workflows/deploy-staging.yml:
- Line 231: The release body is duplicated and races between jobs; centralize
the text so both publishers use the same value — define a single variable (e.g.,
env RELEASE_BODY) containing 'Staging build for ${{ inputs.staging_tag ||
github.ref_name }}. macOS (unsigned - right-click > Open to launch), Windows
(unsigned - click "More info" > "Run anyway"), and Linux (AppImage/deb).' and
replace the two releaseBody occurrences with ${{ env.RELEASE_BODY }} (or
alternatively collapse publishing into a single job/step that sets releaseBody
once) so the final release description is deterministic; update references where
releaseBody appears to use the new RELEASE_BODY symbol.
| tagName: ${{ inputs.staging_tag || github.ref_name }} | ||
| releaseName: 'CipherBox Desktop ${{ inputs.staging_tag || github.ref_name }}' | ||
| releaseBody: 'Staging build for ${{ inputs.staging_tag || github.ref_name }}. macOS (unsigned - right-click > Open to launch) and Windows (unsigned - click "More info" > "Run anyway").' | ||
| releaseBody: 'Staging build for ${{ inputs.staging_tag || github.ref_name }}. macOS (unsigned - right-click > Open to launch), Windows (unsigned - click "More info" > "Run anyway"), and Linux (AppImage/deb).' |
There was a problem hiding this comment.
Release notes text can flap across jobs.
Line 231 was updated, but Line 160 still has the old body. Since multiple jobs publish to the same release, the final release description depends on which job finishes last.
Suggested fix
- releaseBody: 'Staging build for ${{ inputs.staging_tag || github.ref_name }}. macOS (unsigned - right-click > Open to launch) and Windows (unsigned - click "More info" > "Run anyway").'
+ releaseBody: 'Staging build for ${{ inputs.staging_tag || github.ref_name }}. macOS (unsigned - right-click > Open to launch), Windows (unsigned - click "More info" > "Run anyway"), and Linux (AppImage/deb).'🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In @.github/workflows/deploy-staging.yml at line 231, The release body is
duplicated and races between jobs; centralize the text so both publishers use
the same value — define a single variable (e.g., env RELEASE_BODY) containing
'Staging build for ${{ inputs.staging_tag || github.ref_name }}. macOS (unsigned
- right-click > Open to launch), Windows (unsigned - click "More info" > "Run
anyway"), and Linux (AppImage/deb).' and replace the two releaseBody occurrences
with ${{ env.RELEASE_BODY }} (or alternatively collapse publishing into a single
job/step that sets releaseBody once) so the final release description is
deterministic; update references where releaseBody appears to use the new
RELEASE_BODY symbol.
Summary
winfsp-sysbuild script checks the Windows registry for the WinFsp install directory, but the MSI install's registry writes aren't visible to the Cargo process in CI. SetWINFSP_INSTALL_DIRenv var as an explicit fallback. This is the first timetauri buildhas run for Windows in staging — CI only rancargo check/cargo testwhich use the bundled import lib (nosystemfeature).build-desktop-linuxjob was missing fromdeploy-staging.ymlsince Phase 11.3 (Linux Desktop) shipped after the last staging deployment. Modeled after the CIcargo-check-linuxjob with the same system deps, pinned toubuntu-22.04.Test plan
🤖 Generated with Claude Code
Summary by CodeRabbit