You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ci: split tests into spark/notspark variants and aggregate coverage
Mirror the structure of the internal Azure DevOps pipeline
(.pipelines/build.yml in the internal fork) in the public GitHub
Actions workflow:
* New matrix axis 'test-type' with two values, 'notspark' and 'spark',
each with its own --ignore list and pytest -m filter:
- notspark: --ignore=test/autogen --ignore=test/spark -m 'not spark'
- spark: --ignore=test/autogen
--ignore=test/spark/test_internal_mlflow.py
-m 'spark'
This keeps test/spark/test_internal_mlflow.py (which depends on the
internal MLflow tracking server and unconditionally imports pyspark
at module level) from breaking collection in either variant.
* The 'spark' variant only runs where pyspark is installed by the
workflow today: ubuntu-latest with Python 3.11 / 3.12 / 3.13. It is
excluded for windows-latest and for Python 3.10.
* All Linux test jobs now run under 'coverage run' (not just the 3.11
job). Each Linux job combines its parallel-mode coverage shards into
one .coverage file and uploads it as a uniquely named artifact. A new
'coverage' aggregator job downloads every per-job artifact, runs
'coverage combine' across them, generates a single coverage.xml and
uploads that one combined report to Codecov. This replaces the
previous per-3.11-job Codecov upload.
* The 'Save dependencies' step is now gated to a single matrix entry
(ubuntu / 3.11 / notspark) on push to main so that parallel jobs do
not race on the unit-tests-installed-dependencies branch.
Coverage is intentionally not collected on Windows runners to avoid
Linux/Windows path mismatches when combining .coverage data files.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
0 commit comments