From 15dc2cb26c4ff63a2c8ee762587ccd3fe4801a6e Mon Sep 17 00:00:00 2001 From: firestar5683 <168790843+firestar5683@users.noreply.github.com> Date: Fri, 23 Oct 2026 22:35:57 -0500 Subject: [PATCH] Distribute the growing lifecycle catalog across more jobs --- .github/workflows/tests.yaml | 6 +++--- prebuilt.json | 2 +- tools/ci/lifecycle_shards.py | 2 +- tools/ci/tests/test_lifecycle_shards.py | 2 +- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/tests.yaml b/.github/workflows/tests.yaml index ef379af024..8d4a3bf76b 100644 --- a/.github/workflows/tests.yaml +++ b/.github/workflows/tests.yaml @@ -320,7 +320,7 @@ jobs: strategy: fail-fast: false matrix: - shard: [0, 1, 2, 3, 4, 5, 6, 7] + shard: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] env: FUZZ_SEED: '0' steps: @@ -330,7 +330,7 @@ jobs: run: scons - name: Gate every assigned lifecycle module serially timeout-minutes: 10 - run: python3 tools/ci/run_vehicle_tests.py --suite aol-lifecycle --shard-index "${{ matrix.shard }}" --shard-count 8 --output "ci-results/aol-lifecycle-${{ matrix.shard }}" + run: python3 tools/ci/run_vehicle_tests.py --suite aol-lifecycle --shard-index "${{ matrix.shard }}" --shard-count 16 --output "ci-results/aol-lifecycle-${{ matrix.shard }}" - name: Save every lifecycle outcome and native build if: always() uses: actions/upload-artifact@v4 @@ -353,7 +353,7 @@ jobs: pattern: aol-lifecycle-* path: ci-results/aol-lifecycles - name: Require every full-catalog case exactly once and passed - run: python3 tools/ci/lifecycle_shards.py ci-results/aol-lifecycles --count 8 --output ci-results/aol-lifecycle-complete.json + run: python3 tools/ci/lifecycle_shards.py ci-results/aol-lifecycles --count 16 --output ci-results/aol-lifecycle-complete.json - name: Save complete catalog verdict if: always() uses: actions/upload-artifact@v4 diff --git a/prebuilt.json b/prebuilt.json index 7c47b713bc..f3f9783285 100644 --- a/prebuilt.json +++ b/prebuilt.json @@ -1 +1 @@ -{"protected_inventory_sha256": "819dc1f98d34a3aa04e28d4d47c20cf380f37dd1c2d617f4499591567e584d56", "schema_version": 1} +{"protected_inventory_sha256": "91232f8d24f79ff480b1bf29dfc58b1ec124af6001e6793a0326068b19192c18", "schema_version": 1} diff --git a/tools/ci/lifecycle_shards.py b/tools/ci/lifecycle_shards.py index 7095b33bad..92e174902a 100644 --- a/tools/ci/lifecycle_shards.py +++ b/tools/ci/lifecycle_shards.py @@ -113,7 +113,7 @@ def workload_policy(): def partition(targets, identities, count): - if (not 1 <= count <= 8 or len(set(targets)) != len(targets) or len(set(identities)) != len(identities) or + if (not 1 <= count <= 16 or len(set(targets)) != len(targets) or len(set(identities)) != len(identities) or any(not target.endswith('.py') or '::' in target or Path(target).is_absolute() or '..' in Path(target).parts for target in targets)): raise ValueError('Invalid lifecycle catalog') owners = {} diff --git a/tools/ci/tests/test_lifecycle_shards.py b/tools/ci/tests/test_lifecycle_shards.py index 723bc5580a..1438e628ab 100644 --- a/tools/ci/tests/test_lifecycle_shards.py +++ b/tools/ci/tests/test_lifecycle_shards.py @@ -100,7 +100,7 @@ class LifecycleShardTests(unittest.TestCase): with self.subTest(targets=targets), self.assertRaises(ValueError): helper.partition(targets, ids, 4) with self.assertRaises(ValueError): - helper.partition(['other.py'], ['other.test_case'], 9) + helper.partition(['other.py'], ['other.test_case'], 17) def test_future_declared_module_does_not_add_any_cases(self): targets, identities = self.catalog()