From c0cc77766ec8dcc4bbf6445760a7133d6fe901ea Mon Sep 17 00:00:00 2001 From: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com> Date: Tue, 13 Oct 2026 09:54:44 +0000 Subject: [PATCH] test(ci): admit reusable-workflow jobs in the release preflight check d13c9f840 made the release `qualification` job call a reusable workflow, so it declares `uses` and no `steps`. The release checkpoint test parsed every job with required `steps`, so all four preflight cases failed with a ZodError on main and in every PR's boundary shard. Only the inspected release-please and merged-release jobs need steps; make the field optional per job. Co-Authored-By: Claude Opus 5.5 --- .../filesystem/releaseCheckpoint.test.ts | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/tests/boundary/filesystem/releaseCheckpoint.test.ts b/tests/boundary/filesystem/releaseCheckpoint.test.ts index e3d425810..5db704aa9 100644 --- a/tests/boundary/filesystem/releaseCheckpoint.test.ts +++ b/tests/boundary/filesystem/releaseCheckpoint.test.ts @@ -651,13 +651,16 @@ it.skipIf(process.platform === "win32").each([ .object({ jobs: z.record( z.string(), + // Jobs that call a reusable workflow declare `uses` instead of steps. z.object({ - steps: z.array( - z.object({ - name: z.string().optional(), - run: z.string().optional(), - }), - ), + steps: z + .array( + z.object({ + name: z.string().optional(), + run: z.string().optional(), + }), + ) + .optional(), }), ), }) @@ -672,7 +675,7 @@ it.skipIf(process.platform === "win32").each([ const command = z .string() .parse( - workflow.jobs[job]?.steps.find( + workflow.jobs[job]?.steps?.find( (step) => step.name === (job === "merged-release"