feat(ci): add Tauri macOS ARM and Intel package tests via embedded provider#286
feat(ci): add Tauri macOS ARM and Intel package tests via embedded provider#286goosewobbler wants to merge 2 commits into
Conversation
…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>
Release Preview — no release
Updated automatically by ReleaseKit |
Greptile SummaryThis PR enables macOS ARM and Intel Tauri package tests by wiring
Confidence Score: 5/5Safe 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, No files require special attention.
|
| 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>
Summary
tauri-plugin-wdio-webdriverinto the package test fixture app (conditional onWDIO_EMBEDDED_SERVERenv var, same pattern as the E2E app)wdio-webdriver:defaultcapability permission todefault.jsonwdio.embedded.conf.tsand atest:embeddednpm script for the macOS code pathpnpm test:embeddedinscripts/test-package.ts_ci-package.reusable.ymlfor thetauriservice case (the early exit existed when only theofficial/externaltauri-driver was available, which doesn't support macOS; the embedded provider does)inputs.os == "ubuntu-*"Linux guard to userunner.os == "Linux"in the same blockbuild-tauri-package-app-macos-armandbuild-tauri-package-app-macos-intelbuild jobspackage-tauri-macos-armandpackage-tauri-macos-inteltest jobsci-statusgateneedslistTest plan
package-tauri-macos-armandpackage-tauri-macos-inteljobs run and pass in CI🤖 Generated with Claude Code