# Licensed under the Apache License: http://www.apache.org/licenses/LICENSE-2.0 # For details: https://github.com/nedbat/coveragepy/blob/master/NOTICE.txt name: "Coverage" on: push: branches: ["master"] pull_request: workflow_dispatch: defaults: run: shell: bash jobs: coverage: name: "Python ${{ matrix.python-version }}" runs-on: ubuntu-latest strategy: matrix: python-version: - "2.7" - "3.5" - "3.9" - "pypy3" fail-fast: false steps: - name: "Check out the repo" uses: "actions/checkout@v2" - name: "Set up Python" uses: "actions/setup-python@v2" with: python-version: "${{ matrix.python-version }}" - name: "Install dependencies" run: | set -xe python -VV python -m site python -m pip install -r requirements/ci.pip python -m pip install -c requirements/pins.pip tox-gh-actions - name: "Run tox coverage for ${{ matrix.python-version }}" env: COVERAGE_COVERAGE: "yes" run: | set -xe python -m tox python -m igor combine_html mv .metacov .coverage.${{ matrix.python-version }} - name: "Upload coverage data" uses: actions/upload-artifact@v2 with: name: metacov path: .coverage.* combine: name: "Combine coverage data" needs: coverage runs-on: ubuntu-latest steps: - name: "Check out the repo" uses: "actions/checkout@v2" - name: "Set up Python" uses: "actions/setup-python@v2" with: python-version: "3.9" - name: "Install dependencies" run: | set -xe python -VV python -m site python -m pip install -r requirements/ci.pip python setup.py --quiet clean develop python igor.py zip_mods install_egg - name: "Download coverage data" uses: actions/download-artifact@v2 with: name: metacov - name: "Combine and report" run: | set -xe coverage combine coverage xml - name: "Upload to codecov" uses: codecov/codecov-action@v1 with: file: coverage.xml