From 22575601087a217d5aa4c3ef01268c5eb9dcfca8 Mon Sep 17 00:00:00 2001 From: Nicolas Beck Date: Mon, 12 May 2025 17:23:03 +0200 Subject: [PATCH] PR feedback --- src/main.ts | 29 +++++++++++++---------------- src/state-helper.ts | 11 ++++++++--- 2 files changed, 21 insertions(+), 19 deletions(-) diff --git a/src/main.ts b/src/main.ts index 2b1d201..5ad7aed 100644 --- a/src/main.ts +++ b/src/main.ts @@ -86,6 +86,9 @@ actionsToolkit.run( await core.group(`Builder info`, async () => { builder = await toolkit.builder.inspect(inputs.builder); core.info(JSON.stringify(builder, null, 2)); + if (builder && builder.driver) { + stateHelper.setBuilderDriver(builder.driver); + } }); const args: string[] = await context.getArgs(inputs, toolkit); @@ -173,14 +176,11 @@ actionsToolkit.run( core.info('Build summary is not yet supported on GHES'); } else if (!(await toolkit.buildx.versionSatisfies('>=0.13.0'))) { core.info('Build summary requires Buildx >= 0.13.0'); - } else if (builder && builder.driver === 'cloud') { - core.info('Build summary supported for cloud driver!'); - stateHelper.setSummaryType('cloud'); } else if (!ref) { core.info('Build summary requires a build reference'); } else { core.info('Build summary supported!'); - stateHelper.setSummaryType('buildx'); + stateHelper.setSummarySupported(); } }); @@ -190,7 +190,7 @@ actionsToolkit.run( }, // post async () => { - if (stateHelper.summaryType === 'buildx') { + if (stateHelper.isSummarySupported && stateHelper.builderDriver !== 'cloud') { await core.group(`Generating build summary`, async () => { try { const recordUploadEnabled = buildRecordUploadEnabled(); @@ -223,19 +223,16 @@ actionsToolkit.run( core.warning(e.message); } }); - } else if (stateHelper.summaryType === 'cloud' && stateHelper.buildRef) { + } else if (stateHelper.isSummarySupported && stateHelper.builderDriver === 'cloud') { const [, platform, refId] = stateHelper.buildRef.split('/'); - if (platform && refId) { - const buildUrl = `https://app.docker.com/build/accounts/docker/builds/${platform}/${refId}`; - - core.info(`View build details: ${buildUrl}`); - - const sum = core.summary.addHeading('Docker Build Cloud summary', 2); - sum.addRaw('

').addRaw('Your build was executed using Docker Build Cloud. ').addRaw('You can view detailed build information, logs, and results here: ').addLink(buildUrl, buildUrl).addRaw('

'); - sum.addRaw('

').addRaw('For more information about Docker Build Cloud, see ').addLink('the documentation', 'https://docs.docker.com/build/cloud/').addRaw('.').addRaw('

'); - await sum.addSeparator().write(); - } + await GitHub.writeCloudSummary([ + { + platform: platform, + refId: refId + } + ]); } + if (stateHelper.tmpDir.length > 0) { await core.group(`Removing temp folder ${stateHelper.tmpDir}`, async () => { try { diff --git a/src/state-helper.ts b/src/state-helper.ts index d174c4c..579d426 100644 --- a/src/state-helper.ts +++ b/src/state-helper.ts @@ -6,7 +6,8 @@ import {Inputs} from './context'; export const tmpDir = process.env['STATE_tmpDir'] || ''; export const buildRef = process.env['STATE_buildRef'] || ''; -export const summaryType = process.env['STATE_summaryType'] || undefined; +export const isSummarySupported = !!process.env['STATE_isSummarySupported']; +export const builderDriver = process.env['STATE_builderDriver'] || ''; export const summaryInputs = process.env['STATE_summaryInputs'] ? JSON.parse(process.env['STATE_summaryInputs']) : undefined; export function setTmpDir(tmpDir: string) { @@ -17,8 +18,12 @@ export function setBuildRef(buildRef: string) { core.saveState('buildRef', buildRef); } -export function setSummaryType(summaryType: string) { - core.saveState('summaryType', summaryType); +export function setSummarySupported() { + core.saveState('isSummarySupported', 'true'); +} + +export function setBuilderDriver(driver: string) { + core.saveState('builderDriver', driver); } export function setSummaryInputs(inputs: Inputs) {