From dfb18a523a242b56e2c96bdf9442398f27eca02b Mon Sep 17 00:00:00 2001 From: Lucas Vieira Date: Sun, 9 Aug 2026 11:46:02 -0300 Subject: [PATCH] ci: split the server Miri job six ways, so no shard outgrows the budget The server suite crossed the 30-minute Miri gate: measured over the last five runs on main, shard 1/3 took 32m and 2/3 took 31m, against a budget the whole matrix is meant to fit inside. Eight server units landed today and the three-way split no longer holds them. Six partitions put the slowest shard back around a quarter of an hour, which is the same move that brought core back under budget when it regressed. --- .github/workflows/rust.yml | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 750cbf40..288810de 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -31,7 +31,7 @@ jobs: # One shard per crate so they run in parallel — wall-clock is the slowest # single job, not the sum. The two long poles fan further into nextest # partitions that split their tests by hash and run in parallel: core into - # eight, server into three, keeping the slowest job under the CI budget. + # eight, server into six, keeping the slowest job under the CI budget. # Within each shard: a warm build cache skips the cold Miri codegen + # sysroot rebuild, and nextest fans the tests across cores instead of one # serial process. @@ -57,11 +57,17 @@ jobs: partition: 8/8 - crate: crdtsync-ffi - crate: crdtsync-server - partition: 1/3 + partition: 1/6 - crate: crdtsync-server - partition: 2/3 + partition: 2/6 - crate: crdtsync-server - partition: 3/3 + partition: 3/6 + - crate: crdtsync-server + partition: 4/6 + - crate: crdtsync-server + partition: 5/6 + - crate: crdtsync-server + partition: 6/6 steps: - uses: actions/checkout@v5 - name: Install Miri