feat(ci): run integration suites under an ES→OS migration phase (#36320)#36500
feat(ci): run integration suites under an ES→OS migration phase (#36320)#36500fabrizzio-dotCMS wants to merge 2 commits into
Conversation
Enable running the full integration battery under a chosen ES→OS migration phase, both locally and in CI. The opensearch-phase-suite Maven profile already exists (two clusters + DOT_FEATURE_FLAG_OPEN_SEARCH_PHASE); this wires it into the day-to-day tooling. - justfile: new `test-integration-phase-all <N>` iterates the MainSuite/Junit5 suites one at a time (forkCount=1) under a phase, yielding attributable per-suite pass/fail for triage; document that `test-integration-phase <N>` (no test) already runs the full battery in a single JVM. - cicd_comp_test-phase.yml: new `opensearch_phase` input; setup-matrix appends `-Dopensearch.phase=<N>` to integration MainSuite/Junit5 entries only (never the OpenSearch Upgrade Suite, which already drives OS). Passed via env to the github-script to avoid injection. Empty/'0' = off; only 1/2/3 activate. - cicd_1-pr.yml: derive the phase from a `PR: opensearch phase <N>` label so a PR can run the whole suite under a phase on demand. - cicd_4-nightly.yml: workflow_dispatch `opensearch_phase` choice input; phase 1/2/3 skips deployment (test-only run). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Claude finished @fabrizzio-dotCMS's task in 3m 30s —— View job Code Review — ES→OS phased integration suiteI reviewed the diff against The core logic is sound: the matrix generator appends A few things worth raising — none are code bugs, but two affect how the feature actually behaves in CI: New Issues
Notes (non-blocking)
No blocking issues. The two Mediums are behavioral/documentation clarifications, not correctness bugs. |
Proposed Changes
Enables running the full integration battery under a chosen ES→OS migration phase, both locally and in CI. Contributes to #36320 ("Make it possible to run MainSuite Tests in all 3 phases").
The
opensearch-phase-suiteMaven profile already existed (two clusters ES @9207 + OS 3.x @9201, setsDOT_FEATURE_FLAG_OPEN_SEARCH_PHASE, inherits the base suite includes). This PR wires that capability into the day-to-day tooling — it does not change any product code, and default (phase 0) behavior is untouched.Local (
justfile)test-integration-phase-all <N>— iterates the MainSuite/Junit5 suites one at a time (forkCount=1) under phase<N>, giving an attributable per-suite pass/fail plus a summary (non-zero exit if any suite fails). This is the triage tool for de-ES-ifying the ITs.test-integration-phase <N>(no test arg) already runs the full battery in a single JVM.CI
cicd_comp_test-phase.yml: newopensearch_phaseinput.setup-matrixappends-Dopensearch.phase=<N>to the integration MainSuite/Junit5 matrix entries only — never the OpenSearch Upgrade Suite (it already drives OS via-Dopensearch.upgrade.test). The value is passed viaenv(not interpolated into the github-script) to avoid script injection. Empty/0= off; only1/2/3activate a phase.cicd_1-pr.yml: a PR carrying aPR: opensearch phase <N>label runs the integration battery under that phase (mirrors the existingPR: docker imagelabel pattern). No label → phase 0 (current behavior).cicd_4-nightly.yml:workflow_dispatchgains anopensearch_phasechoice input for on-demand runs; phases1/2/3skip the deployment job (test-only — never deploy a build that ran under a non-default phase).Checklist
test-matrix.yml(phase applied to the 6 MainSuite/Junit5 entries, skipped for the Upgrade Suite, no-op when off).just test-integration-phase 1 ContentletIndexAPIImplTestbrings up both clusters, bootstraps OS underPHASE_1_DUAL_WRITE_ES_READS, and runs the suite.Notes for reviewers
The
PR: opensearch phase <N>PR label must exist in the repo labels for the label trigger to be selectable.Related: #36320, PR #36268 / #36266 (added the
opensearch-phase-suiteprofile).