Skip to content

chore: update pre-commit hooks #549

chore: update pre-commit hooks

chore: update pre-commit hooks #549

Workflow file for this run

name: Test
on:
workflow_dispatch:
pull_request:
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ startsWith(github.ref, 'refs/pull/') }}
env:
FORCE_COLOR: "3"
jobs:
style:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
- name: Set up uv
uses: astral-sh/setup-uv@v7
with:
version: "latest"
enable-cache: true
cache-dependency-glob: "**/pyproject.toml"
- name: Check style
run: uvx pre-commit run -a
template_test:
needs: style
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-14, macos-15-intel, windows-latest]
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
name:
Template Generation/Project Tests (${{ matrix.os }} / Python ${{ matrix.python-version }})
steps:
- name: Checkout pybamm-cookie
uses: actions/checkout@v7
- name: Set up uv
uses: astral-sh/setup-uv@v7
with:
version: "latest"
python-version: ${{ matrix.python-version }}
activate-environment: true
enable-cache: true
cache-dependency-glob: "**/pyproject.toml"
- name: Install nox
run: uv tool install nox
- name: Set up Git
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
- name: Test template generation
run: nox -s template-tests --verbose
- name: Run coverage tests
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'
run: nox -s coverage --verbose
- name: Upload coverage report
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.13'
uses: codecov/codecov-action@v7.0.0
with:
token: ${{ secrets.CODECOV_TOKEN }}
- name: Install copier and jinja2_time
run: uv pip install copier jinja2_time
- name: Generate projects with Copier
run: |
copier copy . ../ --data project_name=pybamm-hatch-true --data project_slug=pybamm_hatch_true --data backend=hatch --data vcs=true --trust --defaults
copier copy . ../ --data project_name=pybamm-hatch-false --data project_slug=pybamm_hatch_false --data backend=hatch --data vcs=false --trust --defaults
copier copy . ../ --data project_name=pybamm-setuptools-true --data project_slug=pybamm_setuptools_true --data backend=setuptools --data vcs=true --trust --defaults
copier copy . ../ --data project_name=pybamm-setuptools-false --data project_slug=pybamm_setuptools_false --data backend=setuptools --data vcs=false --trust --defaults
- name: Run nox tests for pybamm-hatch-true
run: nox -s generated-project-tests --verbose
working-directory: ../pybamm-hatch-true
- name: Run nox tests for pybamm-hatch-false
run: nox -s generated-project-tests --verbose
working-directory: ../pybamm-hatch-false
- name: Run nox tests for pybamm-setuptools-true
run: nox -s generated-project-tests --verbose
working-directory: ../pybamm-setuptools-true
- name: Run nox tests for pybamm-setuptools-false
run: nox -s generated-project-tests --verbose
working-directory: ../pybamm-setuptools-false
run_doctests:
needs: style
runs-on: ubuntu-latest
name: Doctests (ubuntu-latest / Python 3.13)
steps:
- name: Check out pybamm-cookie repository
uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Set up uv
uses: astral-sh/setup-uv@v7
with:
version: "latest"
python-version: "3.13"
enable-cache: true
cache-dependency-glob: "**/pyproject.toml"
- name: Set up Git
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
- name: Check if the documentation can be built
run: uvx nox -s docs --verbose
run_generated_project_doctests:
needs: [template_test]
runs-on: ubuntu-latest
name: Generated Project Doctests (ubuntu-latest / Python 3.13)
steps:
- name: Check out pybamm-cookie repository
uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Set up uv
uses: astral-sh/setup-uv@v7
with:
version: "latest"
python-version: "3.13"
activate-environment: true
enable-cache: true
cache-dependency-glob: "**/pyproject.toml"
- name: Install dependencies
run: uv pip install copier jinja2_time
- name: Generate a template with default values
run: copier copy . . --trust --defaults
- name: Set up Git
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
- name: Check if the documentation can be built
working-directory: ./pybamm-example-project
run: |
git add .
git commit -am "initial commit"
uvx nox -s docs --verbose