发布

  • [OPIK-4658] [BE] Parallelize backend CI tests into K matrix jobs (#5454)

    frostbyte_neo 发布于 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

    下载附件