Skip to content

feat(ci): add Tauri macOS ARM and Intel package tests via embedded provider#286

Open
goosewobbler wants to merge 2 commits into
mainfrom
chore/tauri-package-macos
Open

feat(ci): add Tauri macOS ARM and Intel package tests via embedded provider#286
goosewobbler wants to merge 2 commits into
mainfrom
chore/tauri-package-macos

Conversation

@goosewobbler
Copy link
Copy Markdown
Contributor

Summary

  • Wires tauri-plugin-wdio-webdriver into the package test fixture app (conditional on WDIO_EMBEDDED_SERVER env var, same pattern as the E2E app)
  • Adds wdio-webdriver:default capability permission to default.json
  • Adds wdio.embedded.conf.ts and a test:embedded npm script for the macOS code path
  • Routes macOS Tauri package test runs to pnpm test:embedded in scripts/test-package.ts
  • Removes the macOS early-exit from _ci-package.reusable.yml for the tauri service case (the early exit existed when only the official/external tauri-driver was available, which doesn't support macOS; the embedded provider does)
  • Opportunistically fixes the fragile inputs.os == "ubuntu-*" Linux guard to use runner.os == "Linux" in the same block
  • Adds build-tauri-package-app-macos-arm and build-tauri-package-app-macos-intel build jobs
  • Adds package-tauri-macos-arm and package-tauri-macos-intel test jobs
  • Updates the ci-status gate needs list

Test plan

  • package-tauri-macos-arm and package-tauri-macos-intel jobs run and pass in CI
  • Existing Linux/Windows/ARM64 Tauri package test jobs unaffected
  • No regression in the Tauri E2E jobs

🤖 Generated with Claude Code

…d provider

- Wire tauri-plugin-wdio-webdriver into the package test app (conditional on WDIO_EMBEDDED_SERVER)
- Add wdio-webdriver:default capability permission
- Add wdio.embedded.conf.ts and test:embedded script for macOS
- Route macOS Tauri package test runs to test:embedded in test-package.ts
- Remove the macOS early-exit from _ci-package.reusable.yml tauri case
- Fix fragile inputs.os Linux check to use runner.os
- Add build-tauri-package-app-macos-arm/intel build jobs
- Add package-tauri-macos-arm/intel test jobs and update ci-status gate

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 14, 2026

Release Preview — no release

No bump label detected.
Reason: No release labels found (need bump:* or release:stable)
Note: Add bump:patch, bump:minor, or bump:major to trigger a release.


Updated automatically by ReleaseKit

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 14, 2026

Greptile Summary

This PR enables macOS ARM and Intel Tauri package tests by wiring tauri-plugin-wdio-webdriver into the fixture app and adding dedicated CI build/test jobs that use the embedded WebDriver provider (the official/external tauri-driver is macOS-incompatible). The plugin-copy/path-rewrite logic in scripts/test-package.ts is refactored to loop over both Tauri plugins generically, and the macOS early-exit in the tauri CI case is removed.

  • Fixture app (src-tauri/Cargo.toml, main.rs, capabilities/default.json, wdio.embedded.conf.ts): adds tauri-plugin-wdio-webdriver compiled in for all platforms but only initialised at runtime when WDIO_EMBEDDED_SERVER is present (set automatically by the embedded provider in embeddedProvider.ts).
  • scripts/test-package.ts: generalises the single-plugin copy/rewrite loop to handle both tauri-plugin-wdio and tauri-plugin-wdio-webdriver; routes macOS Tauri test runs to pnpm test:embedded.
  • CI (ci.yml, _ci-package.reusable.yml): removes the macOS Tauri early-exit, replaces fragile inputs.os == \"ubuntu-*\" with runner.os == \"Linux\", and adds four new jobs (two build, two test) plus updates the ci-status gate.

Confidence Score: 5/5

Safe to merge — the changes are additive CI jobs and a new test code path that doesn't affect existing Linux/Windows/ARM64 Tauri runs or any Electron tests.

All changed code paths are either new (macOS build/test jobs, wdio.embedded.conf.ts) or straightforward refactors of existing logic (plugin copy loop in test-package.ts). The WDIO_EMBEDDED_SERVER env var is correctly injected by embeddedProvider.ts at app-launch time, matching the already-working E2E app pattern. Both previous review comments are addressed: the tauri-plugin-wdio-webdriver path is now rewritten for isolated builds, and the fragile inputs.os string comparisons are replaced with runner.os throughout the affected block.

No files require special attention.

Important Files Changed

Filename Overview
.github/workflows/_ci-package.reusable.yml Removes macOS early-exit for the tauri case; replaces fragile inputs.os string comparisons with runner.os for both the Linux guard and the both-case macOS guard.
.github/workflows/ci.yml Adds build-tauri-package-app-macos-arm/intel build jobs and package-tauri-macos-arm/intel test jobs; updates ci-status gate needs list to include the new test jobs.
scripts/test-package.ts Refactors single-plugin copy/rewrite loop to handle both tauri-plugin-wdio and tauri-plugin-wdio-webdriver; routes macOS Tauri test runs to pnpm test:embedded.
fixtures/package-tests/tauri-app/wdio.embedded.conf.ts New WDIO config for the embedded provider: resolves binary path from tauri.conf.json at load time with explicit existence checks, sets driverProvider: 'embedded', and mirrors the E2E app configuration pattern.
fixtures/package-tests/tauri-app/src-tauri/src/main.rs Conditionally registers tauri_plugin_wdio_webdriver when WDIO_EMBEDDED_SERVER env var is present, matching the established E2E app pattern.

Reviews (2): Last reviewed commit: "fix(ci): use runner.os guard and rewrite..." | Re-trigger Greptile

…solated env

- Replace fragile `inputs.os == "macos-latest"` check in the `both` case with
  `runner.os == "macOS"` so Tauri tests aren't silently skipped on other macOS
  runner labels (e.g. `macos-15-intel`).
- Copy `tauri-plugin-wdio-webdriver` into the isolated test env and rewrite
  its Cargo path alongside `tauri-plugin-wdio`, so local
  `pnpm test:package:tauri` succeeds without `--skip-build`.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
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