[OPIK-6707] [CI] feat: add v2 E2E PR-gate workflow + wire Allure reporter#6876
Merged
Conversation
…rter Add end2end_suites_v2.yml mirroring the v1 PR-gate for the Opik 2.0 E2E suite: PR-triggered on tests_end_to_end/e2e/**, builds Opik locally with the 2.0 UI forced on, runs the @t1-smoke tier against localhost:5173, uploads Playwright report + test-results. Modernized vs v1 — drops the test-helper-service and Python-SDK installs (the v2 bridge auto-spawns via Playwright's webServer and pins its own deps), adds uv setup + bridge sync. Wire the allure-playwright reporter into the e2e playwright.config so the deployed-environment job (comet-automation-tests, separate PR) can upload to Allure TestOps — the suite produced no allure-results before this. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Wrap the suite run in `allurectl watch` and add the ALLURE_* env block + allurectl install, mirroring the v1 PR-gate. Every run now creates a TestOps launch (project 1) rather than only uploading allure-results as a GitHub artifact. ALLURE_TOKEN already exists in the repo. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
… for Allure So the TestOps launch (and the Playwright trace viewer) renders each test as a labelled timeline instead of one opaque block. Coarse phases at the test level (seed / navigate / verify), fine steps inside each POM method, per the CUJ retro rule §13. A failed assertion is now attributed to a named step at both granularities, so it's clear where a run stopped. The _seed/sdk-clients API sanity test is left flat — wrapping 3-line API calls in steps would just add timeline noise. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…waitFor fails fast Without this, `locator.waitFor()` calls that don't pass an explicit `timeout:` inherit the *test* timeout (180s on the slower CUJ tests). A missing FE testid then burns the full test budget per attempt — observed on the OPIK-6597 staging run: 3× 180s waiting for an undeployed add-edit-rule-dialog testid. `actionTimeout` is the Playwright equivalent of page.setDefaultTimeout — applies to every action (click/fill/waitFor/etc.) when the call site doesn't pass its own `timeout:`. POM methods that legitimately need longer (trace-panel cold-load 30s, polling 90-120s) already pass explicit timeouts and override this default. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
andrescrz
approved these changes
May 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Details
Adds the PR-gate CI workflow for the Opik 2.0 E2E suite (
tests_end_to_end/e2e/), mirroring the v1end2end_suites_typescript.yml. The v2 suite was previously run only manually against staging — this gives it a PR gate. Modernized vs v1: drops the test-helper-service and Python-SDK install steps (the v2 FastAPI bridge auto-spawns via Playwright'swebServerand pins its own deps), addsuvsetup + a bridgeuv sync, and forces the 2.0 UI (TOGGLE_FORCE_WORKSPACE_VERSION=version_2).end2end_suites_v2.yml—pull_requestontests_end_to_end/e2e/**+workflow_dispatch(tier choice t1/t2/t3). Builds Opik locally, waits for pods + backend health, runsnpm run test:t1(@t1-smoke) againstlocalhost:5173, uploadsplaywright-report+test-results. Non-blocking on PRs (continue-on-error), mirroring v1.playwright.config.ts+package.json— wire theallure-playwrightreporter (none existed; design §6.5 called for it). Required so the deployed-environment job (comet-automation-tests, separate PR) can upload to Allure TestOps.Change checklist
Issues
AI-WATERMARK
AI-WATERMARK: yes
Testing
Documentation