From e4096afa4f4c204e855712be7168888ae310d6cc Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Sat, 9 Aug 2025 00:42:46 +0000 Subject: [PATCH 1/4] [extractInputs()] Write step summary --- .github/workflows/src/context.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/src/context.js b/.github/workflows/src/context.js index 6a88034ea045..8f950eb635f4 100644 --- a/.github/workflows/src/context.js +++ b/.github/workflows/src/context.js @@ -25,6 +25,14 @@ export async function extractInputs(github, context, core) { core.info(` payload.action: ${context.payload.action}`); core.info(` payload.workflow_run.event: ${context.payload.workflow_run?.event || "undefined"}`); + core.summary.addHeading("extractInputs", 2); + core.summary.addTable([ + ["eventName", context.eventName], + ["payload.action", context.payload.action || "undefined"], + ["payload.workflow_run.event", context.payload.workflow_run?.event || "undefined"], + ]); + core.summary.write(); + // Log full context when debug is enabled. Most workflows should be idempotent and can be re-run // with debug enabled to replay the previous context. if (core.isDebug()) { From 93b53b2449d238d682fd8e9dd49c7188c67c8ca5 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Sat, 9 Aug 2025 00:44:45 +0000 Subject: [PATCH 2/4] [summarize-checks] simplify summary code --- .github/workflows/src/summarize-checks/summarize-checks.js | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/src/summarize-checks/summarize-checks.js b/.github/workflows/src/summarize-checks/summarize-checks.js index c2192557ed46..ca3ffc0667a1 100644 --- a/.github/workflows/src/summarize-checks/summarize-checks.js +++ b/.github/workflows/src/summarize-checks/summarize-checks.js @@ -364,9 +364,7 @@ export async function summarizeChecksImpl( core.info(`Handling ${event_name} event for PR #${issue_number} in ${owner}/${repo}.`); const prUrl = `https://github.com/${owner}/${repo}/pull/${issue_number}`; - core.summary.addRaw("PR: "); - core.summary.addLink(prUrl, prUrl); - core.summary.write(); + core.summary.addRaw("PR: ").addLink(prUrl, prUrl).write(); core.setOutput("summary", process.env.GITHUB_STEP_SUMMARY); let labelNames = await getExistingLabels(github, owner, repo, issue_number); @@ -447,8 +445,7 @@ export async function summarizeChecksImpl( core.info( `Updating comment '${NEXT_STEPS_COMMENT_ID}' on ${owner}/${repo}#${issue_number} with body: ${commentBody}`, ); - core.summary.addRaw(`\n${commentBody}\n\n`); - core.summary.write(); + core.summary.addRaw(`\n${commentBody}\n\n`).write(); // this will remain commented until we're comfortable with the change. // await commentOrUpdate( From 3c90d3a195dbb2b11913a0848a5569c654a8b36d Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Sat, 9 Aug 2025 00:45:04 +0000 Subject: [PATCH 3/4] [extractInputs] Set summary output --- .github/workflows/src/context.js | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/src/context.js b/.github/workflows/src/context.js index 8f950eb635f4..c267673eed4b 100644 --- a/.github/workflows/src/context.js +++ b/.github/workflows/src/context.js @@ -32,6 +32,7 @@ export async function extractInputs(github, context, core) { ["payload.workflow_run.event", context.payload.workflow_run?.event || "undefined"], ]); core.summary.write(); + core.setOutput("summary", process.env.GITHUB_STEP_SUMMARY); // Log full context when debug is enabled. Most workflows should be idempotent and can be re-run // with debug enabled to replay the previous context. From 4095f58770b09e2fe100d0bc3a6978ebc937ee97 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Sat, 9 Aug 2025 00:50:27 +0000 Subject: [PATCH 4/4] core.summary mocks --- .github/workflows/test/mocks.js | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/.github/workflows/test/mocks.js b/.github/workflows/test/mocks.js index 2260f5675e44..35d8b2fad776 100644 --- a/.github/workflows/test/mocks.js +++ b/.github/workflows/test/mocks.js @@ -57,8 +57,13 @@ export function createMockCore() { setOutput: vi.fn((name, value) => console.log(`setOutput('${name}', '${value}')`)), setFailed: vi.fn((msg) => console.log(`setFailed('${msg}')`)), summary: { - // eslint-disable-next-line @typescript-eslint/no-unused-vars - addRaw: vi.fn(function (content) { + addHeading: vi.fn(function () { + return this; // Return 'this' for method chaining + }), + addRaw: vi.fn(function () { + return this; // Return 'this' for method chaining + }), + addTable: vi.fn(function () { return this; // Return 'this' for method chaining }), write: vi.fn().mockResolvedValue(undefined),