Skip to content

fix(ci): fix Windows desktop staging build and add Linux desktop build#232

Merged
FSM1 merged 1 commit into
mainfrom
fix/staging-desktop-builds
Mar 1, 2026
Merged

fix(ci): fix Windows desktop staging build and add Linux desktop build#232
FSM1 merged 1 commit into
mainfrom
fix/staging-desktop-builds

Conversation

@FSM1

@FSM1 FSM1 commented Mar 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • Windows build fix: winfsp-sys build 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. Set WINFSP_INSTALL_DIR env var as an explicit fallback. This is the first time tauri build has run for Windows in staging — CI only ran cargo check/cargo test which use the bundled import lib (no system feature).
  • Linux build added: build-desktop-linux job was missing from deploy-staging.yml since Phase 11.3 (Linux Desktop) shipped after the last staging deployment. Modeled after the CI cargo-check-linux job with the same system deps, pinned to ubuntu-22.04.

Test plan

  • Merge and tag a new staging release to verify both desktop builds succeed
  • Verify Linux AppImage/deb artifacts appear on the GitHub release
  • Verify Windows NSIS installer artifact appears on the GitHub release

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Added Linux desktop build support to the staging deployment workflow
    • Enhanced Windows desktop build stability with improved dependency configuration
    • Updated release documentation to include Linux (AppImage/deb) distributions alongside macOS and Windows

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
@coderabbitai

coderabbitai Bot commented Mar 1, 2026

Copy link
Copy Markdown

Walkthrough

The 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

Cohort / File(s) Summary
GitHub Actions Staging Workflow
.github/workflows/deploy-staging.yml
Added complete Linux desktop build job (build-desktop-linux) with system dependencies, Rust, Node, and Tauri build steps. Enhanced Windows build with WINFSP_INSTALL_DIR environment variable and updated release notes to include Linux (AppImage/deb) alongside macOS and Windows.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately and specifically describes the main changes: fixing a Windows CI build issue and adding a Linux build job to the staging workflow.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/staging-desktop-builds

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

ℹ️ Review info

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 1041e20 and bd2e716.

📒 Files selected for processing (1)
  • .github/workflows/deploy-staging.yml

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).'

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

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.

@FSM1 FSM1 merged commit 62d8319 into main Mar 1, 2026
23 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant