Skip to content

Actor-Signal Interface #219

Actor-Signal Interface

Actor-Signal Interface #219

name: Build
# event that triggers workflow
# runs on every pull request
on:
pull_request:
branches:
- main
jobs:
integration-tests:
# specifies the os that the job will run on
runs-on: ubuntu-latest
strategy:
matrix:
python-version: [3.8, 3.12]
steps:
# downloads the repository code to the runner's file system for workflow access
- uses: actions/checkout@v4
# sets up python environment with specified versions
- name: Set up python ${{ matrix.python-version }}
id: setup-python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
# installs poetry and configures it
- name: Install poetry
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
# loads cached venv if it exists
- name: Load cached venv
id: cached-poetry-dependencies
uses: actions/cache@v3
with:
path: .venv
key: venv-${{ steps.setup-python.outputs.python-version }}
# build package
- name: Build package out of local poject
run: poetry build
# install package
- name: Install package
run: pip install dist/*.tar.gz
# Install dependencies needed for notebook execution
- name: Install notebook dependencies
run: pip install jupyter nbconvert matplotlib
# Execute example notebooks to verify that no errors are thrown
- name: Run Jupyter Notebooks
run: |
notebooks=("examples/signal_example.ipynb" "examples/basic_example.ipynb" "examples/controller_example.ipynb")
for notebook in "${notebooks[@]}"; do
jupyter nbconvert --to notebook --execute "$notebook"
done