Skip to content

Bump version for release #1287

Bump version for release

Bump version for release #1287

Workflow file for this run

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