WIP: Refactor inference modules #360
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: CI | |
on: | |
push: | |
branches: | |
- main | |
pull_request: | |
jobs: | |
lint: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: actions/setup-python@v5 | |
with: | |
python-version: "3.10" | |
cache: pip | |
- name: Run pre-commit | |
uses: pre-commit/[email protected] | |
tests: | |
strategy: | |
fail-fast: false | |
matrix: | |
os: | |
- ubuntu-latest | |
# - windows-latest Reason: get it running on ubuntu-latest first | |
# - macOS-latest Reason: get it running on ubuntu-latest first | |
python-version: ["3.10",] | |
name: Run tests | |
runs-on: ${{ matrix.os }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v4 | |
- name: Set up python | |
id: setup-python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install Poetry | |
uses: snok/install-poetry@v1 | |
with: | |
version: 1.8.3 | |
virtualenvs-create: true | |
virtualenvs-in-project: true | |
installer-parallel: true | |
- name: Verify poetry installation | |
run: poetry --version | |
- name: Install amici dependencies | |
run: | | |
sudo apt update | |
sudo apt install -y swig | |
sudo apt install -y libblas-dev | |
sudo apt install -y libatlas-base-dev | |
sudo apt install -y libhdf5-dev | |
- name: Load cached venv | |
id: cached-poetry-dependencies | |
uses: actions/cache@v4 | |
with: | |
path: .venv | |
key: venv-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }} | |
- name: Install dependencies | |
run: poetry install --no-interaction --with=dev --extras=sbml | |
if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true' | |
- name: Prepare cpp test | |
run: | | |
sudo apt install -y cmake | |
sudo apt install -y libeigen3-dev | |
sudo ln -s /usr/include/eigen3/Eigen /usr/include/Eigen | |
sudo apt install -y pybind11-dev | |
source $VENV | |
cd eulerpi/examples/cpp | |
mkdir build | |
cd build | |
cmake .. | |
make -j | |
- name: Run pytest | |
run: | | |
source $VENV | |
pytest -v | |
# TODO: coverage run creates segmentation fault on Github ci, but not locally. Debug it | |
# - name: Run coverage | |
# run: | | |
# source $VENV | |
# coverage run -m pytest -v | |
# coverage report |