ci(build): add Windows ARM64 to build workflow#203
ci(build): add Windows ARM64 to build workflow#203ErikBjare merged 10 commits intoActivityWatch:masterfrom
Conversation
Adds windows-11-arm runner with aarch64-pc-windows-msvc target to the build matrix, matching what release.yml already has. This ensures Windows ARM64 builds are verified on every push/PR, rather than discovering failures during an actual release. Also adds the `rustup target add` step for non-default targets. Requested-by: @ErikBjare in ActivityWatch#202
There was a problem hiding this comment.
Important
Looks good to me! 👍
Reviewed everything up to 978d12f in 6 seconds. Click for details.
- Reviewed
24lines of code in1files - Skipped
0files when reviewing. - Skipped posting
0draft comments. View those below. - Modify your settings and rules to customize what types of comments Ellipsis leaves. And don't forget to react with 👍 or 👎 to teach Ellipsis.
Workflow ID: wflow_MGw878EjE7iyoaLc
You can customize by changing your verbosity settings, reacting with 👍 or 👎, replying to comments, or adding code review rules.
Greptile SummaryAdds Windows ARM64 (
Confidence Score: 5/5
Important Files Changed
Last reviewed commit: 978d12f |
appdirs 0.2.0 pulls in ole32-sys and shell32-sys, which depend on
winapi 0.2.8. That crate lacks aarch64-pc-windows-msvc support —
it only defines ULONG_PTR/LONG_PTR for x86/x86_64 targets, causing
compile errors on Windows ARM64.
Replace appdirs with the dirs 5.0.1 crate, which uses windows-sys
(no winapi dependency at all) and has full ARM64 support.
Path equivalents used:
- user_config_dir("activitywatch") -> config_dir() / "activitywatch"
- user_data_dir("activitywatch") -> data_dir() / "activitywatch"
- user_cache_dir("activitywatch") -> cache_dir() / "activitywatch"
- user_log_dir (Windows) -> data_local_dir() / "activitywatch" / "Logs"
- user_log_dir (macOS) -> home_dir() / "Library" / "Logs" / "activitywatch"
All resulting paths match the previous appdirs behavior.
|
The Rust compilation succeeded for ARM64, but the bundling step failed because Tauri tried to download WiX toolset and hit a TLS error on the Fixed in 58d9e98 by pre-downloading WiX with PowerShell (which has proper TLS) before the Tauri build step, and setting the |
The windows-11-arm runner lacks TLS in its default HTTP client, causing tauri-bundler's internal downloader to fail for both WiX and NSIS. Previous commit fixed WiX only. After WiX succeeded, the build failed at NSIS download with the same 'no TLS backend' error. Now pre-downloads: - WiX 3.14 binaries - NSIS 3 base toolset - nsis_tauri_utils plugin v0.4.1 All downloaded via PowerShell (which has proper TLS) into the exact cache paths tauri-bundler expects (%LOCALAPPDATA%\tauri\).
|
WiX MSI bundled successfully but NSIS bundler then hit the same TLS error downloading CI triggered, should be the last TLS-related fix needed. |
The nsis-3.zip contains files under nsis-3.08/ directory, but tauri-bundler expects them at %LOCALAPPDATA%\tauri\NSIS. The bundler normally extracts the zip then renames nsis-3.08 -> NSIS. Our pre-install step was missing the rename, so tauri didn't find the cached NSIS and tried to re-download (which fails due to TLS).
|
Found the issue: the nsis-3.zip extracts as Fixed in 73c94e5: now extracts the zip and renames |
….2.7) tauri-cli 2.2.7 expects nsis_tauri_utils v0.4.2 (not v0.4.1 from older tauri-v2.2.2 tag). Hash mismatch caused bundler to try re-downloading, which fails due to missing TLS on windows-11-arm runner.
|
NSIS rename fix worked — NSIS directory was found (True). But the bundler then tried to re-download Fixed in c67de59: updated plugin URL to v0.4.2 matching tauri-cli 2.2.7. |
|
Windows ARM64 CI failed with a transient All other jobs passed (ubuntu, ubuntu-arm, macOS, windows-latest). The Windows ARM64 job needs a re-run — I don't have admin rights to trigger it. @ErikBjare could you re-run the failed job? |
|
All CI checks are now green 🎉 The Windows ARM64 MSI build passed (20m35s). The npm ECONNRESET was indeed a transient runner issue — re-run succeeded. PR is ready for review/merge. |
Summary
windows-11-armrunner withaarch64-pc-windows-msvctarget to the build matrixrustup target addstep for non-default targets (same pattern as release.yml)Follow-up from #202 — @ErikBjare requested build.yml also include Windows ARM64 so CI catches failures before release time.
Important
Adds Windows ARM64 to build workflow and ensures verification on every push/PR.
windows-11-armplatform withaarch64-pc-windows-msvctarget tobuild.ymlmatrix.rustup target addstep for non-default targets inbuild.yml.This description was created by
for 978d12f. You can customize this summary. It will automatically update as commits are pushed.