/ concept-collection / turing-surface
Sign in
concept-collection / turing-surface
41 lines · 1.7 KBBlameHistoryRaw
1name: ci
2on:
3 push:
4 branches: [main]
5 pull_request:
7jobs:
8 test:
9 runs-on: ubuntu-latest
10 steps:
11 - uses: actions/checkout@v4
12 - uses: actions/setup-node@v4
13 with:
14 node-version: 24
15 cache: npm
16 # numbl is a `file:../../numbl` dependency: we use its compiler internals
17 # (parser, lowerer, IR, inline pass), which its published package `exports`
18 # do not expose. Clone it where that relative path expects it. Pinned so a
19 # change to those internals cannot silently break the build — the surface we
20 # rely on is written down in src/mgpu/numbl.d.ts.
21 #
22 # numbl's own dependencies are NOT needed: the slice we import is
23 # self-contained TypeScript, verified by building against a checkout with no
24 # node_modules.
25 - name: Check out numbl (sibling dependency)
26 env:
27 NUMBL_REF: 603524067561dec5952f004b0c6cbd20ea71430a
28 run: |
29 git clone --filter=blob:none --no-checkout \
30 https://github.com/flatironinstitute/numbl.git "$GITHUB_WORKSPACE/../../numbl"
31 git -C "$GITHUB_WORKSPACE/../../numbl" checkout --quiet "$NUMBL_REF"
32 # --ignore-scripts: npm runs a linked package's `prepare` script, and
33 # numbl's is husky, which is not installed here.
34 - run: npm ci --ignore-scripts
35 # The checks compile MATLAB to compute shaders, so they need a GPU; the
36 # browser suite below runs the same modules on SwiftShader if there is none.
37 - run: npm run test:node -- --skip-without-gpu
38 # headless Chrome + SwiftShader software WebGPU
39 - run: npm run test:gpu
40 env:
41 CHROME_PATH: /usr/bin/google-chrome
moveopenescclose