mirror of
https://github.com/openobserve/openobserve.git
synced 2026-11-05 08:09:22 +00:00
## 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.
101 lines
2.2 KiB
JSON
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": []
|
|
}
|
|
]
|