e2e: Reduce E2E CI job setup overhead and retry cost
Nobody has claimed this yet.
- Dominant language
- Java
- Stars
- 970
- Forks
- 486
- Avg merge
- 3d 33m
- Merged PRs (30d)
- 170
Description
Description
While Playwright execution dominates E2E job time (~49 min / ~87%), the remaining ~7 min of setup plus retry overhead can still be trimmed. These are secondary optimizations after parallelizing the test suite.
Baseline from run 29282328043:
| Phase | ~Time |
|---|---|
| Checkout + cleanup-runner + Java/caches | ~2.5 min |
Download maven-repo + docker tar + docker load |
~2.0 min |
| pnpm + Playwright Chromium | ~0.5 min |
| Pull/start PG + OpenSearch x2 + WireMock + dotCMS boot | ~2.1 min |
Additional cost on failure: retries: 2 in CI re-runs failed tests up to 3 times (e.g. host-folder spec added several minutes in the failing run).
Proposed changes (incremental)
retries: 2→1inplaywright.config.tsfor CIcleanup_runner: falseoverride for the e2e suite in.github/test-matrix.yml(global default istrue)- Evaluate removing
opensearch-upgradecontainer fromdotcms-ui-e2edocker stack if E2E tests do not require OpenSearch upgrade coverage (inherits integration stack today) - Lower checkout
fetch-depthin test phase if full git history is not required for E2E
Out of scope
- Reducing Playwright test count or suite duration (workers/sharding experiments)
- Rebuilding Docker image inside the E2E job
Acceptance Criteria
- CI retries reduced from 2 to 1; documented rationale in PR description
- E2E matrix entry sets
cleanup_runner: false(or equivalent) and job still has sufficient disk for docker load + stack - Spike note on
opensearch-upgradedocuments whether E2E needs it; remove from e2epom.xmldocker config if not required - Measured setup time before/after on at least 3 PR runs (target: 2–4 min saved from combined changes)
- No increase in infra failures (disk full, missing images, checkout errors)
Additional Context
Priority: Low
Files:
core-web/apps/dotcms-ui-e2e/playwright.config.ts.github/test-matrix.ymlcore-web/apps/dotcms-ui-e2e/pom.xml.github/workflows/cicd_comp_test-phase.yml(checkout depth, if changed)
Note: These changes are safe to land independently of workers/sharding experiments but deliver smaller gains.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with core-web/apps/dotcms-ui-e2e/playwright.config.ts and .github/test-matrix.yml, then inspect core-web/apps/dotcms-ui-e2e/pom.xml and the checkout step in .github/workflows/cicd_comp_test-phase.yml. Compare setup timing across at least three PR runs after the incremental changes. Done means retries are reduced, cleanup and OpenSearch decisions are documented, setup saves 2–4 minutes, and no disk, image, checkout, or other infrastructure failures increase.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, github-actions, java, playwright
- Domain
- ci-cd, devops, performance, testing
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100