name: Coverage on: push: branches: - master - 3.9 - 3.8 - 3.7 paths-ignore: - 'Doc/**' - 'Misc/**' #pull_request: # branches: # - master # - 3.9 # - 3.8 # - 3.7 # paths-ignore: # - 'Doc/**' # - 'Misc/**' jobs: coverage_ubuntu: name: 'Ubuntu (Coverage)' runs-on: ubuntu-latest env: OPENSSL_VER: 1.1.1f steps: - uses: actions/checkout@v2 - name: Install Dependencies run: sudo ./.github/workflows/posix-deps-apt.sh - name: 'Restore OpenSSL build' id: cache-openssl uses: actions/cache@v2.1.2 with: path: ./multissl/openssl/${{ env.OPENSSL_VER }} key: ${{ runner.os }}-multissl-openssl-${{ env.OPENSSL_VER }} - name: Install OpenSSL if: steps.cache-openssl.outputs.cache-hit != 'true' run: python3 Tools/ssl/multissltests.py --steps=library --base-directory $PWD/multissl --openssl $OPENSSL_VER --system Linux - name: Configure CPython run: ./configure --with-openssl=$PWD/multissl/openssl/$OPENSSL_VER - name: Build CPython run: make -j4 - name: Display build info run: make pythoninfo - name: 'Coverage Preparation' run: | ./python -m venv .venv source ./.venv/bin/activate python -m pip install -U coverage python -m pip install -r Misc/requirements-test.txt python -m test.pythoninfo export PYTHONPATH=`find .venv -name fullcoverage` - name: 'Tests with coverage' run: > source ./.venv/bin/activate && xvfb-run python -m coverage run --branch --pylib -m test --fail-env-changed -uall,-cpu -x test_multiprocessing_fork -x test_multiprocessing_forkserver -x test_multiprocessing_spawn -x test_concurrent_futures || true - name: 'Publish code coverage results' run: | export PYTHONPATH= source ./.venv/bin/activate bash <(curl -s https://codecov.io/bash) -y .github/codecov.yml env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }} c_coverage_ubuntu: name: 'Ubuntu (C Coverage)' runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - name: Install Dependencies run: sudo ./.github/workflows/posix-deps-apt.sh - name: Configure CPython run: ./configure - name: 'Build CPython and measure coverage' run: xvfb-run make -j4 coverage-report - name: 'Publish code coverage results' if: always() run: | make pythoninfo bash <(curl -s https://codecov.io/bash) -y .github/codecov.yml env: CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}