mirror of
https://github.com/stablyai/orca.git
synced 2026-11-14 18:07:45 +00:00
refactor(ci): colocate the shard timing catalog with sharding (#38409)
This commit is contained in:
@@ -14,7 +14,7 @@ const SCAN_ROOTS = ['config', '.github', 'tests']
|
||||
const SOURCE_ROOTS = 'main|renderer|shared|cli|preload|packages|types|wsl-guest'
|
||||
const RESOLVED_EXTENSIONS = ['.ts', '.tsx', '.js', '.mjs', '.cjs', '/index.ts']
|
||||
// Generated timings; a stale row only skews shard balance and is rewritten by its generator.
|
||||
const EXCLUDED_FILES = new Set(['config/scripts/ci-shard-timings.json'])
|
||||
const EXCLUDED_FILES = new Set(['config/scripts/ci/sharding/ci-shard-timings.json'])
|
||||
const GATE_MANIFEST = 'config/reliability-gates.jsonc'
|
||||
// Command strings in manifests and scripts name paths unquoted; in code only quoted literals count.
|
||||
const UNQUOTED_ALLOWED = /\.(?:jsonc?|ya?ml|sh|ps1)$/
|
||||
|
||||
@@ -91,7 +91,7 @@ describe('isScannedPath', () => {
|
||||
expect(isScannedPath('tests/e2e/ssh-orcad-terminal-journeys.spec.ts')).toBe(true)
|
||||
expect(isScannedPath('config/scripts/pr-e2e-source-routing.test.mjs')).toBe(false)
|
||||
expect(isScannedPath('tests/e2e/helpers/pr-comments-sidebar-fixture.ts')).toBe(false)
|
||||
expect(isScannedPath('config/scripts/ci-shard-timings.json')).toBe(false)
|
||||
expect(isScannedPath('config/scripts/ci/sharding/ci-shard-timings.json')).toBe(false)
|
||||
expect(isScannedPath('config/patches/foo.patch')).toBe(false)
|
||||
})
|
||||
})
|
||||
|
||||
@@ -48,7 +48,7 @@ export function balanceFiles(files, count, timings, overheadMs = 0) {
|
||||
}
|
||||
|
||||
export function readTimingBaseline(suite) {
|
||||
const bytes = readFileSync(new URL('../../ci-shard-timings.json', import.meta.url), 'utf8')
|
||||
const bytes = readFileSync(new URL('./ci-shard-timings.json', import.meta.url), 'utf8')
|
||||
const baseline = JSON.parse(bytes)
|
||||
return { ...baseline[suite], baselineSha256: createHash('sha256').update(bytes).digest('hex') }
|
||||
}
|
||||
|
||||
@@ -68,7 +68,7 @@ baseline. Runs from before the fixes are not comparable, because their `pty-subp
|
||||
files still carried 5-second waits.
|
||||
|
||||
```sh
|
||||
node config/scripts/ci/sharding/ci-unit-timing-import.mjs RUN_DIR... config/scripts/ci-shard-timings.json
|
||||
node config/scripts/ci/sharding/ci-unit-timing-import.mjs RUN_DIR... config/scripts/ci/sharding/ci-shard-timings.json
|
||||
```
|
||||
|
||||
Each directory holds one run's twelve `unit-shard-node-*` artifacts. Every run is validated
|
||||
@@ -217,7 +217,7 @@ API, source workflow/config, report provenance and exact file coverage against t
|
||||
saved assignments, then run:
|
||||
|
||||
```sh
|
||||
node config/scripts/ci/sharding/ci-unit-timing-import.mjs ARTIFACT_DIRECTORY config/scripts/ci-shard-timings.json
|
||||
node config/scripts/ci/sharding/ci-unit-timing-import.mjs ARTIFACT_DIRECTORY config/scripts/ci/sharding/ci-shard-timings.json
|
||||
```
|
||||
|
||||
The importer rejects missing or duplicate shards, duplicate files, failed unit reports,
|
||||
@@ -234,7 +234,7 @@ job IDs from the Actions jobs API and fetch each with
|
||||
lanes or multiple attempts. Then run:
|
||||
|
||||
```sh
|
||||
node config/scripts/ci/sharding/ci-shard-timing-import.mjs LOG_DIRECTORY UNIT_RUN_ID E2E_RUN_ID config/scripts/ci-shard-timings.json
|
||||
node config/scripts/ci/sharding/ci-shard-timing-import.mjs LOG_DIRECTORY UNIT_RUN_ID E2E_RUN_ID config/scripts/ci/sharding/ci-shard-timings.json
|
||||
```
|
||||
|
||||
The initial source logs are in `/tmp/orca-ci-shard-logs`; two were reused from
|
||||
|
||||
+1
-1
@@ -65,7 +65,7 @@ describe('the actual terminal smoke dependency graph', () => {
|
||||
it.each([
|
||||
'src/renderer/src/components/Example.tsx',
|
||||
'src/main/menu/register-app-menu.ts',
|
||||
'config/scripts/ci-shard-timings.json',
|
||||
'config/scripts/ci/sharding/ci-shard-timings.json',
|
||||
'.github/workflows/e2e.yml',
|
||||
'docs/reference/ci-runner-efficiency.md'
|
||||
])('skips unrelated inputs: %s', async (file) => {
|
||||
|
||||
Reference in New Issue
Block a user