name: Run unit tests on: workflow_dispatch: push: jobs: versions: runs-on: ubuntu-latest outputs: py-versions: ${{ steps.supported-versions.outputs.py-versions }} steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: '3.10' - name: Install dependencies run: | python -m pip install poetry poetry config virtualenvs.in-project true poetry install --with dev - id: supported-versions name: Get supported versions run: echo "py-versions=$(poetry run ./scripts/supported_py_versions.py)" >> "$GITHUB_OUTPUT" test: runs-on: ubuntu-latest needs: versions strategy: matrix: py-version: ${{ fromJson(needs.versions.outputs.py-versions) }} steps: - uses: actions/checkout@v4 - name: Set up Python uses: actions/setup-python@v5 with: python-version: "${{ matrix.py-version }}" - name: Install dependencies run: | python -m pip install poetry poetry config virtualenvs.in-project true # Only install main dependencies poetry install --with test - name: Run unit tests run: poetry run pytest