|
30 | 30 | python-version: ${{ matrix.python-version }} |
31 | 31 | enable-cache: true |
32 | 32 | working-directory: lib/levanter |
| 33 | + - name: Set up Node.js |
| 34 | + uses: actions/setup-node@v4 |
| 35 | + with: |
| 36 | + node-version: "22" |
33 | 37 | - name: Set up Python |
34 | 38 | run: uv python install |
35 | 39 | - name: Install dependencies |
|
57 | 61 | python-version: ${{ matrix.python-version }} |
58 | 62 | enable-cache: true |
59 | 63 | working-directory: lib/levanter |
| 64 | + - name: Set up Node.js |
| 65 | + uses: actions/setup-node@v4 |
| 66 | + with: |
| 67 | + node-version: "22" |
60 | 68 | - name: Set up Python |
61 | 69 | run: uv python install |
62 | 70 | - name: Install dependencies |
|
83 | 91 | python-version: ${{ matrix.python-version }} |
84 | 92 | enable-cache: true |
85 | 93 | working-directory: lib/levanter |
| 94 | + - name: Set up Node.js |
| 95 | + uses: actions/setup-node@v4 |
| 96 | + with: |
| 97 | + node-version: "22" |
86 | 98 | - name: Set up Python |
87 | 99 | run: uv python install |
88 | 100 | - name: Install dependencies |
@@ -110,6 +122,10 @@ jobs: |
110 | 122 | python-version: ${{ matrix.python-version }} |
111 | 123 | enable-cache: true |
112 | 124 | working-directory: lib/levanter |
| 125 | + - name: Set up Node.js |
| 126 | + uses: actions/setup-node@v4 |
| 127 | + with: |
| 128 | + node-version: "22" |
113 | 129 | - name: Set up Python |
114 | 130 | run: uv python install |
115 | 131 | - name: Install dependencies |
@@ -201,4 +217,22 @@ jobs: |
201 | 217 | -v /tmp/uv-cache:/tmp/uv-cache:rw \ |
202 | 218 | -w /workspace \ |
203 | 219 | $DOCKER_IMAGE \ |
204 | | - bash -c "cp -a /workspace-src/. /workspace/ && cd /workspace && timeout --kill-after=5 --signal=TERM 890 uv run --package levanter --frozen --group test --with 'jax[tpu]==$JAX_VERSION' pytest lib/levanter/tests -m 'not entry and not ray and not slow and not torch' --ignore=lib/levanter/tests/test_audio.py --ignore=lib/levanter/tests/test_new_cache.py --ignore=lib/levanter/tests/test_hf_checkpoints.py --ignore=lib/levanter/tests/test_hf_gpt2_serialize.py --ignore=lib/levanter/tests/test_gdn_layer.py -v --tb=short --log-cli-level=WARNING --durations=20" |
| 220 | + bash -c "\ |
| 221 | + # Install Node.js in userspace if not present (needed for protobuf generation during uv sync) |
| 222 | + if ! command -v npx >/dev/null 2>&1; then \ |
| 223 | + echo '::group::Installing Node.js in userspace'; \ |
| 224 | + curl -fsSL https://nodejs.org/dist/v22.16.0/node-v22.16.0-linux-x64.tar.xz | tar -xJ -C /tmp && \ |
| 225 | + export PATH=/tmp/node-v22.16.0-linux-x64/bin:\$PATH; \ |
| 226 | + echo '::endgroup::'; \ |
| 227 | + fi && \ |
| 228 | + cp -a /workspace-src/. /workspace/ && cd /workspace && \ |
| 229 | + timeout --kill-after=5 --signal=TERM 890 \ |
| 230 | + uv run --package levanter --frozen --group test --with 'jax[tpu]==$JAX_VERSION' \ |
| 231 | + pytest lib/levanter/tests \ |
| 232 | + -m 'not entry and not ray and not slow and not torch' \ |
| 233 | + --ignore=lib/levanter/tests/test_audio.py \ |
| 234 | + --ignore=lib/levanter/tests/test_new_cache.py \ |
| 235 | + --ignore=lib/levanter/tests/test_hf_checkpoints.py \ |
| 236 | + --ignore=lib/levanter/tests/test_hf_gpt2_serialize.py \ |
| 237 | + --ignore=lib/levanter/tests/test_gdn_layer.py \ |
| 238 | + -v --tb=short --log-cli-level=WARNING --durations=20" |
0 commit comments