Files
openobserve/tests/ui-testing/ci-matrix/ci_matrix_regression.json
T
Shrinath Rao d76c0a6bbb ci(playwright): single-source ALL shard matrices via ci-matrix/ manifests (#13606)
## Why
The OSS and ENT Playwright shard matrices (`run_files` per `testfolder`)
were hand-maintained inline in each `playwright.yml` and had to be
synced on every spec add — error-prone and drift-prone (ENT was even
missing `dashboard-favorites`). This makes the shard list a **single
source of truth** for **every** Playwright workflow.

## What (OSS side)
All matrices are generated at run time from JSON manifests in
`tests/ui-testing/ci-matrix/`:

- **`ci-matrix/ci_matrix.json`** — PR-gate base (24 shards). The only
place shared shards live.
- **`ci-matrix/ci_matrix_regression.json`** — regression base (10
shards); `RegressionSet/<Feature>` mapping now carried in
`actual_folder`.
- **`.github/scripts/build-ci-matrix.js`** — merges base (+ optional ENT
overlay) → GitHub matrix; validates uniqueness / no dup specs / no spec
both active+disabled. Reused by ENT from its OSS checkout.
- **`ci-matrix/README.md`** — manifest index + how to add/move/disable a
spec.
- Workflows `playwright.yml` + `playwright_regression.yml`: new
`generate_matrix` job → `strategy.matrix: fromJSON(...)`; `case` blocks
→ `${{ matrix.actual_folder }}`.

Disabling a spec (JSON has no `//`): move it into that shard's
`disabled: [{file, reason}]` array — never emitted (won't run), record
survives. Every shard ships a `"disabled": []` placeholder.

## Safety (verified)
- **OSS `playwright.yml` and `playwright_regression.yml` matrices are
byte-identical to before** — zero behavior change.
- Companion ENT PR (same branch slug
`test/playwright-matrix-single-source`) derives its matrices from these
manifests + overlays.

## Validate
Add the `e2e` label; confirm `generate_matrix` prints the shard count
and the `e2e /` jobs fan out.
2026-08-03 17:36:29 +00:00

101 lines
2.2 KiB
JSON

[
{
"testfolder": "Logs-Regression",
"actual_folder": "RegressionSet/Logs",
"browser": "chrome",
"run_files": [
"logs-regression.spec.js",
"logs-bugs.spec.js",
"logs-9754.spec.js",
"logs-9044-7354.spec.js"
],
"disabled": []
},
{
"testfolder": "Alerts-Regression",
"actual_folder": "RegressionSet/Alerts",
"browser": "chrome",
"run_files": [
"alerts-regression.spec.js",
"alerts-stream-switching.spec.js",
"alerts-bugs.spec.js"
],
"disabled": []
},
{
"testfolder": "Dashboard-Regression",
"actual_folder": "RegressionSet/Dashboards",
"browser": "chrome",
"run_files": [
"dashboard-regression.spec.js"
],
"disabled": []
},
{
"testfolder": "Streams-Regression",
"actual_folder": "RegressionSet/Streams",
"browser": "chrome",
"run_files": [
"streams-regression.spec.js"
],
"disabled": []
},
{
"testfolder": "Pipelines-Regression",
"actual_folder": "RegressionSet/Pipelines",
"browser": "chrome",
"run_files": [
"enrichment-regression.spec.js",
"pipeline-regression.spec.js"
],
"disabled": []
},
{
"testfolder": "Traces-Regression",
"actual_folder": "RegressionSet/Traces",
"browser": "chrome",
"run_files": [
"traces-regression.spec.js",
"traces-bugs.spec.js"
],
"disabled": []
},
{
"testfolder": "Metrics-Regression",
"actual_folder": "RegressionSet/Metrics",
"browser": "chrome",
"run_files": [
"metrics-regression.spec.js"
],
"disabled": []
},
{
"testfolder": "GeneralTests-Regression",
"actual_folder": "RegressionSet/General",
"browser": "chrome",
"run_files": [
"ui-regression.spec.js",
"landing-regression.spec.js"
],
"disabled": []
},
{
"testfolder": "DataSources-Regression",
"actual_folder": "RegressionSet/DataSources",
"browser": "chrome",
"run_files": [
"datasources-regression.spec.js"
],
"disabled": []
},
{
"testfolder": "Reports-Regression",
"actual_folder": "RegressionSet/Reports",
"browser": "chrome",
"run_files": [
"reports-regression-bugs.spec.js"
],
"disabled": []
}
]