name: "Unit tests" on: pull_request: branches: - v1 jobs: run-unittests: name: unit${{ matrix.option }}-${{ matrix.python }} runs-on: ubuntu-latest strategy: matrix: option: ["", "_grpc_gcp", "_wo_grpc"] python: - "3.7" - "3.8" - "3.9" - "3.10" exclude: - option: "_wo_grpc" python: 3.7 - option: "_wo_grpc" python: 3.8 - option: "_wo_grpc" python: 3.9 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.option }}-${{matrix.python }} run: | nox -s unit${{ matrix.option }}-${{ matrix.python }} - name: Upload coverage results uses: actions/upload-artifact@v3 with: name: coverage-artifacts path: .coverage${{ matrix.option }}-${{ matrix.python }} report-coverage: name: cover runs-on: ubuntu-latest needs: - run-unittests steps: - name: Checkout uses: actions/checkout@v3 - name: Setup Python uses: actions/setup-python@v4 with: python-version: "3.10" - 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=100