Skip to content

fix(ci): fix desktop E2E failures on macOS and Linux#228

Merged
FSM1 merged 2 commits into
mainfrom
fix/desktop-e2e-ci-issues
Mar 1, 2026
Merged

fix(ci): fix desktop E2E failures on macOS and Linux#228
FSM1 merged 2 commits into
mainfrom
fix/desktop-e2e-ci-issues

Conversation

@FSM1

@FSM1 FSM1 commented Mar 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • macOS: Replace wget with curl for Kubo (IPFS) download — wget is not available on macOS GitHub runners, causing silent download failure and command not found for install.sh
  • Linux: Fix GabrielBB/xvfb-action@v1 multi-line run — the action executes each line as a separate xvfb-run invocation, so export and variable assignments fail as standalone commands. Moved env vars to step-level env: and wrapped commands in a single bash -c invocation
  • Re-adds workflow_run.event == 'push' guard (defense-in-depth from PR fix(ci): consolidate desktop E2E pipeline and add Rust tests #227 lost in squash merge)

Test plan

  • macOS desktop E2E job passes (Kubo installs successfully)
  • Linux desktop E2E job passes (xvfb-action runs script correctly)
  • Windows desktop E2E job unaffected

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Tests

    • Improved desktop end-to-end testing infrastructure for better consistency and reliability across platforms.
  • Chores

    • Updated testing workflow configuration for enhanced test execution stability.

macOS: Replace wget with curl for Kubo download — wget is not
available on macOS GitHub runners, causing silent download failure
and subsequent "command not found" for install.sh.

Linux: Fix xvfb-action multi-line run — GabrielBB/xvfb-action@v1
executes each line as a separate xvfb-run invocation, so export
and variable assignments fail as standalone commands. Move env vars
to step-level env: and wrap commands in a single bash -c invocation.

Also adds workflow_run.event == 'push' guard (defense-in-depth from
PR #227 that was lost in squash merge).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Entire-Checkpoint: 87f24f6da360
@coderabbitai

coderabbitai Bot commented Mar 1, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@FSM1 has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 24 minutes and 27 seconds before requesting another review.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

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.

📥 Commits

Reviewing files that changed from the base of the PR and between 6235da8 and 18d56ad.

📒 Files selected for processing (1)
  • .github/workflows/e2e-desktop.yml

Walkthrough

The e2e-desktop GitHub Actions workflow was updated to narrow job trigger logic, replace wget with curl for IPFS Kubo downloads, and restructure the Linux test step with environment variables and a bash script block for consistency across platforms.

Changes

Cohort / File(s) Summary
GitHub Actions Workflow Configuration
.github/workflows/e2e-desktop.yml
Narrowed job trigger to require 'push' event in workflow_run; replaced wget with curl for Kubo tarball download; added step-level environment variables (CIPHERBOX_API_URL, VITE_API_URL, VITE_TEST_LOGIN_SECRET, RUST_LOG) and restructured Linux test execution into a bash -c block for cross-platform consistency.

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 summarizes the main changes: fixing desktop E2E test failures on macOS and Linux by addressing wget/curl issues and environment variable handling.
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/desktop-e2e-ci-issues

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.

🧹 Nitpick comments (1)
.github/workflows/e2e-desktop.yml (1)

176-178: Consider adding hash verification for Kubo download.

The Windows WinFsp installation (lines 126-129) validates the download hash before installation. For consistency and supply chain security, consider adding similar verification for the Kubo tarball:

EXPECTED_HASH="<sha256-hash-from-kubo-releases>"
ACTUAL_HASH=$(sha256sum "kubo_${KUBO_VERSION}_${ARCH}.tar.gz" | cut -d' ' -f1)
if [ "$ACTUAL_HASH" != "$EXPECTED_HASH" ]; then
  echo "Kubo tarball hash mismatch" >&2
  exit 1
fi

This is optional since the download URL uses HTTPS from the official distribution site, but hash verification provides defense-in-depth against compromised mirrors or CDN issues.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/e2e-desktop.yml around lines 176 - 178, Add SHA-256
verification after downloading the Kubo tarball and before
extraction/installation: compute the actual hash of
"kubo_${KUBO_VERSION}_${ARCH}.tar.gz" (using sha256sum or shasum -a 256),
compare it to an EXPECTED_HASH sourced from the Kubo release metadata (or an
environment variable), and if they differ print an error and exit non‑zero;
place this check between the curl download line and the tar -xzf line so the tar
extraction and sudo ./kubo/install.sh only run when the hash matches.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.github/workflows/e2e-desktop.yml:
- Around line 176-178: Add SHA-256 verification after downloading the Kubo
tarball and before extraction/installation: compute the actual hash of
"kubo_${KUBO_VERSION}_${ARCH}.tar.gz" (using sha256sum or shasum -a 256),
compare it to an EXPECTED_HASH sourced from the Kubo release metadata (or an
environment variable), and if they differ print an error and exit non‑zero;
place this check between the curl download line and the tar -xzf line so the tar
extraction and sudo ./kubo/install.sh only run when the hash matches.

ℹ️ 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 ae7c42f and 6235da8.

📒 Files selected for processing (1)
  • .github/workflows/e2e-desktop.yml

Kubo v0.34.0 requires POST for all RPC API endpoints. The Windows
readiness check used Invoke-WebRequest (GET), which got a 405 response
causing the catch block to trigger on every iteration. The Unix check
worked by accident since curl doesn't fail on 405 without -f.

Fix both: add -Method Post for Windows, add -sf -X POST for Unix.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Entire-Checkpoint: 716c24e576cb
@FSM1 FSM1 enabled auto-merge (squash) March 1, 2026 03:31
@FSM1 FSM1 merged commit dbc4e3d into main Mar 1, 2026
20 checks passed
@FSM1 FSM1 deleted the fix/desktop-e2e-ci-issues branch March 4, 2026 01:16
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