Skip to content

Commit c5a00c7

Browse files
authored
[CI] Fix required checks hanging + rename to project-scoped names (#4010)
Remove single-element strategy.matrix from all CI workflow jobs and rename job IDs from generic cpu-test/cpu-unit-test to {project}-tests. Update branch protection required checks to match. When a matrix job is skipped via if: condition, GitHub Actions never expands the matrix, so parameterized check names like cpu-unit-tests (3.11, 0.8.0) are never created and branch protection waits forever. Inlining the values and dropping the matrix fixes this. New required checks: levanter-tests, levanter-ray-tests, levanter-entry-tests, levanter-torch-tests, marin-tests, zephyr-tests, haliax-tests, iris-tests, fray-tests, marin-itest, build-docs, lint-and-format. Follows up on #3986. Fixes #3985.
1 parent d30df46 commit c5a00c7

7 files changed

Lines changed: 38 additions & 80 deletions

File tree

.github/workflows/fray-unit-tests.yaml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,22 +28,19 @@ jobs:
2828
- 'uv.lock'
2929
- '.github/workflows/fray-unit-tests.yaml'
3030
31-
cpu-test:
31+
fray-tests:
3232
needs: changes
3333
if: needs.changes.outputs.should_run == 'true'
3434
runs-on: ubuntu-latest
3535
timeout-minutes: 10
36-
strategy:
37-
matrix:
38-
python-version: ["3.12"]
3936
steps:
4037
- name: Checkout code
4138
uses: actions/checkout@v3
4239

43-
- name: Set up Python ${{ matrix.python-version }}
40+
- name: Set up Python 3.12
4441
uses: actions/setup-python@v4
4542
with:
46-
python-version: ${{ matrix.python-version }}
43+
python-version: "3.12"
4744

4845
- name: Install uv
4946
uses: astral-sh/setup-uv@v7
@@ -55,7 +52,7 @@ jobs:
5552
# NOTE: do not use frozen here because it makes ray sad when it sets up venvs with uv
5653
cd lib/fray && uv run --group=fray-test pytest --durations=5 --tb=short -m 'not slow and not tpu_ci' -v -s tests/
5754
58-
tpu-test:
55+
fray-tpu-tests:
5956
needs: changes
6057
runs-on: [tpu-ci]
6158
timeout-minutes: 10

.github/workflows/haliax-run_tests.yaml

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -29,32 +29,27 @@ jobs:
2929
- 'uv.lock'
3030
- '.github/workflows/haliax-*.yaml'
3131
32-
cpu-test:
32+
haliax-tests:
3333
needs: changes
3434
if: needs.changes.outputs.should_run == 'true'
3535

3636
runs-on: ubuntu-latest
3737

38-
strategy:
39-
matrix:
40-
python-version: ["3.11"]
41-
jax-version: ["0.8.0"]
42-
4338
defaults:
4439
run:
4540
working-directory: lib/haliax
4641

4742
steps:
4843
- uses: actions/checkout@v3
49-
- name: Set up Python ${{ matrix.python-version }}
44+
- name: Set up Python 3.11
5045
uses: actions/setup-python@v4
5146
with:
52-
python-version: ${{ matrix.python-version }}
47+
python-version: "3.11"
5348
- name: Install dependencies
5449
run: |
5550
python -m pip install uv
5651
uv sync --package haliax --dev
57-
- name: Test with pytest (JAX ${{ matrix.jax-version }})
52+
- name: Test with pytest (JAX 0.8.0)
5853
run: |
5954
# Test with specific JAX version
60-
JAX_NUM_CPU_DEVICES=8 PYTHONPATH=tests:src:. uv run --package haliax --with "jax[cpu]==${{ matrix.jax-version }}" pytest -c pyproject.toml tests
55+
JAX_NUM_CPU_DEVICES=8 PYTHONPATH=tests:src:. uv run --package haliax --with "jax[cpu]==0.8.0" pytest -c pyproject.toml tests

.github/workflows/iris-unit-tests.yaml

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -31,22 +31,19 @@ jobs:
3131
- 'uv.lock'
3232
- '.github/workflows/iris-unit-tests.yaml'
3333
34-
cpu-test:
34+
iris-tests:
3535
needs: changes
3636
if: needs.changes.outputs.should_run == 'true'
3737
runs-on: ubuntu-latest
3838
timeout-minutes: 10
39-
strategy:
40-
matrix:
41-
python-version: ["3.12"]
4239
steps:
4340
- name: Checkout code
4441
uses: actions/checkout@v4
4542

46-
- name: Set up Python ${{ matrix.python-version }}
43+
- name: Set up Python 3.12
4744
uses: actions/setup-python@v5
4845
with:
49-
python-version: ${{ matrix.python-version }}
46+
python-version: "3.12"
5047

5148
- name: Set up Node.js
5249
uses: actions/setup-node@v4
@@ -65,22 +62,19 @@ jobs:
6562
run: |
6663
cd lib/iris && uv run --group dev python -m pytest -n1 --durations=5 --tb=short -m 'not slow and not docker and not e2e' tests/
6764
68-
e2e-smoke-test:
65+
iris-e2e-smoke:
6966
needs: changes
7067
if: needs.changes.outputs.should_run == 'true'
7168
runs-on: ubuntu-latest
7269
timeout-minutes: 5
73-
strategy:
74-
matrix:
75-
python-version: ["3.12"]
7670
steps:
7771
- name: Checkout code
7872
uses: actions/checkout@v4
7973

80-
- name: Set up Python ${{ matrix.python-version }}
74+
- name: Set up Python 3.12
8175
uses: actions/setup-python@v5
8276
with:
83-
python-version: ${{ matrix.python-version }}
77+
python-version: "3.12"
8478

8579
- name: Set up Node.js
8680
uses: actions/setup-node@v4

.github/workflows/levanter-tests.yaml

Lines changed: 11 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -30,14 +30,10 @@ jobs:
3030
- 'uv.lock'
3131
- '.github/workflows/levanter-tests.yaml'
3232
33-
cpu-unit-tests:
33+
levanter-tests:
3434
needs: changes
3535
if: needs.changes.outputs.should_run == 'true'
3636
runs-on: ubuntu-latest
37-
strategy:
38-
matrix:
39-
python-version: ["3.11"]
40-
jax-version: ["0.8.0"]
4137
defaults:
4238
run:
4339
working-directory: lib/levanter
@@ -48,7 +44,7 @@ jobs:
4844
uses: astral-sh/setup-uv@v6
4945
with:
5046
version: "0.7.20"
51-
python-version: ${{ matrix.python-version }}
47+
python-version: "3.11"
5248
enable-cache: true
5349
working-directory: lib/levanter
5450
- name: Set up Node.js
@@ -62,15 +58,12 @@ jobs:
6258
- name: Test with pytest
6359
run: |
6460
# Test with specific JAX version, excluding TPU tests
65-
PYTHONPATH=tests:src:. uv run --package levanter --frozen --with "jax[cpu]==${{ matrix.jax-version }}" pytest tests -m "not entry and not slow and not ray and not tpu" --durations=20
61+
PYTHONPATH=tests:src:. uv run --package levanter --frozen --with "jax[cpu]==0.8.0" pytest tests -m "not entry and not slow and not ray and not tpu" --durations=20
6662
67-
cpu-ray-tests:
63+
levanter-ray-tests:
6864
needs: changes
6965
if: needs.changes.outputs.should_run == 'true'
7066
runs-on: ubuntu-latest
71-
strategy:
72-
matrix:
73-
python-version: ["3.11"]
7467
defaults:
7568
run:
7669
working-directory: lib/levanter
@@ -81,7 +74,7 @@ jobs:
8174
uses: astral-sh/setup-uv@v6
8275
with:
8376
version: "0.7.20"
84-
python-version: ${{ matrix.python-version }}
77+
python-version: "3.11"
8578
enable-cache: true
8679
working-directory: lib/levanter
8780
- name: Set up Node.js
@@ -96,13 +89,10 @@ jobs:
9689
run: |
9790
PYTHONPATH=tests:src:. uv run --package levanter --frozen pytest tests -m "ray" --durations=20
9891
99-
cpu-entry-tests:
92+
levanter-entry-tests:
10093
needs: changes
10194
if: needs.changes.outputs.should_run == 'true'
10295
runs-on: ubuntu-latest
103-
strategy:
104-
matrix:
105-
python-version: ["3.11"]
10696
defaults:
10797
run:
10898
working-directory: lib/levanter
@@ -113,7 +103,7 @@ jobs:
113103
uses: astral-sh/setup-uv@v6
114104
with:
115105
version: "0.7.20"
116-
python-version: ${{ matrix.python-version }}
106+
python-version: "3.11"
117107
enable-cache: true
118108
working-directory: lib/levanter
119109
- name: Set up Node.js
@@ -128,14 +118,11 @@ jobs:
128118
run: |
129119
PYTHONPATH=tests:src:. uv run --package levanter --frozen pytest tests -m "entry" --durations=20
130120
131-
cpu-torch-tests:
121+
levanter-torch-tests:
132122
needs: changes
133123
if: needs.changes.outputs.should_run == 'true'
134124
runs-on: ubuntu-latest
135125
timeout-minutes: 15
136-
strategy:
137-
matrix:
138-
python-version: ["3.11"]
139126
defaults:
140127
run:
141128
working-directory: lib/levanter
@@ -146,7 +133,7 @@ jobs:
146133
uses: astral-sh/setup-uv@v6
147134
with:
148135
version: "0.7.20"
149-
python-version: ${{ matrix.python-version }}
136+
python-version: "3.11"
150137
enable-cache: true
151138
working-directory: lib/levanter
152139
- name: Set up Node.js
@@ -193,15 +180,11 @@ jobs:
193180
CUDA_VISIBLE_DEVICES="" PYTHONPATH=tests:src:. ../../.venv/bin/python -m pytest tests -m "torch" --durations=20
194181
# CUDA_VISIBLE_DEVICES="" PYTHONPATH=tests:src:. uv run --package levanter --frozen --extra torch_test pytest tests -m "torch" --durations=20
195182

196-
tpu-tests:
183+
levanter-tpu-tests:
197184
needs: changes
198185
if: needs.changes.outputs.should_run == 'true' && (github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository)
199186
runs-on: [tpu-ci]
200187
timeout-minutes: 15
201-
strategy:
202-
fail-fast: false
203-
matrix:
204-
jax_version: ["0.8.0"]
205188
steps:
206189
- name: Checkout code
207190
uses: actions/checkout@v4
@@ -212,7 +195,7 @@ jobs:
212195
env:
213196
HF_TOKEN: ${{ secrets.HF_TOKEN }}
214197
WANDB_API_KEY: ${{ secrets.WANDB_API_KEY }}
215-
JAX_VERSION: ${{ matrix.jax_version }}
198+
JAX_VERSION: "0.8.0"
216199
run: |
217200
bash infra/tpu-ci/clean-tpu.sh
218201

.github/workflows/marin-itest.yaml

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ on:
99

1010

1111
jobs:
12-
itest:
12+
marin-itest:
1313
if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name == github.repository
1414
runs-on: ubuntu-latest
1515
# uv has to resolve + download large binary wheels (jax/torch). 10 minutes wasn't
@@ -19,17 +19,13 @@ jobs:
1919
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
2020
cancel-in-progress: true
2121

22-
strategy:
23-
matrix:
24-
python-version: [ "3.12" ]
25-
2622
steps:
2723
- name: Checkout code
2824
uses: actions/checkout@v3
29-
- name: Set up Python ${{ matrix.python-version }}
25+
- name: Set up Python 3.12
3026
uses: actions/setup-python@v4
3127
with:
32-
python-version: ${{ matrix.python-version }}
28+
python-version: "3.12"
3329

3430
- name: Set up Node.js
3531
uses: actions/setup-node@v4

.github/workflows/marin-unit-tests.yaml

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -31,23 +31,19 @@ jobs:
3131
- 'pyproject.toml'
3232
- '.github/workflows/marin-unit-tests.yaml'
3333
34-
cpu-unit-test:
34+
marin-tests:
3535
needs: changes
3636
if: needs.changes.outputs.should_run == 'true'
3737
runs-on: ubuntu-latest
3838
timeout-minutes: 15
39-
strategy:
40-
matrix:
41-
python-version: ["3.12"]
42-
node-version: ["20.10.0"]
4339
steps:
4440
- name: Checkout code
4541
uses: actions/checkout@v3
46-
47-
- name: Set up Python ${{ matrix.python-version }}
42+
43+
- name: Set up Python 3.12
4844
uses: actions/setup-python@v4
4945
with:
50-
python-version: ${{ matrix.python-version }}
46+
python-version: "3.12"
5147

5248
- name: Install uv
5349
uses: astral-sh/setup-uv@v6
@@ -60,10 +56,10 @@ jobs:
6056
python -m pip install --upgrade pip
6157
uv sync --package marin --extra cpu --extra dedup --group test --frozen
6258
63-
- name: Set up Node.js ${{ matrix.node-version }}
59+
- name: Set up Node.js 20.10.0
6460
uses: actions/setup-node@v4
6561
with:
66-
node-version: ${{ matrix.node-version }}
62+
node-version: "20.10.0"
6763

6864
- name: Test with pytest
6965
env:

.github/workflows/zephyr-unit-tests.yaml

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -30,22 +30,19 @@ jobs:
3030
- 'uv.lock'
3131
- '.github/workflows/zephyr-unit-tests.yaml'
3232
33-
cpu-unit-test:
33+
zephyr-tests:
3434
needs: changes
3535
if: needs.changes.outputs.should_run == 'true'
3636
runs-on: ubuntu-latest
3737
timeout-minutes: 15
38-
strategy:
39-
matrix:
40-
python-version: ["3.12"]
4138
steps:
4239
- name: Checkout code
4340
uses: actions/checkout@v3
4441

45-
- name: Set up Python ${{ matrix.python-version }}
42+
- name: Set up Python 3.12
4643
uses: actions/setup-python@v4
4744
with:
48-
python-version: ${{ matrix.python-version }}
45+
python-version: "3.12"
4946

5047
- name: Set up Node.js
5148
uses: actions/setup-node@v4

0 commit comments

Comments
 (0)