AI Agents SDE Task Viewer
      • Context
      • Plan
      • Prd
  1. Home
  2. AgentSDE
  3. agent-core
  4. gh-225
  5. plan
  6. plan.md
plan.md(2.1 KB)· Apr 1, 2026· 2 min read
  • Summary
  • Files
  • Steps
  • Verification
  • Risks

Plan: CI — Run tier1 E2E on PRs instead of full suite#

Summary#

Modify the e2e job in .github/workflows/ci.yml to run test:e2e:tier1 on PRs by default. Add a separate workflow for nightly cron and manual dispatch of the full test:e2e suite. Support a per-PR label override (e2e-full) that switches the PR job back to test:e2e.

Files#

FileActionDescription
.github/workflows/ci.ymlmodifyChange e2e job to run test:e2e:tier1; add label-based override to run full suite
.github/workflows/e2e-full.ymlcreateNightly cron + workflow_dispatch workflow for the full test:e2e suite

Steps#

  1. Modify the e2e job in ci.yml — Replace hardcoded npm run test:e2e with a conditional: run test:e2e if the PR has the e2e-full label, otherwise run test:e2e:tier1. Use contains(github.event.pull_request.labels.*.name, 'e2e-full') to detect the label. Keep the single-retry logic for both variants.
  2. Create e2e-full.yml workflow — New workflow triggered by schedule (nightly cron, e.g. 0 3 * * * UTC) and workflow_dispatch with an optional ref input. Checks out agent-core-e2e, installs, runs npm run test:e2e against the target ref (default: main/master). Runs on self-hosted with the same env vars as the existing e2e job.
  3. Add workflow comment — Add a brief comment at the top of the e2e job in ci.yml explaining the tier1 vs full-suite rationale and linking to e2e-full.yml for full runs.

Verification#

  • PR without e2e-full label → e2e job runs test:e2e:tier1
  • PR with e2e-full label → e2e job runs test:e2e
  • Nightly cron and manual dispatch → e2e-full.yml runs full test:e2e

Risks#

  • ⚠️ Label detection uses github.event.pull_request.labels which is only populated on pull_request events — this is fine since the e2e job already gates on if: github.event_name == 'pull_request'.
  • ⚠️ Nightly cron runs against the default branch; if tests flake overnight, failures are independent of any PR and won't block merges.
ContextPrd