Skip to content

CI

CI #33

Workflow file for this run

name: CI
# trigger
on:
push:
branches:
- main
- develop
pull_request:
workflow_dispatch:
schedule:
# run Monday and Thursday at 03:42 UTC
- cron: '42 3 * * MON,THU'
env:
# use all available cores for compiling amici models
AMICI_PARALLEL_COMPILE: ""
# non-interactive backend for matplotlib
MPLBACKEND: "agg"
# jobs
jobs:
base:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.9', '3.11']
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Prepare python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache
uses: actions/cache@v3
with:
path: |
~/.cache/pip
.tox/
key: ${{ runner.os }}-${{ matrix.python-version }}-ci-${{ github.job }}
- name: Install dependencies
run: .github/workflows/install_deps.sh amici
- name: Run tests
timeout-minutes: 30
run: tox -e base
env:
CC: clang
CXX: clang++
- name: Coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
mac:
runs-on: macos-latest
strategy:
matrix:
python-version: ['3.11']
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Prepare python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache
uses: actions/cache@v3
with:
path: |
~/.cache/pip
.tox/
key: ${{ runner.os }}-${{ matrix.python-version }}-ci
- name: Install dependencies
run: .github/workflows/install_deps.sh amici
- name: Run tests
timeout-minutes: 30
run: tox -e base
- name: Coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
windows:
runs-on: windows-latest
strategy:
matrix:
python-version: ['3.11']
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Prepare python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache
uses: actions/cache@v3
with:
path: |
~\AppData\Local\pip\Cache
.tox
key: ${{ runner.os }}-${{ matrix.python-version }}-ci
- name: Install dependencies
run: |
pip install --upgrade pip
pip install tox
- name: Run tests
shell: bash
timeout-minutes: 10
run: tox -e windows
petab:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.9', '3.11']
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Prepare python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache
uses: actions/cache@v3
with:
path: |
~/.cache/pip
.tox/
key: ${{ runner.os }}-${{ matrix.python-version }}-ci-${{ github.job }}
- name: Install dependencies
run: .github/workflows/install_deps.sh amici pysb
- name: Run tests
timeout-minutes: 35
run: tox -e petab
env:
CC: clang
CXX: clang++
- name: Coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
julia:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.9', '3.11']
# needed to allow julia-actions/cache to delete old caches that it has created
permissions:
actions: write
contents: read
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Prepare python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache tox and cache
uses: actions/cache@v3
with:
path: |
~/.cache/pip
.tox/
key: ${{ runner.os }}-${{ matrix.python-version }}-ci-${{ github.job }}
- name: Install julia
uses: julia-actions/setup-julia@v1
with:
version: 1.9
- name: Cache Julia
uses: julia-actions/cache@v1
- name: Install dependencies
run: .github/workflows/install_deps.sh
- name: Install PEtabJL dependencies
run: >
julia -e 'using Pkg; Pkg.add(Pkg.PackageSpec(;name="PEtab", version="2.5.0"));
Pkg.add("OrdinaryDiffEq"); Pkg.add("Sundials")'
- name: Run tests
timeout-minutes: 25
run: tox -e julia
- name: Coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
optimize:
runs-on: ubuntu-latest
strategy:
matrix:
# ipopt does not work on 3.9 (https://github.com/mechmotum/cyipopt/issues/225)
python-version: ['3.11']
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Prepare python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache
uses: actions/cache@v3
with:
path: |
~/.cache/pip
.tox/
key: ${{ runner.os }}-${{ matrix.python-version }}-ci-${{ github.job }}
- name: Install dependencies
run: .github/workflows/install_deps.sh ipopt
- name: Run tests
timeout-minutes: 25
run: tox -e optimize
- name: Coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
hierarchical:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.9', '3.11']
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Prepare python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache
uses: actions/cache@v3
with:
path: |
~/.cache/pip
.tox/
key: ${{ runner.os }}-${{ matrix.python-version }}-ci-${{ github.job }}
- name: Install dependencies
run: .github/workflows/install_deps.sh amici
- name: Run tests
timeout-minutes: 20
run: tox -e hierarchical
- name: Coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
select:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.9', '3.11']
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Prepare python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache
uses: actions/cache@v3
with:
path: |
~/.cache/pip
.tox/
key: ${{ runner.os }}-${{ matrix.python-version }}-ci-${{ github.job }}
- name: Install dependencies
run: .github/workflows/install_deps.sh amici
- name: Run tests
timeout-minutes: 20
run: tox -e select
- name: Coverage
uses: codecov/codecov-action@v3
with:
token: ${{ secrets.CODECOV_TOKEN }}
file: ./coverage.xml
quality:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.11']
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Prepare python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache
uses: actions/cache@v3
with:
path: |
~/.cache/pip
.tox/
key: ${{ runner.os }}-${{ matrix.python-version }}-ci-${{ github.job }}
- name: Install dependencies
run: pip install tox pre-commit
- name: Check repository size
run: tox -e size
- name: Run pre-commit hooks
run: pre-commit run --all-files
docs:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.11']
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Prepare python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache
uses: actions/cache@v3
with:
path: |
~/.cache/pip
.tox/
key: ${{ runner.os }}-${{ matrix.python-version }}-ci-${{ github.job }}
- name: Install dependencies
run: .github/workflows/install_deps.sh doc amici
- name: Validate CITATION.cff
run: pip install cffconvert && cffconvert --validate
- name: Build doc
timeout-minutes: 30
run: tox -e doc
notebooks1:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.9']
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Prepare python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache
uses: actions/cache@v3
with:
path: |
~/.cache/pip
.tox/
key: ${{ runner.os }}-${{ matrix.python-version }}-ci-${{ github.job }}
- name: Install dependencies
run: .github/workflows/install_deps.sh amici ipopt
- name: Run notebooks 1
timeout-minutes: 20
run: tox -e notebooks1
notebooks2:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ['3.9']
steps:
- name: Check out repository
uses: actions/checkout@v3
- name: Prepare python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
- name: Cache
uses: actions/cache@v3
with:
path: |
~/.cache/pip
.tox/
key: ${{ runner.os }}-${{ matrix.python-version }}-ci-${{ github.job }}
- name: Install dependencies
run: .github/workflows/install_deps.sh amici
- name: Run notebooks 2
timeout-minutes: 20
run: tox -e notebooks2