-
[OPIK-4658] [BE] Parallelize backend CI tests into K matrix jobs (#5454)
发布于
2026-03-02 15:58:08 +00:00 - [OPIK-4658] [BE] Parallelize backend CI tests into 9 matrix jobs
Split the single sequential test job (~37 min) into 9 parallel CI jobs
using Maven profiles and GitHub Actions matrix strategy:- Unit Tests (no containers)
- Integration groups by entity: Traces, Datasets, Spans, Projects, Experiments
- Infrastructure tests (Redis, Cache, CORS, Health, BI)
- Two bundled groups for smaller entities
Expected wall-clock reduction: ~37 min -> ~15 min.
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
- [OPIK-4658] [BE] Replace Maven profiles with automatic test discovery
The Maven profile excludes were unreliable (17/65 leaked through).
Replace with a discover-tests job that:- Automatically classifies unit vs integration tests by grepping
for container/Dropwizard patterns in source files - Splits integration tests into 8 balanced groups using greedy
partitioning by line count - Passes test lists via -Dtest= (most reliable, no pom.xml changes)
- Zero maintenance when adding new test files
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
- [OPIK-4658] [BE] Bump integration test groups from 8 to 16
Doubles the number of parallel integration test groups to further
reduce wall-clock time by splitting heavy groups (like ExperimentsResourceTest)
across more runners.Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
- [OPIK-4658] [BE] Trigger backend tests on workflow file changes
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
- [OPIK-4658] [BE] Fix OptimizationsResourceTest missing MinIO container
The test relied on other test classes starting a MinIO container in the
same JVM. When tests are split into parallel groups, this implicit
dependency breaks. Add explicit MinIO container setup.Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
- [OPIK-4658] [BE] Refactor to dynamic matrix, eliminate duplication
Replace per-group outputs, matrix entries, and case statement with a
single JSON matrix built by discover-tests. Changing the number of
groups is now a one-line edit (NUM_GROUPS).Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
- [OPIK-4658] [BE] Add explicit permissions block to backend CI workflow
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
- [OPIK-4658] [BE] Add pull-requests:write permission for test report comments
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
- [OPIK-4658] [INFRA] Address PR review: extract script, fix patterns, tune timeouts
- Extract inline shell to .github/scripts/discover-backend-tests.sh
- Add *Tests.java to find pattern, remove redundant *E2eTest.java
- Reduce unit test timeout from 15 to 10 minutes
- Move timeouts to top of script as config variables
- Add script path to workflow triggers and sparse-checkout
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
- [OPIK-4658] [INFRA] Add debug logging to discovery script, make executable
- Add echo statements for classification counts, group assignments, and matrix shape
- Make script executable (chmod +x) and call directly instead of via bash
Co-Authored-By: Claude Opus 4.6 noreply@anthropic.com
Co-authored-by: Claude Opus 4.6 noreply@anthropic.com
下载附件