1name: deploy
2on:
3 push:
4 branches: [main]
5 workflow_dispatch:
7permissions:
8 contents: read
9 pages: write
10 id-token: write
12concurrency:
13 group: pages
14 cancel-in-progress: true
16jobs:
17 build-deploy:
18 runs-on: ubuntu-latest
19 environment:
20 name: github-pages
21 url: ${{ steps.deployment.outputs.page_url }}
22 steps:
23 - uses: actions/checkout@v4
24 - uses: actions/setup-node@v4
25 with:
26 node-version: 24
27 cache: npm
28 # See ci.yml for why numbl is cloned (pinned; no numbl build needed).
29 - name: Check out numbl (sibling dependency)
30 env:
31 NUMBL_REF: 38ce14046d64d03ecf05cb57def53057a6bc64ab
32 run: |
33 git clone --filter=blob:none --no-checkout \
34 https://github.com/flatironinstitute/numbl.git "$GITHUB_WORKSPACE/../../numbl"
35 git -C "$GITHUB_WORKSPACE/../../numbl" checkout --quiet "$NUMBL_REF"
36 - run: npm ci --ignore-scripts
37 - run: npm run test:node -- --skip-without-gpu
38 - run: npm run build
39 # Pages must already be enabled with "GitHub Actions" as the source; the
40 # workflow token cannot create the site itself (`enablement: true` fails
41 # with "Resource not accessible by integration").
42 - uses: actions/configure-pages@v5
43 - uses: actions/upload-pages-artifact@v3
44 with:
45 path: dist
46 - id: deployment
47 uses: actions/deploy-pages@v4