diff --git a/.github/workflows/bloat.yml b/.github/workflows/bloat.yml index e6b62c6bf..a62c24b97 100644 --- a/.github/workflows/bloat.yml +++ b/.github/workflows/bloat.yml @@ -35,7 +35,7 @@ jobs: bloat: name: Binary size tracking runs-on: ubuntu-latest - timeout-minutes: 20 + timeout-minutes: 30 permissions: contents: write pull-requests: write diff --git a/scripts/workflow-policy.test.mjs b/scripts/workflow-policy.test.mjs index 4e2a8393e..e1ca897f7 100644 --- a/scripts/workflow-policy.test.mjs +++ b/scripts/workflow-policy.test.mjs @@ -42,6 +42,15 @@ test("workflow block parser rejects missing keys", () => { assert.throws(() => indentedBlock("root:\n value: true", "missing", 0), /missing missing block/); }); +test("binary-size workflow budgets time for every shipped binary", () => { + const workflow = readWorkflow(".github/workflows/bloat.yml"); + const job = indentedBlock(workflow, "bloat", 2); + const timeout = Number(job.match(/timeout-minutes: (\d+)/)?.[1]); + + assert.match(job, /cargo build --release -p fallow-lsp -p fallow-mcp -p fallow-multicall/); + assert.ok(timeout >= 30, `multi-binary size tracking needs at least 30 minutes, got ${timeout}`); +}); + test("regular CI keeps affected checks on Ubuntu", () => { const workflow = readWorkflow(".github/workflows/ci.yml"); const checkJob = indentedBlock(workflow, "check", 2);