name: Run unit tests on: workflow_dispatch: push: branches: [main] pull_request: jobs: versions: runs-on: ubuntu-latest outputs: py-versions: ${{ steps.supported-versions.outputs.py-versions }} steps: - uses: actions/checkout@v4 - uses: './.github/actions/setup-project' - id: supported-versions name: Get supported versions run: | set -e echo "py-versions=$(uv 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 - uses: './.github/actions/setup-project' with: python-version: ${{ matrix.py-version }} - name: Run unit tests run: uv run pytest results: runs-on: ubuntu-latest needs: test steps: - run: | result="${{ needs.test.result }}" if [[ $result == "success" || $result == "skipped" ]]; then exit 0 else exit 1 fi