|
1 | | -# Deploy Dendrite WASM frontend to GitHub Pages |
2 | | -# Builds dendrite-web for wasm32 and deploys to GitHub Pages |
3 | | -name: Deploy to GitHub Pages |
| 1 | +# Deploy Dendrite HCDF Viewer to GitHub Pages |
| 2 | +# Builds dendrite-viewer for wasm32 (WebGPU + WebGL2) and deploys to dendrite.cognipilot.org |
| 3 | +name: Deploy Viewer to GitHub Pages |
4 | 4 |
|
5 | 5 | on: |
6 | 6 | push: |
7 | 7 | branches: [main] |
| 8 | + paths: |
| 9 | + - 'crates/dendrite-viewer/**' |
| 10 | + - 'crates/dendrite-scene/**' |
| 11 | + - 'crates/dendrite-core/**' |
| 12 | + - 'viewer-web/**' |
| 13 | + - '.github/workflows/deploy-viewer.yml' |
8 | 14 | workflow_dispatch: |
9 | 15 |
|
10 | 16 | # Allow only one concurrent deployment |
11 | 17 | concurrency: |
12 | | - group: "pages" |
| 18 | + group: "viewer-pages" |
13 | 19 | cancel-in-progress: true |
14 | 20 |
|
15 | 21 | # Sets permissions of the GITHUB_TOKEN |
@@ -41,29 +47,37 @@ jobs: |
41 | 47 | ~/.cargo/.crates.toml |
42 | 48 | ~/.cargo/.crates2.json |
43 | 49 | target |
44 | | - key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }} |
| 50 | + key: ${{ runner.os }}-cargo-viewer-${{ hashFiles('**/Cargo.lock') }} |
45 | 51 | restore-keys: | |
46 | | - ${{ runner.os }}-cargo- |
| 52 | + ${{ runner.os }}-cargo-viewer- |
47 | 53 |
|
48 | 54 | - name: Install wasm-bindgen-cli |
49 | 55 | run: | |
50 | 56 | if ! command -v wasm-bindgen &> /dev/null; then |
51 | 57 | cargo install wasm-bindgen-cli |
52 | 58 | fi |
53 | 59 |
|
54 | | - - name: Build WASM |
| 60 | + - name: Build WASM (WebGPU) |
55 | 61 | run: | |
56 | | - cargo build --target wasm32-unknown-unknown -p dendrite-web --release |
57 | | - mkdir -p web/pkg |
58 | | - wasm-bindgen --out-dir web/pkg --target web --no-typescript target/wasm32-unknown-unknown/release/dendrite_web.wasm |
| 62 | + cargo build --target wasm32-unknown-unknown -p dendrite-viewer --release --no-default-features --features webgpu |
| 63 | + mkdir -p viewer-web/pkg |
| 64 | + wasm-bindgen --out-name dendrite_viewer_webgpu --out-dir viewer-web/pkg --target web --no-typescript target/wasm32-unknown-unknown/release/dendrite_viewer.wasm |
| 65 | +
|
| 66 | + - name: Build WASM (WebGL2) |
| 67 | + run: | |
| 68 | + cargo build --target wasm32-unknown-unknown -p dendrite-viewer --release --no-default-features --features webgl2 |
| 69 | + wasm-bindgen --out-name dendrite_viewer_webgl2 --out-dir viewer-web/pkg --target web --no-typescript target/wasm32-unknown-unknown/release/dendrite_viewer.wasm |
| 70 | +
|
| 71 | + - name: Create CNAME for custom domain |
| 72 | + run: echo "dendrite.cognipilot.org" > viewer-web/CNAME |
59 | 73 |
|
60 | 74 | - name: Setup Pages |
61 | 75 | uses: actions/configure-pages@v4 |
62 | 76 |
|
63 | 77 | - name: Upload artifact |
64 | 78 | uses: actions/upload-pages-artifact@v3 |
65 | 79 | with: |
66 | | - path: 'web' |
| 80 | + path: 'viewer-web' |
67 | 81 |
|
68 | 82 | deploy: |
69 | 83 | environment: |
|
0 commit comments