mantaray 0.2.0

Ray-tracing solver for ocean surface gravity waves that integrates the wave ray equations over spatially varying currents and bathymetry.
Documentation
name: Python checks

on:
  push:
    branches: [ "main" ]
  pull_request:
  schedule:
    - cron: '4 5 * * 5'

jobs:
  ruff:
    name: Ruff
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v6
      - uses: chartboost/ruff-action@v1
        with:
          version: 0.7.3
          args: check
          src: "./python/mantaray"
      - uses: chartboost/ruff-action@v1
        with:
          version: 0.7.3
          args: format --check
          src: "./python/mantaray"

  test:
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        build: [beta, stable, windows, macos]
        include:
          - build: macos
            os: macos-latest
            rust: stable
          - build: windows
            os: windows-latest
            rust: stable
          - build: beta
            os: ubuntu-latest
            rust: beta
          - build: stable
            os: ubuntu-latest
            rust: stable
    steps:
      - uses: actions/checkout@v6
        with:
          fetch-depth: 0

      - name: Setup Pixi
        uses: prefix-dev/setup-pixi@v0.9.3
        with:
          pixi-version: v0.57.0
          frozen: true
          cache: true

      - uses: Swatinem/rust-cache@v2
        with:
          save-if: ${{ github.ref == 'refs/heads/main' }}

      - run: pixi run -e test pytest

  doc:
    name: Check documentation
    runs-on: ubuntu-latest
    steps:
      - name: Checkout sources
        uses: actions/checkout@v6

      - uses: prefix-dev/setup-pixi@v0.9.3
        with:
          pixi-version: v0.57.0
          cache: true
          frozen: true

      - uses: Swatinem/rust-cache@v2
        with:
          save-if: ${{ github.ref == 'refs/heads/main' }}

      - name: Build HTML
        # Turn warning into errors
        run: SPHINXOPTS="-W --keep-going -n" pixi run -e docs python-docs