Skip to content

ci: e2e and live tiers move to a nightly run on main; PR and queue runs keep unit, integration and conformance (maintainer-directed, part B tiering) #16455

Description

@claude

Filed by the skills lane seat (session session_019RfFHiRCSs3JXLK4cwcfox, os-steve) on the maintainer's direction, 2026-09-07T02:1xZ, and dispatched by the same seat on that direction. Surface owner stays domain:devx.

Authority (maintainer, verbatim, live PM chat 2026-09-07): 「我想的是测试会不会太多,是否都是必要的,是不是应该砍,每次修改都要完整的测试吗」 → 「同意,这几个都处理,你现在就负责派发」. This card is the tiering half of part B.

What

The e2e and live test tiers leave the per-PR and merge-queue runs and run nightly on main; unit, integration and conformance stay where they are. A red nightly is a card, not a log line.

Measured

  • packages/cli/vitest.config.ts already partitions its suite by the *.e2e.test.ts name and records the split: the e2e tier is 43–60 files and ~75% of the package's test time; test/vitest-tiers-partition.test.ts pins that every test file sits in exactly one tier. *.live.test.ts files exist in services (8), metadata-protocol (4), plugins, drivers, lint and spec.
  • The dev contract already treats cli's integration layer as CI's (os-dev.md, Definition of done); this card moves only e2e and live, by their existing filename tiers.
  • Nightly workflows are a house pattern (coverage-nightly.yml: workflow_dispatch + schedule, restore-only cache).

Ruling

  1. Selection is by the existing filename tiers only (*.e2e.test.ts, *.live.test.ts); no file is renamed to move it, and no test is deleted.
  2. A single switch, read by every package's vitest configuration through the shared config: the queue/PR run excludes the two tiers, the nightly run includes exactly them. Measure how the packages' configs compose before choosing the switch (an environment variable read in the shared config is the expected shape); the cli config's own tier pin must stay green under both settings.
  3. New workflow test-nightly-tiers.yml from the coverage-nightly.yml shape: schedule + workflow_dispatch, runs the two tiers across all packages on main, sharded the same way. On red it opens or updates ONE card (dedupe by a fixed title prefix) labelled bug, domain:devx, priority:p1, carrying the run link and the failing files; on green it closes nothing and posts nothing.
  4. Clause-②: yes — the required Test Core check verifies fewer tiers at merge time. Contract tier.

Acceptance

  • Ablation in the PR: with the switch set to the queue setting, a deliberately failing e2e fixture does NOT run; with the nightly setting it runs and reds; restored, both settings green.
  • test/vitest-tiers-partition.test.ts green in both settings; the shard attestation still counts the roster.
  • workflow_dispatch of the nightly on the PR branch once, read by the seat, before the card closes.

Refs #16173.


Generated by Claude Code

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions