@@ -0,0 +1,66 @@
1+name: Deploy Playground to GitHub Pages
15+ cancel-in-progress: false
19+ name: Build playground
20+ runs-on: ubuntu-latest
22+ - uses: actions/checkout@v4
24+ - uses: dtolnay/rust-toolchain@stable
26+ targets: wasm32-unknown-unknown
28+ - uses: Swatinem/rust-cache@v2
30+ - name: Install wasm-bindgen-cli
31+ # Version must match the wasm-bindgen dep in crates/htmlang-wasm/Cargo.toml
32+ run: cargo install wasm-bindgen-cli --version 0.2.114 --locked
34+ - name: Build htmlang-wasm
35+ run: cargo build --release --target wasm32-unknown-unknown -p htmlang-wasm
37+ - name: Generate wasm bindings
39+ wasm-bindgen --target no-modules --no-typescript \
40+ --out-dir target/wasm-pkg \
41+ target/wasm32-unknown-unknown/release/htmlang_wasm.wasm
43+ - name: Build htmlang CLI
44+ run: cargo build --release --bin htmlang
46+ - name: Generate playground HTML
49+ ./target/release/htmlang playground dist/index.html
51+ - name: Upload Pages artifact
52+ uses: actions/upload-pages-artifact@v3
57+ name: Deploy to GitHub Pages
59+ runs-on: ubuntu-latest
62+ url: ${{ steps.deployment.outputs.page_url }}
66+ uses: actions/deploy-pages@v4