diff --git a/.github/scripts/README.md b/.github/scripts/README.md index d13e3185..36298667 100644 --- a/.github/scripts/README.md +++ b/.github/scripts/README.md @@ -7,6 +7,11 @@ The read-only hosted Linux job tests the PR merge result and records both head and checkout identities. No PR-target execution or signing/deployment credentials are used. The 150-minute cold-build limit is provisional for this new job layout. +The CI environment disables release-profile LTO and uses 16 codegen units for +`cargo xtask ci`. Tests retain release optimization and the existing gates; +release packaging keeps the manifest's ThinLTO/single-unit configuration. The first +hosted runs exhausted 150 minutes compiling test targets before any tests ran. + The runner installs Mesa Lavapipe and probes its Vulkan adapter. A failed probe does not prevent CPU gates from running, but fails the final coverage report. `RUST_TEST_NOCAPTURE=1` exposes the existing GPU tests' adapter/parity/skip messages. diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f15ecf83..28e82e67 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -15,6 +15,9 @@ env: CARGO_TERM_COLOR: always CARGO_BUILD_JOBS: "2" CARGO_INCREMENTAL: "0" + # Keep optimized tests; avoid release-package LTO costs for every test executable. + CARGO_PROFILE_RELEASE_LTO: "off" + CARGO_PROFILE_RELEASE_CODEGEN_UNITS: "16" RUST_BACKTRACE: "1" RUST_TEST_THREADS: "2" # Passing GPU tests must expose adapter/skip evidence instead of hiding it in captured output.