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
|`tests/**` only | Skipped | Run | Uses cached binaries via `quick_test_setup`|
396
+
|`tests/python/**`, `tests/integration/**` only | Skipped | Run | Uses cached binaries via `quick_test_setup`|
397
+
|`tests/unit/**` (any) | Run | Run | C++ sources compiled into `chain_test` — treated as source change |
397
398
|`libraries/**`, `programs/**`| Run | Run | Source code changes |
398
399
|`scripts/**`, `.gitlab-ci.yaml`| Run | Run | CI/scripts changes |
399
400
400
401
**How test-only optimization works:**
401
402
1.`detect_changes` job analyzes what files changed
402
-
2. If only `tests/**` changed (no source code):
403
+
2. If only non-compiled test files changed (e.g., `tests/python/**`, `tests/integration/**`) and no source code:
403
404
- Queries registry API to verify cached binaries exist
404
405
- If cache exists: sets `TESTS_ONLY=true`, skips builds
405
406
- If no cache: runs full build (self-healing fallback)
406
407
3.`quick_test_setup` fetches cached binaries when `TESTS_ONLY=true`
407
408
4. Test jobs run using the cached binaries
408
409
410
+
Note: changes under `tests/unit/**` are deliberately classified as source changes because those `.cpp` files are compiled into the `chain_test` binary — skipping the build would run tests against a stale binary.
411
+
409
412
**Override variables:**
410
413
-`FORCE_FULL_PIPELINE=true` - Run all jobs regardless of changes
411
414
-`QUICK_TEST=true` - Skip builds, use cached binaries (manual mode)
0 commit comments