Skip to content

Improvement: DO-12330 speed up E2E CI - #671

Merged
krzysztof-causalens merged 4 commits into
masterfrom
codex/upgrade-cypress-e2e-ci
Jul 28, 2026
Merged

Improvement: DO-12330 speed up E2E CI#671
krzysztof-causalens merged 4 commits into
masterfrom
codex/upgrade-cypress-e2e-ci

Conversation

@krzysztof-causalens

@krzysztof-causalens krzysztof-causalens commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Motivation and Context

The E2E job is currently the slowest CI job after the Oxlint/Oxfmt tooling upgrade. It also sits behind a shared setup job, so every real test job waits for setup even when its caches are already warm.

Measured GitHub Actions results from master run 30278046973 and this PR's run 30283988882:

Measurement master This PR
Workflow wall time 7m 38s 4m 36s
Shared setup job 1m 42s removed
E2E job 5m 42s 4m 27s
Cypress test step 3m 13s 2m 40s

The E2E job is 1m 15s faster (22%), while the workflow critical path is 3m 02s faster (40%). GitHub-hosted runner timings naturally include some run-to-run noise.

Implementation Description

  • Upgrade Cypress from 10.11.0 to 15.19.0 and fix the stricter subject handling introduced by newer Cypress releases.
  • Cache the default authentication session across specs with cy.session, while continuing to visit each test route independently.
  • Remove the shared setup job so lint, unit-test, and E2E jobs can begin immediately.
  • Preserve cold-cache correctness by installing the Python environment and Cypress binary in the consuming job on cache misses.
  • Let actions/setup-node manage the pnpm store cache and remove the redundant apt update/wget installation.
  • Rely on the GitHub-hosted Ubuntu image's Cypress runtime libraries instead of downloading, installing, and caching an outdated APT dependency set on every new cache key.
  • Use shallow checkouts in test jobs and let cypress run validate the restored binary instead of launching Cypress once in a separate verification step.

Controlled local measurements, included only to separate the Cypress and authentication effects:

Configuration Cypress-reported time Local wall time
Cypress 10 + cached authentication 83s 100.7s
Cypress 15 + cached authentication 75s 98.2s
Cypress 15 + original authentication flow 84s 104.1s

Any new dependencies Introduced

No new dependency category. The existing Cypress development dependency is upgraded from 10.11.0 to 15.19.0.

How Has This Been Tested?

  • Ran the full 55-test E2E suite successfully on both Cypress 10.11.0 and 15.19.0.
  • Re-ran the navigation compatibility spec on the final Cypress 15 state.
  • Checked the affected navigation manually in a local browser.
  • Ran make lint-js.
  • Ran pnpm lerna run format:check.
  • Verified the frozen pnpm lockfile, Cypress binary, workflow YAML, and git diff --check.
  • Passed the complete GitHub Actions workflow without the explicit Cypress APT dependency step.
  • Passed follow-up run 30285912316 using depth-1 checkouts and direct Cypress launch from the restored binary cache.

PR Checklist:

  • I have implemented all requirements? (see JIRA, project documentation).
  • I am not affecting someone else's work, If I am, they are included as a reviewer.
  • I have added relevant tests (unit, integration or regression).
  • I have added comments to all the bits that are hard to follow.
  • I have added/updated Documentation.
  • I have updated the appropriate changelog with a line for my changes. (Not applicable: internal CI/test tooling only.)

Screenshots (if appropriate):

Not applicable; this changes test and CI infrastructure only.

@krzysztof-causalens krzysztof-causalens changed the title Improvement: PR-000 speed up E2E CI Improvement: PR-671 speed up E2E CI Jul 27, 2026
@krzysztof-causalens krzysztof-causalens self-assigned this Jul 27, 2026
@krzysztof-causalens krzysztof-causalens changed the title Improvement: PR-671 speed up E2E CI Improvement: DO-12330 speed up E2E CI Jul 27, 2026
@krzysztof-causalens
krzysztof-causalens marked this pull request as ready for review July 27, 2026 17:06

@sam-causalens sam-causalens left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@krzysztof-causalens
krzysztof-causalens merged commit f65143c into master Jul 28, 2026
11 checks passed
@krzysztof-causalens
krzysztof-causalens deleted the codex/upgrade-cypress-e2e-ci branch July 28, 2026 12:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants