Bump softprops/action-gh-release from 2 to 3 #50
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| rust: | |
| name: Rust (${{ matrix.os }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| matrix: | |
| os: [ubuntu-latest, macos-latest, windows-latest] | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.13" | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Check formatting | |
| run: cargo fmt --all -- --check | |
| - name: Clippy | |
| run: cargo clippy --workspace -- -D warnings | |
| - name: Run tests | |
| run: cargo test --workspace | |
| python: | |
| name: Python (ruff + pytest) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.13" | |
| - uses: astral-sh/setup-uv@v7 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Ruff lint | |
| run: uvx ruff check python/ | |
| - name: Ruff format | |
| run: uvx ruff format --check python/ | |
| - name: Run tests | |
| run: uv run --extra dev pytest -x -q | |
| diagnostics-verification: | |
| name: Diagnostics correctness harness | |
| needs: python | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - uses: actions/setup-python@v6 | |
| with: | |
| python-version: "3.13" | |
| - uses: astral-sh/setup-uv@v7 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Build extension (release) | |
| # `uv run` resolves the dev extras; maturin develop --release builds | |
| # the optimized extension into the project's venv so the harness can | |
| # import it. | |
| run: uv run --extra dev maturin develop --release | |
| - name: Run diagnostics verification harness | |
| # The harness exits non-zero on any invariant failure, which fails | |
| # the build. statsmodels is part of the `dev` extra (pyproject.toml), | |
| # so cross-validation checks run automatically; the harness also | |
| # gracefully skips them if statsmodels is unavailable. | |
| run: uv run --extra dev python benchmarks/verify_diagnostics_correctness.py |