From 804bad360e7cca6cce977a58389e78b5db416908 Mon Sep 17 00:00:00 2001 From: Kyzcreig <9063726+Kyzcreig@users.noreply.github.com> Date: Fri, 25 Sep 2026 14:18:22 -0700 Subject: [PATCH] ci: merge_group slice_count reads vars.CI_MERGE_GROUP_SLICES, clamped 4..16 (t_f447539b) Dynamic CI slots: ci-placement writes the live self-hosted slot total to CI_MERGE_GROUP_SLICES via scripts/ci_routing_ledger.py. Unset = 8 (today's pin), so this is a no-op until placement is armed. ci-overflow-controller accepts slice_counts 4..16 (Kyzcreig/fleet-ops-scripts#65 + follow-up). Verified: actionlint on ci.yaml reports only the two pre-existing detect-changes input findings (lines 134-135), nothing on the changed line. --- .github/workflows/ci.yaml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 254ff593afe8..812c1ba4fef0 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -156,7 +156,14 @@ jobs: # and all CI jobs share the 60-concurrent hosted cap: 13 in-flight # runs at ~20 jobs held the queue at 0 merges in 40 min. Halving the # gate's matrix halves its share of that cap. - slice_count: ${{ github.event_name == 'merge_group' && 8 || 16 }} + # + # 2026-09-25 (t_f447539b, dynamic CI slots): merge_group follows the LIVE + # self-hosted slot total, which ci-placement writes to + # vars.CI_MERGE_GROUP_SLICES through scripts/ci_routing_ledger.py (the only + # sanctioned writer). A 16-slice matrix onto 5 live slots just queues. + # Clamped 4..16 here AND in ci-overflow-controller `slice_counts`; unset + # = 8, today's value, so this is a no-op until placement is armed. + slice_count: ${{ github.event_name == 'merge_group' && (vars.CI_MERGE_GROUP_SLICES == '' && 8 || (fromJSON(vars.CI_MERGE_GROUP_SLICES) < 4 && 4 || (fromJSON(vars.CI_MERGE_GROUP_SLICES) > 16 && 16 || fromJSON(vars.CI_MERGE_GROUP_SLICES)))) || 16 }} test_scope: ${{ needs.detect.outputs.test_scope }} # macOS + Windows lanes. The main `tests` lane above is Linux-only, and