chore(ci): drop the disabled timing-summary job and unread build outputs

Two pieces of dead workflow surface, found auditing where CI time goes:

- ci-timings-summary was hard-disabled (`if: ${{ false && ... }}`) with a
  TODO to re-enable or delete it after the next timing-optimization
  review. That review happened; the local `pnpm ci:timings` helper is what
  we actually use, and docs already pointed there. The job carried a
  25-entry needs list that had to be kept in sync to stay lintable.
- build-artifacts exported four `*-result` outputs that no job or workflow
  reads.

Removing the job lets the gate guard assert the stronger invariant it
wanted all along: ci-gate needs *every* job in the file, so a new lane
cannot slip in ungated (28 jobs, 27 gated, zero exceptions).

No runtime behavior changes: the job could never run and the outputs had
no consumers. Also audited every `pnpm <script>` and `node scripts/...`
reference in ci.yml for rot -- all resolve.
This commit is contained in:
Peter Steinberger
2026-08-16 06:27:08 -07:00
parent 18d130fc1b
commit d8697d5956
3 changed files with 3 additions and 64 deletions
+2 -1
View File
@@ -7054,9 +7054,10 @@ printf '%s\n' "\${CURL_SUCCESS_IP:-203.0.113.7}"
expect(workflow.on.pull_request).not.toHaveProperty("paths-ignore");
expect(gate.name).toBe("openclaw/ci-gate");
expect(gate.needs).toEqual([...requiredJobs, ...selectedJobs]);
// Every job in the file is gated; a new lane cannot slip in ungated.
expect(gate.needs.toSorted()).toEqual(
Object.keys(workflow.jobs)
.filter((job) => job !== "ci-gate" && job !== "ci-timings-summary")
.filter((job) => job !== "ci-gate")
.toSorted(),
);
expect(gate.if).toBe(