| name: Web Demo Update | |
| on: | |
| push: | |
| branches: | |
| - main | |
| jobs: | |
| release-web: | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: install stable toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: wasm32-unknown-unknown | |
| - name: install wasm-bindgen | |
| uses: taiki-e/install-action@v2 | |
| with: | |
| # If updating, also update in research/examples/with_winit/Cargo.toml | |
| tool: wasm-bindgen@0.2.115 | |
| - name: build (wasm) | |
| run: cargo build -p with_winit --bin with_winit_bin --release --target wasm32-unknown-unknown | |
| - name: package wasm | |
| run: | | |
| mkdir public | |
| wasm-bindgen --target web --out-dir public target/wasm32-unknown-unknown/release/with_winit_bin.wasm --no-typescript | |
| cat << EOF > public/index.html | |
| <html> | |
| <title>Vello Web Demo</title> | |
| <meta content=no-cache http-equiv=Cache-control> | |
| <meta content=-1 http-equiv=Expires> | |
| <script type=module>import initSync from"/vello/with_winit_bin.js";initSync(`/vello/with_winit_bin_bg.wasm`);</script> | |
| <link as=fetch crossorigin href=/vello/with_winit_bin_bg.wasm rel=preload type=application/wasm> | |
| <link crossorigin href=/vello/with_winit_bin.js rel=modulepreload> | |
| </head> | |
| <body> | |
| <style> | |
| body { | |
| margin: 0; | |
| padding: 0; | |
| } | |
| </style> | |
| </body> | |
| </html> | |
| EOF | |
| - name: Setup Pages | |
| uses: actions/configure-pages@v4 | |
| - name: Upload artifact | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: './public' | |
| - name: Deploy to GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v4 |