/ proof-of-concept / instrawave-compose
Sign in
proof-of-concept / instrawave-compose
instrawave-compose / .github / workflows / deploy.yml
55 lines · 1.9 KBBlameHistoryRaw
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 steps:
20 - uses: actions/checkout@v4
21 # The app imports instrawave's host sources through a file:
22 # dependency on the sibling checkout, which is the vault layout; the
23 # lockfile pins that link, so the sibling has to exist before npm ci.
24 # checkout can only write inside the workspace, hence the move.
25 - uses: actions/checkout@v4
26 with:
27 repository: proof-of-concept/instrawave
28 # ref defaults to the SHA that triggered this run, which is a
29 # commit of THIS repository and means nothing in that one.
30 ref: main
31 path: _deps/instrawave
32 - run: |
33 mv _deps/instrawave ../instrawave
34 rmdir _deps
35 test -f ../instrawave/src/host/session.ts
36 # --ignore-scripts skips the `webgpu` package's install step (prebuilt
37 # Google Dawn) that instrawave's optional dependency would pull; only
38 # its CLI and GPU tests use it, and the page build needs nothing from
39 # it.
40 - uses: actions/setup-node@v4
41 with:
42 node-version: 24
43 - run: npm ci --ignore-scripts
44 # The onset, feature, classifier, mix, and wav checks run on synthetic
45 # audio and need no microphone and no GPU, so they gate the deploy.
46 - run: npm test
47 # configure-pages runs before the build on mochi, not after. The page
48 # is built with relative URLs, so the base path it reports is not
49 # needed here, but the ordering is the one that would work if it were.
50 - uses: actions/configure-pages@v5
51 - run: npm run build
52 - uses: actions/upload-pages-artifact@v3
53 with:
54 path: dist
55 - uses: actions/deploy-pages@v4
↑↓ move↵openescclose