Windows: desktop app build in CI, and GTK with AccessKit for screen readers #33
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "windows-ci"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Two independent Windows items from W3: the desktop app's build and tests in CI, and GTK built with AccessKit, so that Windows screen readers can read the app. Missing AccessKit is a release blocker (plan §1.4, H22).
GTK with AccessKit (
scripts/windows/build-gtk.sh,packaging/windows/gtk/)accesskit-cis 0.17 and GTK 4.24 needs 0.18. So Narrator and NVDA got nothing from the app.-Daccesskit=enabled.packaging/windows/gtk/sources.lock; the crates are checked through accesskit-c'sCargo.lock. Only the gtk4 version thatmsys2.lockpins is built.libaccesskit-c-0.18.dll;libgtk-4-1.dllandlibaccesskit-c-0.18.dll.check-bundle-windows.shanddist.shrefuse a bundle whose GTK has no AccessKit.system-dlls.txtgainsoleaut32.dllanduiautomationcore.dll, which AccessKit imports..mofiles from the sysroot, for the app's languages, so that GTK's own texts are not English (an entry's Copy and Paste, the about dialog). Before, it had none. This adds about 6 MiB, for 78 MiB in all.CI (
.forgejo/workflows/ci.yml)New jobs, all in
rust:1-trixiewithtoolchain.sh --wine --gui, none using the Docker socket:windows-sysroot: fetches the pinned MSYS2 packages and caches them by the lock's hash.windows-gtk: builds GTK with AccessKit and caches it by the recipe hash.windows-gui-check:check-gui.sh, including the script tests and a fetch of accesskit-c's crates into an empty cargo cache.windows-gui-test: the app's Windows tests under Wine.windows-installer-test: the installer tests under Wine.windows-build: bundle, smoke test, anddist.shwith the app. It uploads the setup.exe, the portable zip and the test package as artifacts, plus the smoke test's log and screenshot.On a
v*tag the release job also attaches the setup.exe and the portable zip with their.sha256. It now waits for every Windows job, including the command line's.toolchain.sh --guiholds the one package list that both CI andin-container.shuse; the Containerfile is justtoolchain.sh --wine --gui.Tests
check.sh,check-gui.sh(msys2 12, gtk 12 and bundle 9 script tests, plus clippy),build-gui.shwith a fresh GTK build,gui-smoke.sh,gui-test.sh(21), the installer'swine-test.sh, anddist.shwith the app.rust:1-trixiecontainer, outside the runner. Times on a loaded machine: sysroot 2 min, gtk 20 min (cache miss), gui-test 14 min, gui-check 12 min, build 34 min.Not verified yet
actions/cachewith an expression key, job outputs, artifacts and the release upload. This PR's own run is the first test.Independent of the open W3 part 2 branch (
windows-w3b). Both touchscripts/windows/system-dlls.txtand the docs; whichever merges second gets a small conflict.