leptos-use 0.19.0

Collection of essential Leptos utilities inspired by React-Use / VueUse
Documentation
on:
  push:
    # Pattern matched against refs/tags
    tags:
      - '*'           # Push events to every tag not containing /
  workflow_dispatch:

name: CD

permissions: write-all

jobs:
  publish:
    name: Publish
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v7
      - uses: actions-rs/toolchain@v1
        with:
          toolchain: nightly
          profile: minimal
          override: true
          components: rustfmt, clippy, rust-src
      - name: Cache
        uses: Swatinem/rust-cache@v2

      - name: Check function count badge
        run: python3 docs/generate_count_badge.py --check
      - name: Check version in docs
        run: python3 docs/add_version_to_docs.py --check

      - name: Check formatting
        run: cargo fmt --check
      - name: Clippy
        run: cargo clippy --features docs,math --tests -- -D warnings

      - name: Run tests (general)
        run: RUSTFLAGS="--cfg=web_sys_unstable_apis" cargo test --features math,docs,ssr
      - name: Run tests (axum) use_cookie
        run: RUSTFLAGS="--cfg=web_sys_unstable_apis" cargo test --features math,docs,ssr,axum --doc use_cookie
      - name: Run tests (axum) use_locale
        run: RUSTFLAGS="--cfg=web_sys_unstable_apis" cargo test --features math,docs,ssr,axum --doc use_locale
      # TODO : at the moment this gives weird compilation errors that have nothing to do with leptos-use
      # - name: Run tests (actix) use_cookie
      #   run: RUSTFLAGS="--cfg=web_sys_unstable_apis" cargo test --features math,docs,ssr,actix --doc use_cookie
      # - name: Run tests (actix) use_locale
      #   run: RUSTFLAGS="--cfg=web_sys_unstable_apis" cargo test --features math,docs,ssr,actix --doc use_locale

      #### mdbook
      - name: Install mdbook I
        uses: taiki-e/install-action@v2
        with:
          tool: cargo-binstall,mdbook@0.4
      - name: Install mdbook II
        run: |
          cargo binstall -y mdbook-cmdrun
          cargo binstall -y trunk@0.17.5
          rustup target add wasm32-unknown-unknown
      - name: Setup Pages
        id: pages
        uses: actions/configure-pages@v6
      - name: Build mdbook # TODO : run mdbook tests
        run: |
          cd docs/book
          mdbook build
          python3 post_build.py
      - name: Upload artifact
        uses: actions/upload-pages-artifact@v5
        with:
          path: ./docs/book/book
      - name: Deploy book to github pages
        id: deployment
        uses: actions/deploy-pages@v5
      ##### mdbook end

      - name: Publish crate leptos-use
        uses: katyo/publish-crates@v2
        with:
          registry-token: ${{ secrets.CRATES_TOKEN }}

      - uses: CSchoel/release-notes-from-changelog@v1
      - name: Create Release using GitHub CLI
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        run: >
          gh release create
          -d
          -F RELEASE.md
          -t "Version $RELEASE_VERSION"
          ${GITHUB_REF#refs/*/}