dotCMS / dotCMS/core

e2e: Reduce E2E CI job setup overhead and retry cost

Open
#36,569 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

dotCMS : Build Team : Falcon Type : CI/CD
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)
  1. retries: 21 in playwright.config.ts for CI
  2. cleanup_runner: false override for the e2e suite in .github/test-matrix.yml (global default is true)
  3. Evaluate removing opensearch-upgrade container from dotcms-ui-e2e docker stack if E2E tests do not require OpenSearch upgrade coverage (inherits integration stack today)
  4. Lower checkout fetch-depth in 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-upgrade documents whether E2E needs it; remove from e2e pom.xml docker 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.yml
  • core-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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.