on: pull_request: branches: - main name: unittest jobs: unit: runs-on: ubuntu-latest strategy: matrix: python: ['3.7', '3.8', '3.9', '3.10', '3.11'] steps: - name: Checkout uses: actions/checkout@v3 - name: Setup Python uses: actions/setup-python@v4 with: python-version: ${{ matrix.python }} - name: Install nox run: | python -m pip install --upgrade setuptools pip wheel python -m pip install nox - name: Run unit tests env: COVERAGE_FILE: .coverage-${{ matrix.python }} run: | nox -s unit-${{ matrix.python }} - name: Upload coverage results uses: actions/upload-artifact@v3 with: name: coverage-artifacts path: .coverage-${{ matrix.python }} cover: runs-on: ubuntu-latest needs: - unit steps: - name: Checkout uses: actions/checkout@v3 - name: Setup Python uses: actions/setup-python@v4 with: python-version: "3.8" - name: Install coverage run: | python -m pip install --upgrade setuptools pip wheel python -m pip install coverage - name: Download coverage results uses: actions/download-artifact@v3 with: name: coverage-artifacts path: .coverage-results/ - name: Report coverage results run: | coverage combine .coverage-results/.coverage* coverage report --show-missing --fail-under=99