Faster CI, part 2: Windows build without waiting, VM test only for code the guest builds #42

Manually merged
SkyfaR merged 1 commit from ci-faster-2 into main 2026-10-07 07:31:32 +02:00
Owner

Follow-up to #41. Run 152 took 10:00 against 10:44 before; the jobs mostly waited for a runner slot.

windows-build without needs. The installer and portable zip job (about 5 min) waited for windows-sysroot and windows-gtk only to share their caches. Forgejo queues a job with needs behind every job that was ready at the start, so it started about five minutes late. Without needs it is sixth of the nine jobs ready at the start. On a cache miss (new msys2.lock, GTK recipe or tools) build-gui.sh fetches the packages and builds GTK itself; that run builds GTK twice. windows-gui-test keeps its needs (short job, would be a third GTK build).

VM test trigger. vm.yml's pull request paths now leave out what Linux never compiles into ogc, the helper or the btrfs tests: unit-test files (tests.rs, tests/, *_tests.rs, tests_*.rs and four named files, all #[cfg(test)]) and modules declared #[cfg(windows)]. The list was checked against rustc's dep-info for exactly tests/vm/build.sh's build: 121 files excluded, none of them compiled; every compiled file still triggers (src/platform/windows/scheduler.rs is built for Linux and taken back in). Inline mod tests {} changes still trigger. Nightly and manual runs are unchanged.

Docs: ARCHITECTURE.md CI section and README updated.

Expected: CI about 7 min; a PR that touches only Windows code or tests no longer waits 18 min for the VM test.

Follow-up to #41. Run 152 took 10:00 against 10:44 before; the jobs mostly waited for a runner slot. **windows-build without `needs`.** The installer and portable zip job (about 5 min) waited for windows-sysroot and windows-gtk only to share their caches. Forgejo queues a job with `needs` behind every job that was ready at the start, so it started about five minutes late. Without `needs` it is sixth of the nine jobs ready at the start. On a cache miss (new `msys2.lock`, GTK recipe or tools) build-gui.sh fetches the packages and builds GTK itself; that run builds GTK twice. windows-gui-test keeps its `needs` (short job, would be a third GTK build). **VM test trigger.** vm.yml's pull request paths now leave out what Linux never compiles into ogc, the helper or the btrfs tests: unit-test files (`tests.rs`, `tests/`, `*_tests.rs`, `tests_*.rs` and four named files, all `#[cfg(test)]`) and modules declared `#[cfg(windows)]`. The list was checked against rustc's dep-info for exactly tests/vm/build.sh's build: 121 files excluded, none of them compiled; every compiled file still triggers (`src/platform/windows/scheduler.rs` is built for Linux and taken back in). Inline `mod tests {}` changes still trigger. Nightly and manual runs are unchanged. Docs: ARCHITECTURE.md CI section and README updated. Expected: CI about 7 min; a PR that touches only Windows code or tests no longer waits 18 min for the VM test.
Start the Windows build at once, and run the VM test only for code the guest builds
All checks were successful
CI / Windows, MSYS2 sysroot (pull_request) Successful in 16s
CI / Windows, command line (clippy with tests) (pull_request) Successful in 33s
CI / Windows, command line (tests under Wine) (pull_request) Successful in 1m22s
CI / Windows, installer (tests under Wine) (pull_request) Successful in 1m40s
CI / Bundle programs, command line and helper (pull_request) Successful in 1m33s
CI / Arch package (pull_request) Successful in 3m1s
CI / Bundle programs, desktop app (pull_request) Successful in 2m2s
CI / Format, lint and test (pull_request) Successful in 5m39s
CI / Windows, GTK with AccessKit (pull_request) Successful in 7s
CI / Windows, installer and portable zip (pull_request) Successful in 5m18s
CI / Windows, desktop app (clippy, script tests) (pull_request) Successful in 1m6s
CI / Windows, desktop app (tests under Wine) (pull_request) Successful in 1m23s
CI / Bundle for any distribution (pull_request) Successful in 16s
CI / Release (pull_request) Has been skipped
VM test / Migrations in a VM (pull_request) Successful in 18m34s
27a882b748
windows-build waited for windows-sysroot and windows-gtk only to share
their caches, and Forgejo queued it behind every job ready at the start;
where a cache is missing, it fetches the packages and builds GTK itself.

The VM test now leaves out unit-test files and modules declared
#[cfg(windows)], checked against the files rustc reads for
tests/vm/build.sh's build.
SkyfaR manually merged commit 549f942999 into main 2026-10-07 07:31:32 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
LevelXStudios/OpenGameCompressor!42
No description provided.