traj-dist-rs 1.0.0-rc.5

High-performance trajectory distance & similarity measures in Rust with Python bindings
Documentation
name: Deploy Documentation

on:
  push:
    branches:
      - main
    tags:
      - 'v*'
  workflow_dispatch:

permissions:
  contents: write

jobs:
  deploy:
    name: Deploy Documentation
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install Rust
        uses: dtolnay/rust-toolchain@stable
        with:
          toolchain: 1.94.1

      - name: Cache Cargo Binaries
        uses: actions/cache@v3
        with:
          path: ~/.cargo/bin
          key: ${{ runner.os }}-cargo-evcxr-${{ hashFiles('**/Cargo.lock') }}
          restore-keys: |
            ${{ runner.os }}-cargo-evcxr-

      - name: Install uv
        uses: astral-sh/setup-uv@v3
        with:
          enable-cache: true
          cache-dependency-glob: "uv.lock"

      - name: Install Python dependencies
        run: |
          uv sync --dev --all-extras

      - name: Install evcxr (Rust Jupyter kernel)
        run: |
          export PATH="$HOME/.cargo/bin:$PATH"
          
          if ! command -v evcxr_jupyter &> /dev/null; then
            echo "evcxr_jupyter not found, installing..."
            cargo install evcxr_jupyter
          else
            echo "evcxr_jupyter found in cache, skipping install."
          fi
          
          source .venv/bin/activate
          evcxr_jupyter --install

      - name: Configure Git
        run: |
          git config --global user.name "github-actions[bot]"
          git config --global user.email "github-actions[bot]@users.noreply.github.com"
          git fetch origin gh-pages:gh-pages --force || echo "gh-pages branch does not exist yet"

      - name: Build and deploy documentation
        run: |
          export PATH="$HOME/.cargo/bin:$PATH"
          cd mk_docs
          
          if [[ "${{ github.ref }}" == refs/tags/* ]]; then
            VERSION=${GITHUB_REF#refs/tags/}
            VERSION=${VERSION#v}
            echo "Deploying Release Version: $VERSION"
            uv run mike deploy --push --branch gh-pages --update-aliases $VERSION latest stable
            uv run mike set-default --push --branch gh-pages latest
          else
            echo "Deploying Development Version (dev)"
            uv run mike deploy --push --branch gh-pages dev
          fi