Add combined coverage reporting

Python requires a lot of environments for effective testing. The python pipeline only formally supports testing for a single Python version on a single architecture.

  • Create two new jobs:
    • python-coverage-pytest: Run a parallel matrix of coverage run -m pytest for each supported platform and Python version.
      • Save coverage in a file named .coverage.<job-name>.<platform>.<python-version> or similar to prevent clobbering.
      • Save as an artifact.
    • python-coverage-combine: Run coverage combine and friends to compute final coverage results and render reports.
      • Use dependencies keyword so that only pytest results are included in coverage report.
  • Wire coverage reporting test into project CI/CD.
  • Update README.
Edited by Brett Weir
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information