ci: add coverage lane headroom

This commit is contained in:
Tianyi Cui
2026-07-21 20:32:57 +08:00
parent e0775de689
commit 91bd51c23a
3 changed files with 62 additions and 14 deletions

View File

@@ -58,11 +58,16 @@ jobs:
command: pnpm run check:ci:lint
gate_concurrency: '1'
eslint_cache: '1'
- lane: coverage-spine
- lane: coverage-core
command: pnpm run check:ci:coverage
gate_concurrency: '1'
coverage_max_workers: '4'
coverage_shard: spine
coverage_shard: core
- lane: coverage-models
command: pnpm run check:ci:coverage
gate_concurrency: '1'
coverage_max_workers: '4'
coverage_shard: models
- lane: coverage-sdk
command: pnpm run check:ci:coverage
gate_concurrency: '1'
@@ -78,16 +83,36 @@ jobs:
gate_concurrency: '1'
coverage_max_workers: '4'
coverage_shard: execution
- lane: coverage-orchestration
- lane: coverage-workflow
command: pnpm run check:ci:coverage
gate_concurrency: '1'
coverage_max_workers: '4'
coverage_shard: orchestration
- lane: coverage-infrastructure
coverage_shard: workflow
- lane: coverage-workflow-worker
command: pnpm run check:ci:coverage
gate_concurrency: '1'
coverage_max_workers: '4'
coverage_shard: infrastructure
coverage_shard: workflow-worker
- lane: coverage-delegation
command: pnpm run check:ci:coverage
gate_concurrency: '1'
coverage_max_workers: '4'
coverage_shard: delegation
- lane: coverage-repository
command: pnpm run check:ci:coverage
gate_concurrency: '1'
coverage_max_workers: '4'
coverage_shard: repository
- lane: coverage-scripts
command: pnpm run check:ci:coverage
gate_concurrency: '1'
coverage_max_workers: '4'
coverage_shard: scripts
- lane: coverage-integrations
command: pnpm run check:ci:coverage
gate_concurrency: '1'
coverage_max_workers: '4'
coverage_shard: integrations
- lane: coverage-session-state
command: pnpm run check:ci:coverage
gate_concurrency: '1'
@@ -98,6 +123,11 @@ jobs:
gate_concurrency: '1'
coverage_max_workers: '4'
coverage_shard: hooks-claude
- lane: coverage-hook-protocol
command: pnpm run check:ci:coverage
gate_concurrency: '1'
coverage_max_workers: '4'
coverage_shard: hook-protocol
- lane: coverage-hooks-codex
command: pnpm run check:ci:coverage
gate_concurrency: '1'

View File

@@ -13,10 +13,11 @@ export interface CoverageShard {
/** Exhaustive, non-overlapping ownership of workspace packages in coverage CI. */
export const coverageShards = [
{
name: 'spine',
packageRoots: ['core', 'llm', 'compact', 'context'],
name: 'core',
packageRoots: ['core', 'context'],
extraTestRoots: ['packages/examples/cli-demo/tests'],
},
{ name: 'models', packageRoots: ['llm', 'compact'] },
{ name: 'sdk', packageRoots: ['sdk'] },
{
name: 'interfaces',
@@ -24,17 +25,34 @@ export const coverageShards = [
extraTestRoots: ['examples'],
},
{ name: 'execution', packageRoots: ['fs', 'bash', 'sandbox', 'code-runtime'] },
{ name: 'orchestration', packageRoots: ['workflow', 'subagent', 'tasks'] },
{
name: 'infrastructure',
packageRoots: ['cordis', 'support', 'lsp', 'mcp'],
name: 'workflow',
packageRoots: ['workflow/workflow', 'workflow/tool-workflow', 'workflow/tool-ralph'],
},
{ name: 'workflow-worker', packageRoots: ['workflow/workflow-workerthread'] },
{ name: 'delegation', packageRoots: ['subagent', 'tasks'] },
{
name: 'repository',
packageRoots: [
'cordis',
'support/acp-snapshot',
'support/agent-loop-testkit',
'support/llm-replay',
'support/loader-smoke',
],
},
{
name: 'scripts',
packageRoots: ['support/invariants'],
extraTestRoots: ['scripts'],
},
{ name: 'integrations', packageRoots: ['lsp', 'mcp'] },
{
name: 'session-state',
packageRoots: ['session-persistence', 'session-query'],
},
{ name: 'hooks-claude', packageRoots: ['hooks/hook-protocol', 'hooks/hooks-claude'] },
{ name: 'hook-protocol', packageRoots: ['hooks/hook-protocol'] },
{ name: 'hooks-claude', packageRoots: ['hooks/hooks-claude'] },
{ name: 'hooks-codex', packageRoots: ['hooks/hooks-codex'] },
{
name: 'capabilities',

View File

@@ -42,8 +42,8 @@ for (const manifestPath of manifests) {
// Keep the staged view below its owning package so Node reaches the real
// pnpm dependency links. Junctioning node_modules elsewhere breaks pnpm's
// relative workspace links on Windows. Copy only the statically required
// runtime entry so a companion that imports an undeclared chunk fails here.
// relative workspace links on Windows. Copy the manifest-declared lib view
// so a companion that imports an undeclared runtime chunk fails here.
const stagedPackageDir = mkdtempSync(resolve(packageDir, '.dsh-built-invariant-'))
try {
copyFileSync(resolve(packageDir, 'package.json'), resolve(stagedPackageDir, 'package.json'))