Skip to content

ci: replace backend-e2e with e2e-docker and introduce playwright-e2e workflows#184

Open
Gill87 wants to merge 55 commits into
benevolentbandwidth:mainfrom
Gill87:ci/new-checks
Open

ci: replace backend-e2e with e2e-docker and introduce playwright-e2e workflows#184
Gill87 wants to merge 55 commits into
benevolentbandwidth:mainfrom
Gill87:ci/new-checks

Conversation

@Gill87
Copy link
Copy Markdown
Contributor

@Gill87 Gill87 commented May 25, 2026

Summary

  • Replace the emulated backend-e2e job in pr-light.yml with dedicated weekly/manual CI workflows for backend Docker E2E and Playwright UI E2E.
  • Backend E2E runs the full ctest -L e2e suite on native ARM64; Playwright exercises landing → edit → optimize → results against a live Docker stack and C++ API.
  • Align OSRM health checks with map data via OSRM_HEALTHCHECK_LON / OSRM_HEALTHCHECK_LAT (Monaco for backend E2E, San Francisco for Playwright).

Motivation

  • backend-e2e ran the same slow Docker tests on every push to main using x86 + QEMU for an ARM64 stack—slow, less production-like, and without failure diagnostics.
  • PR CI correctly skips e2e|docker for speed; we still need a canonical backend integration path and a browser-level smoke test for the route-manager flow.
  • Playwright closes the gap between fast Vitest checks and backend-only ctest E2E by validating the UI against real routing services.

Changes

Infrastructure / CI

  • Add .github/workflows/e2e-docker.yml: weekly + workflow_dispatch, ubuntu-24.04-arm, ctest -L e2e, compose preflight, 240m timeout, failure diagnostics artifact.
  • Add .github/workflows/playwright-e2e.yml: weekly + workflow_dispatch, SF OSRM cache, compose override, Next.js build/start, npm run test:e2e, Playwright report on failure.
  • Remove backend-e2e from .github/workflows/pr-light.yml; fast pr-checks unchanged (-LE 'e2e|docker').

Backend / deploy

  • Parameterize OSRM healthcheck coordinates in deploy/compose/docker-compose.arm64.yml.
  • Add deploy/compose/docker-compose.e2e-override.yml for Playwright OSRM cache volume.
  • Update tests/integration/e2e/e2e_stack.env (Monaco healthcheck); add tests/integration/e2e/e2e_sf_playwright.env (SF PBF, amd64).

Frontend (Playwright + edit hi-fi)

  • Add app/ui/playwright.config.ts, app/ui/tests/e2e/optimize-flow.spec.ts, and test:e2e script.
  • Edit page hi-fi migration: formStyles.v2.ts, shared navbar/sidebar components, CSV upload overlay, error overlays, drag-drop import, and related edit/results wiring.

Validation

  • cmake --preset dev
  • cmake --build --preset dev --parallel
  • ctest --preset dev --output-on-failure --no-tests=error -LE 'e2e|docker'

Frontend

  • npm --prefix app/ui run lint
  • npm --prefix app/ui run format:check
  • npm --prefix app/ui run typecheck
  • npm --prefix app/ui run test
  • npm --prefix app/ui run build
  • npm --prefix app/mobile run lint
  • npm --prefix app/mobile run typecheck

Backend

  • .github/scripts/check-backend-static.sh build/dev
  • docker compose -f deploy/compose/docker-compose.arm64.yml --env-file deploy/env/http-server.arm64.env config

New CI workflows (post-merge / manual)

  • gh workflow run e2e-docker.yml
  • gh workflow run playwright-e2e.yml

Intentionally skipped on PR CI: ctest -L e2e and npm run test:e2e (covered by dedicated workflows).

Risk

  • Backend and Playwright E2E do not run on pull_request or every main push; regressions may surface only on the weekly schedule or manual dispatch.
  • e2e-docker.yml requires ubuntu-24.04-arm; Playwright uses linux/amd64 on ubuntu-latest—rare arch-specific failures may appear in only one workflow.
  • Cold-cache runs can take a long time (OSRM PBF processing, image builds); first Playwright run is especially heavy without OSRM cache.

Rollout and Recovery

  • Merge enables both workflows on the default Monday 06:00 UTC schedule.
  • After merge, run gh workflow run e2e-docker.yml and gh workflow run playwright-e2e.yml for smoke validation.
  • Revert this PR to restore backend-e2e on main pushes if weekly E2E cadence is insufficient.

Gill87 added 30 commits May 23, 2026 12:24
…make vehicle and delivery subheaders smaller
…ng up the start location to be displayed in the results page
Gill87 added 22 commits May 24, 2026 13:30
…isco health check by using env variables to use monach health check in e2e-docker ci
@Gill87 Gill87 changed the title Ci/new checks ci: replace backend-e2e with e2e-docker and introduce playwright-e2e workflows May 25, 2026
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.

1 participant