name: test on: workflow_dispatch: push: branches: - main pull_request: branches: - "**" paths-ignore: - "docs/**" concurrency: group: build-test-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: test: name: "Unit and Integration Tests" runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Python id: setup_python uses: actions/setup-python@v4 with: python-version: '3.10' - name: Cache virtual environment uses: actions/cache@v3 with: # We are hashing requirements-dev.txt and requirements-extra.txt which # contain all dependencies needed to run the tests and examples. key: venv-${{ runner.os }}-${{ steps.setup_python.outputs.python-version}}-${{ hashFiles('linux-py3.10-requirements.txt') }}-${{ hashFiles('dev-requirements.txt') }} path: .venv - name: Install system packages run: sudo apt-get install -y portaudio19-dev - name: Setup virtual environment run: | python -m venv .venv - name: Install basic Python dependencies run: | source .venv/bin/activate python -m pip install --upgrade pip pip install -r linux-py3.10-requirements.txt -r dev-requirements.txt - name: Test with pytest run: | source .venv/bin/activate pytest --doctest-modules --ignore-glob="*to_be_updated*" src tests