ci: add coverage lane headroom
This commit is contained in:
42
.github/workflows/ci.yml
vendored
42
.github/workflows/ci.yml
vendored
@@ -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'
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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'))
|
||||
|
||||
Reference in New Issue
Block a user