name: CI
on:
    workflow_dispatch:
    pull_request:
        paths: ["demo/**", "demo_markdown/**", "thaw/**"]
        branches:
            - main
    push:
        paths: ["demo/**", "demo_markdown/**", "thaw/**"]
        branches:
            - thaw/v0.2

jobs:
    stable:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v4
              with:
                  fetch-depth: 0
            - name: Setup Rust
              uses: actions-rs/toolchain@v1
              with:
                  toolchain: stable
                  target: wasm32-unknown-unknown
                  override: true
            - name: Install Trunk
              uses: jetli/trunk-action@v0.4.0
              with:
                  version: "latest"
            - name: Build
              run: |
                  cd demo
                  trunk build --release
    nightly:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v4
              with:
                  fetch-depth: 0
            - name: Setup Rust
              uses: actions-rs/toolchain@v1
              with:
                  toolchain: nightly
                  target: wasm32-unknown-unknown
                  override: true
            - name: Install Trunk
              uses: jetli/trunk-action@v0.4.0
              with:
                  version: "latest"
            - name: Build
              run: |
                  cd demo
                  trunk build --release --features nightly
    stable-cargo-leptos:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v4
              with:
                  fetch-depth: 0
            - name: Setup Rust
              uses: actions-rs/toolchain@v1
              with:
                  toolchain: stable
                  target: wasm32-unknown-unknown
                  override: true
            - name: Install Trunk
              uses: jetli/trunk-action@v0.4.0
              with:
                  version: "latest"
            - name: Install Cargo BInstall
              uses: cargo-bins/cargo-binstall@main
            - name: Install Cargo Leptos
              run: cargo binstall cargo-leptos -y
            - name: Build
              run: |
                  cd ./examples/ssr_axum
                  cargo leptos build --release
    nightly-cargo-leptos:
        runs-on: ubuntu-latest
        steps:
            - uses: actions/checkout@v4
              with:
                  fetch-depth: 0
            - name: Setup Rust
              uses: actions-rs/toolchain@v1
              with:
                  toolchain: nightly
                  target: wasm32-unknown-unknown
                  override: true
            - name: Install Trunk
              uses: jetli/trunk-action@v0.4.0
              with:
                  version: "latest"
            - name: Install Cargo BInstall
              uses: cargo-bins/cargo-binstall@main
            - name: Install Cargo Leptos
              run: cargo binstall cargo-leptos -y
            - name: Build
              run: |
                  cd ./examples/ssr_axum
                  cargo leptos build --release --features nightly