chore(e2e): balance out shard allocation for reduce timing#29602
Merged
Conversation
Contributor
❌ PR checklist incompleteThis PR cannot be merged until the following are addressed on its linked issue:
The fields live on the linked issue in the Shipping project (open the issue → right sidebar → Projects). After you set them, re-run this check (or push a commit) — issue/project changes do not re-trigger it automatically. Maintainers can bypass this check by adding the |
ShaileshParmar11
previously approved these changes
Jun 30, 2026
Contributor
🟡 Playwright Results — all passed (2 flaky)✅ 142 passed · ❌ 0 failed · 🟡 2 flaky · ⏭️ 7 skipped
🟡 2 flaky test(s) (passed on retry)
How to debug locally# Download playwright-test-results-<shard> artifact and unzip
npx playwright show-trace path/to/trace.zip # view trace |
ShaileshParmar11
approved these changes
Jun 30, 2026
Code Review ✅ ApprovedRebalances Playwright shard allocation to optimize test execution time. No issues found. OptionsDisplay: compact → Showing less information. Comment with these commands to change:
Was this helpful? React with 👍 / 👎 | Gitar |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Describe your changes:
Fixes #
I worked on ... because ...
Type of change:
High-level design:
N/A — small change.
Tests:
Use cases covered
Unit tests
Backend integration tests
Ingestion integration tests
Playwright (UI) tests
Manual testing performed
UI screen recording / screenshots:
Not applicable.
Checklist:
Fixes <issue-number>: <short explanation>Fixes #<issue-number>above.Greptile Summary
This PR rebalances E2E test shard allocation by moving several Playwright test suites from the
chromiumproject to theBasicproject via the@basictag (PLAYWRIGHT_BASIC_TEST_TAG_OBJ). The change affects 11 spec files spanning Lineage, Glossary, Login, ExploreTree, and SubDomain tests.@basictag import and the tag is attached to their top-leveltest.describe(or individualtest) calls.LineageSettings.spec.tsandLineageNodePagination.spec.tsare also reformatted from flat-style to parenthesised callback style to accommodate the tag parameter.LineageInteraction.spec.ts,PlatformLineage.spec.ts, andLineageControls.spec.ts— havebeforeAllhooks that consumeEntityDataClass.user1/domain1.responseData.id. Because theBasicproject only depends onsetup(notentity-data-setup), those fields areundefinedat runtime, causing API errors that break every test in the affected suites under theBasicproject.Confidence Score: 4/5
Safe to merge for 8 of 11 files; the three Lineage files (LineageInteraction, PlatformLineage, LineageControls) will have their beforeAll hooks fail when run under the Basic project.
Three spec files patch entities using EntityDataClass.user1/domain1.responseData.id inside their beforeAll hooks, but the Basic project that now runs their @basic-tagged tests only depends on setup, not entity-data-setup. Those IDs are undefined at that point, so every test in the affected suites will fail at setup time in CI.
LineageInteraction.spec.ts, PlatformLineage.spec.ts, and LineageControls.spec.ts — all three have beforeAll hooks that read from EntityDataClass before entity-data-setup has populated it.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD setup["setup\n(auth.setup.ts)"] eds["entity-data-setup\n(entity-data.setup.ts)"] chromium["chromium project\ngrepInvert: @basic\ndeps: setup + entity-data-setup"] basic["Basic project\ngrep: @basic\ndeps: setup ONLY"] setup --> eds setup --> basic eds --> chromium lc["LineageControls.spec.ts\nbeforeAll → EntityDataClass.user1/domain1.id"] li["LineageInteraction.spec.ts\nbeforeAll → EntityDataClass.user1/domain1.id"] pl["PlatformLineage.spec.ts\nbeforeAll → EntityDataClass.domain1.id"] basic -->|"runs @basic tests"| lc basic -->|"runs @basic tests"| li basic -->|"runs @basic tests"| pl lc -->|"undefined id → API error"| fail["❌ beforeAll fails\nAll tests broken"] li -->|"undefined id → API error"| fail pl -->|"undefined id → API error"| fail eds -.->|"NOT a dependency\nof Basic"| basic%%{init: {'theme': 'base', 'themeVariables': {"darkMode": true, "background": "#0d1117", "primaryColor": "#21262d", "primaryTextColor": "#e6edf3", "primaryBorderColor": "#8b949e", "lineColor": "#8b949e", "textColor": "#e6edf3", "edgeLabelBackground": "#161b22", "actorBkg": "#21262d", "actorBorder": "#8b949e", "actorTextColor": "#e6edf3", "actorLineColor": "#8b949e", "signalColor": "#8b949e", "signalTextColor": "#e6edf3", "noteBkgColor": "#373320", "noteBorderColor": "#d4a72c", "noteTextColor": "#f0e6c0", "labelBoxBkgColor": "#21262d", "labelBoxBorderColor": "#8b949e", "labelTextColor": "#e6edf3", "loopTextColor": "#e6edf3", "activationBkgColor": "#30363d", "activationBorderColor": "#8b949e"}}}%% flowchart TD setup["setup\n(auth.setup.ts)"] eds["entity-data-setup\n(entity-data.setup.ts)"] chromium["chromium project\ngrepInvert: @basic\ndeps: setup + entity-data-setup"] basic["Basic project\ngrep: @basic\ndeps: setup ONLY"] setup --> eds setup --> basic eds --> chromium lc["LineageControls.spec.ts\nbeforeAll → EntityDataClass.user1/domain1.id"] li["LineageInteraction.spec.ts\nbeforeAll → EntityDataClass.user1/domain1.id"] pl["PlatformLineage.spec.ts\nbeforeAll → EntityDataClass.domain1.id"] basic -->|"runs @basic tests"| lc basic -->|"runs @basic tests"| li basic -->|"runs @basic tests"| pl lc -->|"undefined id → API error"| fail["❌ beforeAll fails\nAll tests broken"] li -->|"undefined id → API error"| fail pl -->|"undefined id → API error"| fail eds -.->|"NOT a dependency\nof Basic"| basicComments Outside Diff (2)
openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Lineage/LineageControls.spec.ts, line 40-78 (link)@basictag conflicts with EntityDataClass dependencyThe
beforeAllon line 57–70 patches the topic withEntityDataClass.user1.responseData.idandEntityDataClass.domain1.responseData.id. Those values are populated byentity-data-setup, but theBasicproject only declaresdependencies: ['setup']— it does not listentity-data-setupas a dependency. IfBasicstarts (or runs in a separate shard) beforeentity-data-setuphas writtenentity-response-data.json,loadResponseData()silently skips, leaving bothresponseDataproperties as empty objects ({}), and the PATCH request will sendid: undefined. This would cause an API error that fails the sharedbeforeAll, breaking every test in this file when run under theBasicproject.openmetadata-ui/src/main/resources/ui/playwright/e2e/Pages/Lineage/LineageInteraction.spec.ts, line 48-79 (link)EntityDataClassused in@basic-tagged suite withoutentity-data-setupdependencyThe
beforeAllinsidetest.describe('Lineage Interactions', PLAYWRIGHT_BASIC_TEST_TAG_OBJ, ...)patches the topic withEntityDataClass.user1.responseData.id(line 68) andEntityDataClass.domain1.responseData.id(line 76). TheBasicproject that picks up@basictests declaresdependencies: ['setup']only — it does not listentity-data-setup. Whenentity-data.setup.tshas not run,EntityDataClass.user1.responseDataandEntityDataClass.domain1.responseDataare both{} as ResponseDataType, so.idisundefined. The PATCH request will therefore sendid: undefined, causing an API error that breaks the entirebeforeAlland fails every test in this describe block underBasic.The same pattern — a
beforeAllconsumingEntityDataClasswhile the file's suites carry@basic— also exists inPlatformLineage.spec.ts(line 48, patchingdomain1.responseData.id) and was previously noted inLineageControls.spec.ts. The fix is either to addentity-data-setupto theBasicproject'sdependencies, or to fetch the user/domain data fresh via API insidebeforeAllrather than relying on the pre-populated static class.Reviews (2): Last reviewed commit: "fix checkstyle" | Re-trigger Greptile