-
-
Notifications
You must be signed in to change notification settings - Fork 565
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'develop' into run-tests-together
- Loading branch information
Showing
172 changed files
with
881,710 additions
and
1,015 deletions.
There are no files selected for viewing
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
Validating CODEOWNERS rules …
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
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
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -6,7 +6,7 @@ on: | |
workflow_dispatch: | ||
pull_request: | ||
branches: | ||
- main | ||
- main | ||
|
||
# Run every day at 3 am UTC | ||
schedule: | ||
|
@@ -24,65 +24,50 @@ concurrency: | |
cancel-in-progress: true | ||
|
||
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: Check style | ||
run: | | ||
python -m pip install pre-commit | ||
pre-commit run -a | ||
build: | ||
needs: style | ||
run_unit_tests: | ||
name: Unit tests (${{ matrix.os }} / Python ${{ matrix.python-version }}) | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-latest, macos-12, windows-latest] | ||
os: [ubuntu-latest, macos-12, macos-14, windows-latest] | ||
python-version: ["3.9", "3.10", "3.11", "3.12"] | ||
# Include macOS M1 runners | ||
include: | ||
- os: macos-14 | ||
python-version: "3.10" | ||
- os: macos-14 | ||
python-version: "3.11" | ||
- os: macos-14 | ||
# Exclude Python 3.12 from unit tests since we run it in the coverage jobs | ||
exclude: | ||
- os: ubuntu-latest | ||
python-version: "3.12" | ||
|
||
steps: | ||
- name: Check out PyBaMM repository | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
|
||
- name: Install Linux system dependencies | ||
if: matrix.os == 'ubuntu-latest' | ||
run: | | ||
sudo apt-get update | ||
sudo apt install gfortran gcc libopenblas-dev graphviz pandoc | ||
sudo apt install texlive-full | ||
sudo apt-get install gfortran gcc graphviz pandoc libopenblas-dev texlive-latex-extra dvipng | ||
- name: Install macOS system dependencies | ||
if: matrix.os == 'macos-12' || matrix.os == 'macos-14' | ||
env: | ||
HOMEBREW_NO_INSTALL_CLEANUP: 1 | ||
HOMEBREW_NO_AUTO_UPDATE: 1 | ||
HOMEBREW_NO_COLOR: 1 | ||
# Speed up CI | ||
NONINTERACTIVE: 1 | ||
# sometimes gfortran cannot be found, so reinstall gcc just to be sure | ||
run: | | ||
brew analytics off | ||
brew install graphviz libomp | ||
brew reinstall gcc | ||
- name: Install Windows system dependencies | ||
if: matrix.os == 'windows-latest' | ||
run: choco install graphviz --version=2.38.0.20190211 | ||
run: choco install graphviz --version=8.0.5 | ||
|
||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
|
||
- name: Install nox | ||
run: python -m pip install nox | ||
|
@@ -92,43 +77,183 @@ jobs: | |
if: matrix.os != 'windows-latest' | ||
run: python -m nox -s pybamm-requires | ||
|
||
- name: Run unit tests for GNU/Linux, macOS, and Windows with all Python versions | ||
if: (matrix.os == 'ubuntu-latest' && matrix.python-version != 3.11) || (matrix.os != 'ubuntu-latest') | ||
- name: Run unit tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} | ||
run: python -m nox -s unit | ||
|
||
- name: Run unit tests for GNU/Linux with Python 3.11 and generate coverage report | ||
if: matrix.os == 'ubuntu-latest' && matrix.python-version == 3.11 | ||
check_coverage: | ||
runs-on: ubuntu-latest | ||
name: Coverage tests (ubuntu-latest / Python 3.12) | ||
|
||
steps: | ||
- name: Check out PyBaMM repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Install Linux system dependencies | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install gfortran gcc graphviz pandoc libopenblas-dev texlive-latex-extra dvipng | ||
- name: Set up Python 3.12 | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: 3.12 | ||
|
||
- name: Install nox | ||
run: python -m pip install nox | ||
|
||
- name: Install SuiteSparse and SUNDIALS on GNU/Linux | ||
timeout-minutes: 10 | ||
run: python -m nox -s pybamm-requires | ||
|
||
- name: Run unit tests for Ubuntu with Python 3.12 and generate coverage report | ||
run: python -m nox -s coverage | ||
|
||
- name: Upload coverage report | ||
if: matrix.os == 'ubuntu-latest' && matrix.python-version == 3.11 | ||
uses: codecov/[email protected] | ||
uses: codecov/[email protected] | ||
if: github.repository == 'pybamm-team/PyBaMM' | ||
with: | ||
token: ${{ secrets.CODECOV_TOKEN }} | ||
|
||
- name: Run integration tests | ||
run: python -m nox -s integration | ||
run_integration_tests: | ||
name: Integration tests (${{ matrix.os }} / Python ${{ matrix.python-version }}) | ||
runs-on: ${{ matrix.os }} | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
os: [ubuntu-latest, macos-12, macos-14, windows-latest] | ||
python-version: ["3.9", "3.10", "3.11", "3.12"] | ||
steps: | ||
- name: Check out PyBaMM repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Install docs dependencies and run doctests | ||
- name: Install Linux system dependencies | ||
if: matrix.os == 'ubuntu-latest' | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install gfortran gcc graphviz pandoc libopenblas-dev texlive-latex-extra dvipng | ||
- name: Install macOS system dependencies | ||
if: matrix.os == 'macos-12' || matrix.os == 'macos-14' | ||
env: | ||
HOMEBREW_NO_INSTALL_CLEANUP: 1 | ||
HOMEBREW_NO_AUTO_UPDATE: 1 | ||
HOMEBREW_NO_COLOR: 1 | ||
# Speed up CI | ||
NONINTERACTIVE: 1 | ||
# sometimes gfortran cannot be found, so reinstall gcc just to be sure | ||
run: | | ||
brew analytics off | ||
brew install graphviz | ||
brew reinstall gcc | ||
- name: Install Windows system dependencies | ||
if: matrix.os == 'windows-latest' | ||
run: choco install graphviz --version=8.0.5 | ||
|
||
- name: Set up Python ${{ matrix.python-version }} | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: ${{ matrix.python-version }} | ||
|
||
- name: Install nox | ||
run: python -m pip install nox | ||
|
||
- name: Install SuiteSparse and SUNDIALS on GNU/Linux and macOS | ||
timeout-minutes: 10 | ||
if: matrix.os != 'windows-latest' | ||
run: python -m nox -s pybamm-requires | ||
|
||
- name: Run integration tests for ${{ matrix.os }} with Python ${{ matrix.python-version }} | ||
run: python -m nox -s integration | ||
|
||
# Skips IDAKLU module compilation for speedups, which is already tested in other jobs. | ||
run_doctests: | ||
runs-on: ubuntu-latest | ||
name: Doctests (ubuntu-latest / Python 3.11) | ||
steps: | ||
- name: Check out PyBaMM repository | ||
uses: actions/checkout@v4 | ||
with: | ||
fetch-depth: 0 | ||
|
||
- name: Install Linux system dependencies | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install graphviz pandoc libopenblas-dev texlive-latex-extra dvipng | ||
- name: Set up Python 3.11 | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: 3.11 | ||
|
||
- name: Install nox | ||
run: python -m pip install nox | ||
|
||
- name: Install docs dependencies and run doctests for GNU/Linux | ||
run: python -m nox -s doctests | ||
|
||
- name: Check if the documentation can be built | ||
if: matrix.os == 'ubuntu-latest' | ||
- name: Check if the documentation can be built for GNU/Linux | ||
run: python -m nox -s docs | ||
|
||
- name: Install dev dependencies and run example tests | ||
if: matrix.os == 'ubuntu-latest' | ||
run_example_tests: | ||
runs-on: ubuntu-latest | ||
name: Example notebooks (ubuntu-latest / Python 3.12) | ||
|
||
steps: | ||
- name: Check out PyBaMM repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Install Linux system dependencies | ||
run: | | ||
sudo apt-get update | ||
sudo apt-get install gfortran gcc graphviz pandoc libopenblas-dev texlive-latex-extra dvipng | ||
- name: Set up Python 3.12 | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: 3.12 | ||
|
||
- name: Install nox | ||
run: python -m pip install nox | ||
|
||
- name: Install SuiteSparse and SUNDIALS on GNU/Linux | ||
timeout-minutes: 10 | ||
run: python -m nox -s pybamm-requires | ||
|
||
- name: Run example notebooks tests for GNU/Linux with Python 3.12 | ||
run: python -m nox -s examples | ||
|
||
- name: Run example scripts tests | ||
if: matrix.os == 'ubuntu-latest' | ||
run_scripts_tests: | ||
runs-on: ubuntu-latest | ||
name: Example scripts (ubuntu-latest / Python 3.12) | ||
|
||
steps: | ||
- name: Check out PyBaMM repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Install Linux system dependencies | ||
run: | | ||
sudo apt-get update | ||
sudo apt install gfortran gcc graphviz libopenblas-dev texlive-latex-extra dvipng | ||
- name: Set up Python 3.12 | ||
uses: actions/setup-python@v5 | ||
with: | ||
python-version: 3.12 | ||
|
||
- name: Install nox | ||
run: python -m pip install nox | ||
|
||
- name: Install SuiteSparse and SUNDIALS on GNU/Linux | ||
timeout-minutes: 10 | ||
run: python -m nox -s pybamm-requires | ||
|
||
- name: Run example scripts tests for GNU/Linux with Python 3.12 | ||
run: python -m nox -s scripts | ||
|
||
# M-series Mac Mini | ||
build-apple-mseries: | ||
if: github.repository_owner == 'pybamm-team' | ||
needs: style | ||
runs-on: [self-hosted, macOS, ARM64] | ||
env: | ||
GITHUB_PATH: ${PYENV_ROOT/bin:$PATH} | ||
|
@@ -139,7 +264,9 @@ jobs: | |
python-version: ["3.9", "3.10", "3.11", "3.12"] | ||
|
||
steps: | ||
- uses: actions/checkout@v4 | ||
- name: Check out PyBaMM repository | ||
uses: actions/checkout@v4 | ||
|
||
- name: Install Python & create virtualenv | ||
shell: bash | ||
run: | | ||
|
Oops, something went wrong.