fix(ci): unblocked release run on formatting and chunk watchdog
- Reformatted the logger burst test per biome (the type-check job gates on check:tools, which failed on the previous hotfix's formatting). - Raised the native/unit bucket's chunk watchdog to 1200 s: the mupdf PDF extraction chunk runs ~7 min per attempt on burstable runners under a full fan-out and the 600 s default SIGKILLed both tries in release run 30519992654; the watchdog targets wedged children, not slow chunks.
This commit is contained in:
@@ -380,6 +380,12 @@ jobs:
|
||||
- name: Test coding-agent native/unit bucket
|
||||
env:
|
||||
OMP_TEST_CONCURRENCY: "4"
|
||||
# The mupdf/PDF-extraction chunk measures ~7 min on burstable
|
||||
# runners under a full 8-wide fan-out; the default 600 s chunk
|
||||
# watchdog SIGKILLed it (release run 30519992654). The watchdog
|
||||
# exists to catch wedged children, not slow-but-progressing
|
||||
# chunks — give this bucket a wider budget.
|
||||
OMP_TEST_CHUNK_TIMEOUT: "1200"
|
||||
run: bun run ci:test:coding-agent:native
|
||||
|
||||
test_smoke:
|
||||
|
||||
@@ -252,26 +252,22 @@ describe("central logger transport lifecycle", () => {
|
||||
// on an unloaded runner — bun's 5 s default test timeout SIGTERMed the
|
||||
// probe (exit 143) whenever CI runners shared cores. The contract is
|
||||
// order + drain, not latency; give it an explicit budget.
|
||||
test(
|
||||
"preserves burst order and drains on close and natural child exit",
|
||||
async () => {
|
||||
for (const scenario of ["burst-close", "burst-natural"] as const) {
|
||||
const result = await runScenario(scenario);
|
||||
expect(result.stdout).toBe("");
|
||||
expect(result.stderr).toBe("");
|
||||
const text = (await readSingleLog(result.primaryDir)).text;
|
||||
expect(text.endsWith(os.EOL)).toBe(true);
|
||||
const lines = text.split(os.EOL);
|
||||
expect(lines.pop()).toBe("");
|
||||
expect(lines).toHaveLength(1_000);
|
||||
for (const [index, line] of lines.entries()) {
|
||||
const entry = JSON.parse(line) as { message: string; index: number };
|
||||
expect(entry).toMatchObject({ message: scenario, index });
|
||||
}
|
||||
test("preserves burst order and drains on close and natural child exit", async () => {
|
||||
for (const scenario of ["burst-close", "burst-natural"] as const) {
|
||||
const result = await runScenario(scenario);
|
||||
expect(result.stdout).toBe("");
|
||||
expect(result.stderr).toBe("");
|
||||
const text = (await readSingleLog(result.primaryDir)).text;
|
||||
expect(text.endsWith(os.EOL)).toBe(true);
|
||||
const lines = text.split(os.EOL);
|
||||
expect(lines.pop()).toBe("");
|
||||
expect(lines).toHaveLength(1_000);
|
||||
for (const [index, line] of lines.entries()) {
|
||||
const entry = JSON.parse(line) as { message: string; index: number };
|
||||
expect(entry).toMatchObject({ message: scenario, index });
|
||||
}
|
||||
},
|
||||
30_000,
|
||||
);
|
||||
}
|
||||
}, 30_000);
|
||||
|
||||
test("runs local console output before sinks and isolates throwing or disposed sinks", async () => {
|
||||
const result = await runScenario("sink-order");
|
||||
|
||||
Reference in New Issue
Block a user