Bump version for release #1287
Workflow file for this run
This file contains 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: Testing | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
env: | |
CARGO_TERM_COLOR: always | |
RUST_BACKTRACE: 1 | |
RUSTFLAGS: "-D warnings" | |
WORKING_DIR: "my-project" | |
MIN_PYTHON_VERSION: "3.9" | |
CI: true # For insta | |
jobs: | |
clippy: | |
name: Clippy | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
- name: Cache dependencies | |
uses: Swatinem/rust-cache@v2.7.5 | |
- name: Run cargo clippy | |
run: cargo clippy --all-targets -- --deny warnings | |
fmt: | |
name: Rustfmt | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
- name: Cache dependencies | |
uses: Swatinem/rust-cache@v2.7.5 | |
- name: Run cargo fmt | |
run: cargo fmt --all -- --check | |
test: | |
name: Tests | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
- name: Cache dependencies | |
uses: Swatinem/rust-cache@v2.7.5 | |
- name: Run cargo test | |
run: cargo test --locked | |
uv-linting: | |
strategy: | |
fail-fast: false | |
matrix: | |
project_type: ["application", "lib"] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
- name: Cache Rust dependencies | |
uses: Swatinem/rust-cache@v2.7.5 | |
- name: Install uv | |
run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "${{ env.MIN_PYTHON_VERSION }}" | |
- name: Build package | |
run: cargo build --release | |
- name: Run creation | |
run: | | |
./scripts/ci_run.sh ${{ matrix.project_type }} 1 | |
- name: Install Dependencies | |
working-directory: ${{ env.WORKING_DIR }} | |
run: | | |
uv lock | |
uv sync --frozen | |
- name: MyPy | |
working-directory: ${{ env.WORKING_DIR }} | |
run: uv run mypy . | |
- name: ruff check | |
working-directory: ${{ env.WORKING_DIR }} | |
run: uv run ruff check . | |
- name: ruff format | |
working-directory: ${{ env.WORKING_DIR }} | |
run: uv run ruff format --check . | |
uv-test: | |
strategy: | |
fail-fast: false | |
matrix: | |
project_type: ["application", "lib"] | |
os: [ubuntu-latest, macos-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
- name: Cache Rust dependencies | |
uses: Swatinem/rust-cache@v2.7.5 | |
- name: Install uv | |
run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
- name: Build package | |
run: cargo build --release | |
- name: Run creation | |
run: | | |
./scripts/ci_run.sh ${{ matrix.project_type }} 1 | |
- name: Install Dependencies | |
working-directory: ${{ env.WORKING_DIR }} | |
run: | | |
uv lock | |
uv sync --frozen | |
- name: Pre-commit check | |
working-directory: ${{ env.WORKING_DIR }} | |
run: | | |
uv run pre-commit install | |
git add . | |
uv run pre-commit run --all-files | |
- name: Test with pytest | |
working-directory: ${{ env.WORKING_DIR }} | |
if: matrix.project_type == 'application' | |
run: uv run pytest | |
poetry-linting: | |
strategy: | |
fail-fast: false | |
matrix: | |
project_type: ["application", "lib"] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
- name: Cache Rust dependencies | |
uses: Swatinem/rust-cache@v2.7.5 | |
- name: Install Poetry | |
run: pipx install poetry | |
- name: Configure poetry | |
run: | | |
poetry config virtualenvs.create true | |
poetry config virtualenvs.in-project true | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "${{ env.MIN_PYTHON_VERSION }}" | |
- name: Build package | |
run: cargo build --release | |
- name: Run creation | |
run: | | |
./scripts/ci_run.sh ${{ matrix.project_type }} 2 | |
- name: Install Dependencies | |
working-directory: ${{ env.WORKING_DIR }} | |
run: poetry install | |
- name: MyPy | |
working-directory: ${{ env.WORKING_DIR }} | |
run: poetry run mypy . | |
- name: ruff check | |
working-directory: ${{ env.WORKING_DIR }} | |
run: poetry run ruff check . | |
- name: ruff format | |
working-directory: ${{ env.WORKING_DIR }} | |
run: poetry run ruff format --check . | |
poetry-test: | |
strategy: | |
fail-fast: false | |
matrix: | |
project_type: ["application", "lib"] | |
os: [ubuntu-latest, macos-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
- name: Cache Rust dependencies | |
uses: Swatinem/rust-cache@v2.7.5 | |
- name: Install Poetry | |
run: pipx install poetry | |
- name: Configure poetry | |
run: | | |
poetry config virtualenvs.create true | |
poetry config virtualenvs.in-project true | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
- name: Build package | |
run: cargo build --release | |
- name: Run creation | |
run: | | |
./scripts/ci_run.sh ${{ matrix.project_type }} 2 | |
- name: Install Dependencies | |
working-directory: ${{ env.WORKING_DIR }} | |
run: poetry install | |
- name: Pre-commit check | |
working-directory: ${{ env.WORKING_DIR }} | |
run: | | |
poetry run pre-commit install | |
git add . | |
poetry run pre-commit run --all-files | |
- name: Test with pytest | |
working-directory: ${{ env.WORKING_DIR }} | |
run: poetry run pytest | |
pyo3-linting: | |
strategy: | |
fail-fast: false | |
matrix: | |
project_type: ["application", "lib"] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Just | |
uses: taiki-e/install-action@just | |
- name: Install Rust | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
- name: Cache Rust dependencies | |
uses: Swatinem/rust-cache@v2.7.5 | |
- name: Install uv | |
run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "${{ env.MIN_PYTHON_VERSION }}" | |
- name: Build package | |
run: cargo build --release | |
- name: Run creation | |
run: ./scripts/ci_run.sh ${{ matrix.project_type }} 3 | |
- name: Install Dependencies | |
working-directory: ${{ env.WORKING_DIR }} | |
run: | | |
uv lock | |
uv sync --frozen | |
uv run maturin build | |
- name: MyPy | |
working-directory: ${{ env.WORKING_DIR }} | |
run: just mypy | |
- name: ruff check | |
working-directory: ${{ env.WORKING_DIR }} | |
run: just ruff-check | |
- name: ruff format | |
working-directory: ${{ env.WORKING_DIR }} | |
run: uv run ruff format --check . | |
- name: Generated Project Clippy | |
working-directory: ${{ env.WORKING_DIR }} | |
run: just clippy | |
- name: Generated Project Fmt | |
working-directory: ${{ env.WORKING_DIR }} | |
run: just fmt | |
pyo3-python-test: | |
strategy: | |
fail-fast: false | |
matrix: | |
project_type: ["application", "lib"] | |
os: [ubuntu-latest, macos-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
- name: Cache Rust dependencies | |
uses: Swatinem/rust-cache@v2.7.5 | |
- name: Install uv | |
run: curl -LsSf https://astral.sh/uv/install.sh | sh | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.11" | |
- name: Build package | |
run: cargo build --release | |
- name: Run creation | |
run: ./scripts/ci_run.sh ${{ matrix.project_type }} 3 | |
- name: Install Dependencies | |
working-directory: ${{ env.WORKING_DIR }} | |
run: | | |
uv lock | |
uv sync --frozen | |
uv run maturin build | |
- name: Pre-commit check | |
working-directory: ${{ env.WORKING_DIR }} | |
run: | | |
uv run pre-commit install | |
git add . | |
uv run pre-commit run --all-files | |
- name: Test with pytest | |
working-directory: ${{ env.WORKING_DIR }} | |
run: uv run pytest | |
setuptools-linting: | |
strategy: | |
fail-fast: false | |
matrix: | |
project_type: ["application", "lib"] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
- name: Cache Rust dependencies | |
uses: Swatinem/rust-cache@v2.7.5 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "${{ env.MIN_PYTHON_VERSION }}" | |
- name: Build package | |
run: cargo build --release | |
- name: Run creation | |
run: | | |
./scripts/ci_run.sh ${{ matrix.project_type }} 4 | |
- name: Install Dependencies | |
working-directory: ${{ env.WORKING_DIR }} | |
run: | | |
python -m pip install -U pip | |
python -m pip install -r requirements-dev.txt | |
- name: MyPy | |
working-directory: ${{ env.WORKING_DIR }} | |
run: mypy . | |
- name: ruff check | |
working-directory: ${{ env.WORKING_DIR }} | |
run: ruff check . | |
- name: ruff format | |
working-directory: ${{ env.WORKING_DIR }} | |
run: ruff format --check . | |
setuptools-test: | |
strategy: | |
fail-fast: false | |
matrix: | |
project_type: ["application", "lib"] | |
os: [ubuntu-latest, macos-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
- name: Cache Rust dependencies | |
uses: Swatinem/rust-cache@v2.7.5 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "${{ env.MIN_PYTHON_VERSION }}" | |
- name: Build package | |
run: cargo build --release | |
- name: Run creation | |
run: | | |
./scripts/ci_run.sh ${{ matrix.project_type }} 4 | |
- name: Install Dependencies | |
working-directory: ${{ env.WORKING_DIR }} | |
run: | | |
python -m pip install -U pip | |
python -m pip install -r requirements-dev.txt | |
- name: Pre-commit check | |
working-directory: ${{ env.WORKING_DIR }} | |
run: | | |
pre-commit install | |
git add . | |
pre-commit run --all-files | |
- name: Test with pytest | |
working-directory: ${{ env.WORKING_DIR }} | |
if: matrix.project_type == 'application' | |
run: pytest | |
pixi-linting: | |
strategy: | |
fail-fast: false | |
matrix: | |
project_type: ["application", "lib"] | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
- name: Cache Rust dependencies | |
uses: Swatinem/rust-cache@v2.7.5 | |
- name: Build package | |
run: cargo build --release | |
- name: Run creation | |
run: | | |
./scripts/ci_run.sh ${{ matrix.project_type }} 5 | |
- name: Install Pixi | |
uses: prefix-dev/setup-pixi@v0.8.1 | |
with: | |
manifest-path: ${{ env.WORKING_DIR }}/pyproject.toml | |
pixi-version: v0.30.0 | |
- name: Set up Python | |
working-directory: ${{ env.WORKING_DIR }} | |
run: pixi add python=="${{ env.MIN_PYTHON_VERSION }}.*" | |
- name: MyPy | |
working-directory: ${{ env.WORKING_DIR }} | |
run: pixi run -e dev mypy . | |
- name: ruff check | |
working-directory: ${{ env.WORKING_DIR }} | |
run: pixi run -e dev ruff check . | |
- name: ruff format | |
working-directory: ${{ env.WORKING_DIR }} | |
run: pixi run -e dev ruff format --check . | |
pixi-test: | |
strategy: | |
fail-fast: false | |
matrix: | |
project_type: ["application", "lib"] | |
os: [ubuntu-latest, macos-latest] | |
runs-on: ${{ matrix.os }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Rust | |
run: | | |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y | |
- name: Cache Rust dependencies | |
uses: Swatinem/rust-cache@v2.7.5 | |
- name: Build package | |
run: cargo build --release | |
- name: Run creation | |
run: | | |
./scripts/ci_run.sh ${{ matrix.project_type }} 5 | |
- name: Install Pixi | |
uses: prefix-dev/setup-pixi@v0.8.1 | |
with: | |
manifest-path: ${{ env.WORKING_DIR }}/pyproject.toml | |
pixi-version: v0.30.0 | |
- name: Set up Python | |
working-directory: ${{ env.WORKING_DIR }} | |
run: pixi add python=="${{ env.MIN_PYTHON_VERSION }}.*" | |
- name: Pre-commit check | |
working-directory: ${{ env.WORKING_DIR }} | |
run: | | |
pixi run -e dev pre-commit install | |
git add . | |
pixi run -e dev pre-commit run --all-files | |
- name: Test with pytest | |
working-directory: ${{ env.WORKING_DIR }} | |
if: matrix.project_type == 'application' | |
run: pixi run -e dev pytest |