Commit 35abe8b
committed
ci: isolate corrupt-cache reproduction from default test shards
The ``corrupt_cache_repro`` end-to-end test drives live
conda-forge in two independent solves (corrupt-cache vs.
clean-control) and runs ~2-5 minutes per parametrization. Putting
it in the default unit-test collection would dominate every
contributor's local pytest run and inflate every PR's CI wall
clock for negligible additional confidence on most changes.
Three pieces of CI plumbing:
1. ``pyproject.toml`` declares the ``corrupt_cache_repro`` marker
and adds ``-m "not corrupt_cache_repro"`` to the default
``addopts``. ``pytest`` invocations from contributors,
editors, and the unit-test CI shards exclude the e2e by
default. Local opt-in is ``pytest -m corrupt_cache_repro``;
bypass-everything is ``pytest -m ""``.
2. ``.github/workflows/test.yml`` adds a dedicated
``run-corrupt-cache-repro`` step that runs once per
``(os, py-version)`` on shard 1 / linux-64 only -- the
fixture is a linux-64 cache snapshot from the PR conda#862
harness, so other platforms have nothing to test against.
The step uses ``-o "addopts=-rsx --verbose"`` to clear the
project-default exclusion and ``-m corrupt_cache_repro`` to
opt back into just the e2e parametrizations.
3. The CI step targets ``tests/e2e/test_corrupt_repodata_repro.py``
directly so a future test author who marks an unrelated test
with ``corrupt_cache_repro`` doesn't accidentally end up in
the heavy CI lane.
Behavior of the unit + component tests is unchanged.
Verification: the new shard appears in the workflow matrix; the
default shards now deselect the marker via `-m 'not
corrupt_cache_repro'`. Confirm the partition is total by checking
that both invocations together select every test:
`pytest --collect-only -q -m corrupt_cache_repro` plus the
inverse should sum to `pytest --collect-only -q`.1 parent 89a606c commit 35abe8b
2 files changed
Lines changed: 40 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
142 | 142 | | |
143 | 143 | | |
144 | 144 | | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
145 | 150 | | |
146 | 151 | | |
147 | 152 | | |
| |||
151 | 156 | | |
152 | 157 | | |
153 | 158 | | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
154 | 176 | | |
155 | 177 | | |
156 | 178 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
142 | 142 | | |
143 | 143 | | |
144 | 144 | | |
145 | | - | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
146 | 153 | | |
147 | 154 | | |
148 | 155 | | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
149 | 166 | | |
150 | 167 | | |
151 | 168 | | |
| |||
0 commit comments