Skip to content

Commit 7500208

Browse files
authored
fix(ci): declare the e2e shard inputs on the no-codeql orchestrator (#714)
Rendered callers always pass e2e-shard-list and e2e-total-shards (the v1.42.0 sharding defaults), but the no-codeql orchestrator never declared them, so every codeql:false consumer's pull-request validation failed at startup with an unknown-input error. GitHub reports that as startup_failure, which the billing-pause era hid: agent-sim's Validation lane has never once succeeded since its v1.42.0 pin. Declare both inputs and forward them to the test lane, matching the main orchestrator, and pin the parity in the receipt tests.
1 parent 638f16d commit 7500208

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

‎.github/workflows/validation-no-codeql.yml‎

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,16 @@ on:
7575
required: false
7676
type: string
7777
default: task-result
78+
e2e-shard-list:
79+
description: Comma-separated E2E shard indices passed to the test lane's matrix, e.g. "1,2".
80+
required: false
81+
type: string
82+
default: '1'
83+
e2e-total-shards:
84+
description: Total E2E shard count passed to the repository script as E2E_TOTAL_SHARDS.
85+
required: false
86+
type: string
87+
default: '1'
7888
secrets:
7989
TURBO_TOKEN:
8090
required: false
@@ -119,6 +129,8 @@ jobs:
119129
# smoke, and performance lanes stay in the audit and scheduled lanes.
120130
unit-only: ${{ inputs.mode == 'fast' || inputs.mode == 'release' }}
121131
artifact-prefix: ${{ inputs.artifact-prefix }}
132+
e2e-shard-list: ${{ inputs.e2e-shard-list }}
133+
e2e-total-shards: ${{ inputs.e2e-total-shards }}
122134
secrets:
123135
TURBO_TOKEN: ${{ secrets.TURBO_TOKEN }}
124136

‎test/task-receipt-artifacts.test.mjs‎

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,3 +147,18 @@ test('actual optional discovery writes an explicit skip receipt at the exact upl
147147
assert.equal(report.task, 'e2e')
148148
assert.deepEqual(report.commands, [])
149149
})
150+
151+
test('validation orchestrators declare and forward the e2e shard inputs', () => {
152+
for (const file of ['validation.yml', 'validation-no-codeql.yml']) {
153+
const source = readFileSync(join(root, '.github/workflows', file), 'utf8')
154+
for (const name of ['e2e-shard-list', 'e2e-total-shards']) {
155+
assert.match(
156+
source,
157+
new RegExp(`^ ${name}:\\n(?:[^\\n]*\\n){3} default: '1'`, 'm'),
158+
`${file} must declare ${name}: rendered callers always pass it, and an undeclared reusable input fails the call at startup`
159+
)
160+
const testBlock = source.split('\n test:\n')[1].split(/\n [a-z0-9-]+:\n/)[0]
161+
assert.match(testBlock, new RegExp(`${name}: \\$\\{\\{ inputs\\.${name} \\}\\}`))
162+
}
163+
}
164+
})

0 commit comments

Comments
 (0)