Skip to content

ci: run smoke and nightly e2e - #7965

Open
shoom3301 wants to merge 15 commits into
feat/e2e-playwright-2from
feat/e2e-playwright-3
Open

ci: run smoke and nightly e2e#7965
shoom3301 wants to merge 15 commits into
feat/e2e-playwright-2from
feat/e2e-playwright-3

Conversation

@shoom3301

@shoom3301 shoom3301 commented Aug 5, 2026

Copy link
Copy Markdown
Collaborator

Fixes https://linear.app/cowswap/issue/FE-435/create-gh-actions-to-run-tests-on-each-pr-smoke-and-full-regression

What changed

  • Remove Cypress entirely: the disabled integration-tests job in ci.yml, the @nx/cypress dependency, CYPRESS_* env vars in .env.local.example, and leftover cypress* ignore rules in apps/cowswap-frontend/.gitignore.
  • Update .mergify.yml merge-queue conditions from check-success=Cypress to check-success=smoke (the new Playwright smoke job).
  • Update a stale comment in vite.config.mts that referenced Cypress instead of Playwright.
  • Prune the now-unrelated pnpm-lock.yaml entries pulled in only by @nx/cypress.

Why

  • Cypress was already disabled (if: ${{ false }}) and fully superseded by the Playwright e2e suite (e2e-pw-smoke.yml, e2e-pw-nightly.yml). Keeping the dead job, its dependency, and its config references around was misleading and left the merge queue gated on a check that could never succeed.

QA Testing

Reviewer note: this is a CI/config cleanup with no app behavior change, so there's no browser-testable flow. Confirm instead that:

  • ci.yml no longer references Cypress and the notify-failure job's needs/env no longer mention integration-tests.
  • .mergify.yml conditions match the actual check names produced by e2e-pw-smoke.yml (job smoke) and e2e-pw-nightly.yml.
  • The Playwright smoke/nightly workflows still run correctly on their own triggers (PR paths / nightly schedule).

Summary by CodeRabbit

  • Testing

    • Added nightly and manually triggered Playwright end-to-end test workflows.
    • Added Playwright smoke testing for relevant changes, with report uploads and failure notifications.
    • Replaced Cypress-based integration testing and related tooling with Playwright/Synpress workflows.
  • Documentation

    • Updated testing instructions with required environment variables, cache generation, full-suite, smoke-test, and UI-mode commands.
  • Chores

    • Updated merge checks to require successful smoke tests.
    • Removed obsolete Cypress configuration, scripts, dependencies, and environment variables.

@shoom3301 shoom3301 self-assigned this Aug 5, 2026
@vercel

vercel Bot commented Aug 5, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
cowfi Ready Ready Preview Aug 13, 2026 9:51am
explorer-dev Ready Ready Preview Aug 13, 2026 9:51am
storybook Ready Ready Preview Aug 13, 2026 9:51am
swap-dev Ready Ready Preview Aug 13, 2026 9:51am
widget-configurator Ready Ready Preview Aug 13, 2026 9:51am
2 Skipped Deployments
Project Deployment Actions Updated (UTC)
cosmos Ignored Ignored Aug 13, 2026 9:51am
sdk-tools Ignored Ignored Preview Aug 13, 2026 9:51am

Request Review

@shoom3301
shoom3301 requested a review from a team August 5, 2026 12:56
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: a093b175-bf29-4eef-9799-aa08468b7a52

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Walkthrough

The PR removes Cypress integration-test CI and tooling, adds Playwright smoke and nightly workflows, updates merge checks, and replaces Cypress documentation with Playwright/Synpress instructions.

Changes

Playwright E2E migration

Layer / File(s) Summary
Playwright workflow execution
.github/workflows/e2e-pw-smoke.yml, .github/workflows/e2e-pw-nightly.yml
Adds pull-request smoke tests and scheduled or manual sharded E2E tests. Both workflows install Chromium and upload reports.
CI and merge-check integration
.github/workflows/ci.yml, .mergify.yml
Removes Cypress result handling from CI notifications. Queue and auto-merge rules now require the smoke check.
Cypress tooling and documentation cleanup
README.md, apps/cowswap-frontend/.gitignore, apps/cowswap-frontend/vite.config.mts, package.json
Replaces Cypress instructions with Playwright/Synpress instructions and removes Cypress scripts, dependencies, comments, and ignore rules.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant GitHubActions
  participant Playwright
  participant ReportArtifact
  participant Slack
  GitHubActions->>Playwright: Install Chromium and run E2E tests
  Playwright->>ReportArtifact: Upload Playwright reports
  GitHubActions->>Slack: Post failed nightly run details
Loading

Possibly related PRs

Suggested reviewers: azebuado, kernelwhisperer

Poem

A rabbit hops through Playwright’s gate,
Four shards run while testers wait.
Cypress rests beneath the sun,
Smoke checks guard each merge run.
Reports rise, and Slack bells ring.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the main change: adding smoke and nightly end-to-end test workflows.
Description check ✅ Passed The description explains the changes, motivation, issue reference, and targeted QA checks, although it does not use all template headings.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/e2e-playwright-3

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@shoom3301 shoom3301 added the e2e label Aug 5, 2026
@linear-code

linear-code Bot commented Aug 6, 2026

Copy link
Copy Markdown

FE-435

@azebuado

Copy link
Copy Markdown
Collaborator

@coderabbitai review

@coderabbitai

coderabbitai Bot commented Aug 10, 2026

Copy link
Copy Markdown
Contributor
✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/e2e-pw-smoke.yml:
- Around line 5-10: Remove the restrictive paths filter from the smoke workflow
in .github/workflows/e2e-pw-smoke.yml so the required smoke check runs for every
mergeable pull request. In .mergify.yml lines 5-13, keep check-success=smoke
unchanged because it will then be available for all queue-eligible pull
requests; no direct change is required there.
- Line 26: Harden both workflows by adding persist-credentials: false to the
actions/checkout steps in .github/workflows/e2e-pw-smoke.yml:26 and
.github/workflows/e2e-pw-nightly.yml:22, and set job-level permissions to
contents: read unless a write permission is required. Apply the same
minimal-permissions configuration to both workflow files.

In `@README.md`:
- Around line 161-165: Update the CI workflow that runs pnpm e2e:smoke to
provision the .cache-synpress directory beforehand by invoking e2e:build-cache
or restoring a valid cache artifact. Ensure the smoke-test job can run on a
clean runner, and revise the README wording so the cache is not described as
covered for real-wallet fixtures without corresponding CI setup.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro Plus

Run ID: e0d3bb13-75a8-4eb9-ac1a-64c9e321856c

📥 Commits

Reviewing files that changed from the base of the PR and between 0d64709 and 7986cbc.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (9)
  • .env.local.example
  • .github/workflows/ci.yml
  • .github/workflows/e2e-pw-nightly.yml
  • .github/workflows/e2e-pw-smoke.yml
  • .mergify.yml
  • README.md
  • apps/cowswap-frontend/.gitignore
  • apps/cowswap-frontend/vite.config.mts
  • package.json
💤 Files with no reviewable changes (3)
  • .env.local.example
  • apps/cowswap-frontend/.gitignore
  • package.json

Comment thread .github/workflows/e2e-pw-smoke.yml
Comment thread .github/workflows/e2e-pw-smoke.yml
Comment thread README.md Outdated

@azebuado azebuado left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Minor question

Comment thread .github/workflows/e2e-pw-nightly.yml
Comment thread .github/workflows/e2e-pw-smoke.yml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants