Added basic setuptools
config in template and tests for build-backends
#150
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: Test template and generated project | |
on: | |
workflow_dispatch: | |
pull_request: | |
push: | |
branches: | |
- main | |
jobs: | |
style: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- name: Set up uv | |
uses: yezz123/setup-uv@v4 | |
with: | |
uv-venv: ".venv" | |
- name: Check style | |
run: | | |
uv pip install pre-commit | |
pre-commit run -a | |
template_test: | |
needs: style | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-13, macos-14, windows-latest] | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
name: | |
Template Generation/Project Tests (${{ matrix.os }} / Python ${{ matrix.python-version }}) | |
steps: | |
- name: Checkout pybamm-cookiecutter | |
uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
id: setup-python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Set up uv | |
uses: yezz123/setup-uv@v4 | |
with: | |
uv-venv: ".venv" | |
- name: Install nox | |
run: uv pip install nox[uv] | |
- name: Test template generation | |
run: nox -s template-tests | |
- name: Test project | |
run: nox -s project-tests | |
- name: Run coverage tests | |
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' | |
run: nox -s coverage | |
- name: Upload coverage report | |
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.12' | |
uses: codecov/[email protected] | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
run_doctests: | |
needs: style | |
runs-on: ubuntu-latest | |
name: Doctests (ubuntu-latest / Python 3.12) | |
steps: | |
- name: Check out pybamm-cookiecutter repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- name: Set up uv | |
uses: yezz123/setup-uv@v4 | |
with: | |
uv-venv: ".venv" | |
- name: Install nox | |
run: uv pip install nox[uv] | |
- name: Check if the documentation can be built | |
run: nox -s docs | |
generated_project_tests: | |
needs: [template_test] | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-latest, macos-13, macos-14, windows-latest] | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | |
name: | |
Generated Project Tests (${{ matrix.os }} / Python ${{ matrix.python-version }}) | |
steps: | |
- name: Checkout pybamm-cookiecutter | |
uses: actions/checkout@v4 | |
- name: Set up Python ${{ matrix.python-version }} | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install copier and jinja2_time | |
run: python -m pip install copier jinja2_time | |
- name: Generate projects with different build backends and vcs | |
run: | | |
copier copy . ../pybamm-example-project --trust --defaults | |
copier copy . ../pybamm-with-setuptools --data project_name=pybamm-with-setuptools --data project_slug=pybamm_with_setuptools --data backend=setuptools --trust --defaults | |
copier copy . ../pybamm-with-setuptools-scm --data project_name=pybamm-with-setuptools-scm --data project_slug=pybamm_with_setuptools_scm --data backend=setuptools --data vcs=true --trust --defaults | |
copier copy . ../pybamm-with-hatch-vcs --data project_name=pybamm-with-hatch-vcs --data project_slug=pybamm_with_hatch_vcs --data backend=hatch --data vcs=true --trust --defaults | |
- name: Set up uv | |
uses: yezz123/setup-uv@v4 | |
with: | |
uv-venv: ".venv" | |
- name: Install nox | |
uses: wntrblm/[email protected] | |
- name: Test the generated project with default hatch build backend and no vcs | |
working-directory: ../pybamm-example-project | |
run: nox -s generated-project-tests | |
- name: Test the generated project with setuptools build backend and no scm | |
working-directory: ../pybamm-with-setuptools | |
run: nox -s generated-project-tests | |
- name: Test the generated project with setuptools build backend and scm | |
working-directory: ../pybamm-with-setuptools-scm | |
run: nox -s generated-project-tests | |
- name: Test the generated project with hatch build backend and vcs | |
working-directory: ../pybamm-with-hatch-vcs | |
run: nox -s generated-project-tests |