Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 22 additions & 18 deletions dist/index.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dist/index.js.map

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
"packageManager": "yarn@3.6.3",
"dependencies": {
"@actions/core": "^1.11.1",
"@docker/actions-toolkit": "^0.61.0",
"@docker/actions-toolkit": "https://github.com/crazy-max/docker-actions-toolkit#fix-dbc-summary",
"handlebars": "^4.7.8"
},
"devDependencies": {
Expand Down
22 changes: 0 additions & 22 deletions src/context.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,28 +46,6 @@ export async function getInputs(): Promise<Inputs> {
};
}

export function sanitizeInputs(inputs: Inputs) {
const res = {};
for (const key of Object.keys(inputs)) {
if (key === 'github-token') {
continue;
}
const value: string | string[] | boolean = inputs[key];
if (typeof value === 'boolean' && value === false) {
continue;
} else if (Array.isArray(value) && value.length === 0) {
continue;
} else if (!value) {
continue;
}
if (key === 'workdir' && value === '.') {
continue;
}
res[key] = value;
}
return res;
}

export async function getArgs(inputs: Inputs, definition: BakeDefinition, toolkit: Toolkit): Promise<Array<string>> {
// prettier-ignore
return [
Expand Down
12 changes: 7 additions & 5 deletions src/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,8 @@ actionsToolkit.run(
const startedTime = new Date();

const inputs: context.Inputs = await context.getInputs();
stateHelper.setSummaryInputs(inputs);
core.debug(`inputs: ${JSON.stringify(inputs)}`);
stateHelper.setInputs(inputs);

const toolkit = new Toolkit();
const gitAuthToken = process.env.BUILDX_BAKE_GIT_AUTH_TOKEN ?? inputs['github-token'];
Expand Down Expand Up @@ -88,6 +88,8 @@ actionsToolkit.run(
let builder: BuilderInfo;
await core.group(`Builder info`, async () => {
builder = await toolkit.builder.inspect(inputs.builder);
stateHelper.setBuilderDriver(builder.driver ?? '');
stateHelper.setBuilderEndpoint(builder.nodes?.[0]?.endpoint ?? '');
core.info(JSON.stringify(builder, null, 2));
});

Expand Down Expand Up @@ -193,8 +195,6 @@ 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 is not yet supported with Docker Build Cloud');
} else if (refs.length == 0) {
core.info('Build summary requires at least one build reference');
} else {
Expand Down Expand Up @@ -237,8 +237,10 @@ actionsToolkit.run(
await GitHub.writeBuildSummary({
exportRes: exportRes,
uploadRes: uploadRes,
inputs: stateHelper.inputs,
bakeDefinition: stateHelper.bakeDefinition
inputs: stateHelper.summaryInputs,
bakeDefinition: stateHelper.bakeDefinition,
driver: stateHelper.builderDriver,
endpoint: stateHelper.builderEndpoint
});
} catch (e) {
core.warning(e.message);
Expand Down
35 changes: 31 additions & 4 deletions src/state-helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,28 @@ import * as core from '@actions/core';

import {BakeDefinition} from '@docker/actions-toolkit/lib/types/buildx/bake';

import {Inputs, sanitizeInputs} from './context';
import {Inputs} from './context';

export const tmpDir = process.env['STATE_tmpDir'] || '';
export const inputs = process.env['STATE_inputs'] ? JSON.parse(process.env['STATE_inputs']) : undefined;

export const builderDriver = process.env['STATE_builderDriver'] || '';
export const builderEndpoint = process.env['STATE_builderEndpoint'] || '';
export const summaryInputs = process.env['STATE_summaryInputs'] ? JSON.parse(process.env['STATE_summaryInputs']) : undefined;
export const bakeDefinition = process.env['STATE_bakeDefinition'] ? <BakeDefinition>JSON.parse(process.env['STATE_bakeDefinition']) : undefined;

export const buildRefs = process.env['STATE_buildRefs'] ? process.env['STATE_buildRefs'].split(',') : [];
export const isSummarySupported = !!process.env['STATE_isSummarySupported'];

export function setTmpDir(tmpDir: string) {
core.saveState('tmpDir', tmpDir);
}

export function setInputs(inputs: Inputs) {
core.saveState('inputs', JSON.stringify(sanitizeInputs(inputs)));
export function setBuilderDriver(builderDriver: string) {
core.saveState('builderDriver', builderDriver);
}

export function setBuilderEndpoint(builderEndpoint: string) {
core.saveState('builderEndpoint', builderEndpoint);
}

export function setBakeDefinition(bakeDefinition: BakeDefinition) {
Expand All @@ -29,3 +37,22 @@ export function setBuildRefs(buildRefs: Array<string>) {
export function setSummarySupported() {
core.saveState('isSummarySupported', 'true');
}

export function setSummaryInputs(inputs: Inputs) {
const res = {};
for (const key of Object.keys(inputs)) {
if (key === 'github-token') {
continue;
}
const value: string | string[] | boolean = inputs[key];
if (typeof value === 'boolean' && !value) {
continue;
} else if (Array.isArray(value) && value.length === 0) {
continue;
} else if (!value) {
continue;
}
res[key] = value;
}
core.saveState('summaryInputs', JSON.stringify(res));
}
109 changes: 85 additions & 24 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -91,15 +91,18 @@ __metadata:
languageName: node
linkType: hard

"@actions/github@npm:^6.0.0":
version: 6.0.0
resolution: "@actions/github@npm:6.0.0"
"@actions/github@npm:^6.0.1":
version: 6.0.1
resolution: "@actions/github@npm:6.0.1"
dependencies:
"@actions/http-client": ^2.2.0
"@octokit/core": ^5.0.1
"@octokit/plugin-paginate-rest": ^9.0.0
"@octokit/plugin-rest-endpoint-methods": ^10.0.0
checksum: 81831a78377175d8825fc0b94247ff366c0e87ad1dfa48df9b30b8659506f216dcf1e2d3124fcd318839b92c24ba20165e238b3cc11a34db89c69c40825e9ccf
"@octokit/plugin-paginate-rest": ^9.2.2
"@octokit/plugin-rest-endpoint-methods": ^10.4.0
"@octokit/request": ^8.4.1
"@octokit/request-error": ^5.1.1
undici: ^5.28.5
checksum: ba6a162a5727dea2f3f3fc450e02c5b336ceb65a0e26ba9ad9c62b20f4f5b2625ca347a9311a4905ef3c92378ca022caba841a283cb7f2e4175d79e3d1ecaf12
languageName: node
linkType: hard

Expand Down Expand Up @@ -1065,15 +1068,15 @@ __metadata:
languageName: node
linkType: hard

"@docker/actions-toolkit@npm:^0.61.0":
version: 0.61.0
resolution: "@docker/actions-toolkit@npm:0.61.0"
"@docker/actions-toolkit@https://github.com/crazy-max/docker-actions-toolkit#fix-dbc-summary":
version: 0.0.0+unknown
resolution: "@docker/actions-toolkit@https://github.com/crazy-max/docker-actions-toolkit.git#commit=2ea6fb21a553dfae7d7593d6da30c6a6ce6b9fad"
dependencies:
"@actions/artifact": ^2.3.2
"@actions/cache": ^4.0.3
"@actions/core": ^1.11.1
"@actions/exec": ^1.1.1
"@actions/github": ^6.0.0
"@actions/github": ^6.0.1
"@actions/http-client": ^2.2.3
"@actions/io": ^1.1.3
"@actions/tool-cache": ^2.0.2
Expand All @@ -1087,10 +1090,10 @@ __metadata:
he: ^1.2.0
js-yaml: ^4.1.0
jwt-decode: ^4.0.0
semver: ^7.7.1
semver: ^7.7.2
tar-stream: ^3.1.7
tmp: ^0.2.3
checksum: 60cc6c8f5bde8221a3d6a40c15258d44a468950353098f1814d8af3a14131df9c41df5b87298cd82f5c77aa4e36e262c15a5bb0cc03ea2857bea18c9e0952d80
checksum: 7201c44dcd871a837e4a0db0cc247cc00afdad07e57e9d7f1dc499e9868bcc5b5dd196c4e947e1e2568b67c26a2f2a30fba73d0b90410781d26274148987e524
languageName: node
linkType: hard

Expand Down Expand Up @@ -1689,6 +1692,16 @@ __metadata:
languageName: node
linkType: hard

"@octokit/endpoint@npm:^9.0.6":
version: 9.0.6
resolution: "@octokit/endpoint@npm:9.0.6"
dependencies:
"@octokit/types": ^13.1.0
universal-user-agent: ^6.0.0
checksum: f853c08f0777a8cc7c3d2509835d478e11a76d722f807d4f2ad7c0e64bf4dd159536409f466b367a907886aa3b78574d3d09ed95ac462c769e4fccaaad81e72a
languageName: node
linkType: hard

"@octokit/graphql@npm:^4.5.8":
version: 4.8.0
resolution: "@octokit/graphql@npm:4.8.0"
Expand Down Expand Up @@ -1732,6 +1745,13 @@ __metadata:
languageName: node
linkType: hard

"@octokit/openapi-types@npm:^24.2.0":
version: 24.2.0
resolution: "@octokit/openapi-types@npm:24.2.0"
checksum: 3c2d2f4cafd21c8a1e6a6fe6b56df6a3c09bc52ab6f829c151f9397694d028aa183ae856f08e006ee7ecaa7bd7eb413a903fbc0ffa6403e7b284ddcda20b1294
languageName: node
linkType: hard

"@octokit/plugin-paginate-rest@npm:^2.17.0":
version: 2.21.3
resolution: "@octokit/plugin-paginate-rest@npm:2.21.3"
Expand All @@ -1743,14 +1763,14 @@ __metadata:
languageName: node
linkType: hard

"@octokit/plugin-paginate-rest@npm:^9.0.0":
version: 9.0.0
resolution: "@octokit/plugin-paginate-rest@npm:9.0.0"
"@octokit/plugin-paginate-rest@npm:^9.2.2":
version: 9.2.2
resolution: "@octokit/plugin-paginate-rest@npm:9.2.2"
dependencies:
"@octokit/types": ^12.0.0
"@octokit/types": ^12.6.0
peerDependencies:
"@octokit/core": ">=5"
checksum: 4a8543f3e45c4916f94edc57d66106ee60da9fd4edccd7c3a2ddd00da1fc4eb2e1b2bcb3d6cb981a050edf883100c5004d0b81497568d4ac9138310a2188a458
"@octokit/core": 5
checksum: ea2a3ebf6abc128a1996c5ff7148ebe755ee2ed001aa0c1d3088d67a9d78b093d84820e3ec73bfb165ca8774943a1158afdae4cf7b90b0a07f12ebbe1d8a428b
languageName: node
linkType: hard

Expand All @@ -1763,7 +1783,7 @@ __metadata:
languageName: node
linkType: hard

"@octokit/plugin-rest-endpoint-methods@npm:^10.0.0, @octokit/plugin-rest-endpoint-methods@npm:^10.4.0":
"@octokit/plugin-rest-endpoint-methods@npm:^10.4.0":
version: 10.4.0
resolution: "@octokit/plugin-rest-endpoint-methods@npm:10.4.0"
dependencies:
Expand Down Expand Up @@ -1818,6 +1838,17 @@ __metadata:
languageName: node
linkType: hard

"@octokit/request-error@npm:^5.1.1":
version: 5.1.1
resolution: "@octokit/request-error@npm:5.1.1"
dependencies:
"@octokit/types": ^13.1.0
deprecation: ^2.0.0
once: ^1.4.0
checksum: 17d0b3f59c2a8a285715bfe6a85168d9c417aa7a0ff553b9be4198a3bc8bb00384a3530221a448eb19f8f07ea9fc48d264869624f5f84fa63a948a7af8cddc8c
languageName: node
linkType: hard

"@octokit/request@npm:^5.6.0, @octokit/request@npm:^5.6.3":
version: 5.6.3
resolution: "@octokit/request@npm:5.6.3"
Expand Down Expand Up @@ -1845,6 +1876,18 @@ __metadata:
languageName: node
linkType: hard

"@octokit/request@npm:^8.4.1":
version: 8.4.1
resolution: "@octokit/request@npm:8.4.1"
dependencies:
"@octokit/endpoint": ^9.0.6
"@octokit/request-error": ^5.1.1
"@octokit/types": ^13.1.0
universal-user-agent: ^6.0.0
checksum: 0ba76728583543baeef9fda98690bc86c57e0a3ccac8c189d2b7d144d248c89167eb37a071ed8fead8f4da0a1c55c4dd98a8fc598769c263b95179fb200959de
languageName: node
linkType: hard

"@octokit/types@npm:^12.0.0":
version: 12.0.0
resolution: "@octokit/types@npm:12.0.0"
Expand All @@ -1863,6 +1906,15 @@ __metadata:
languageName: node
linkType: hard

"@octokit/types@npm:^13.1.0":
version: 13.10.0
resolution: "@octokit/types@npm:13.10.0"
dependencies:
"@octokit/openapi-types": ^24.2.0
checksum: fca3764548d5872535b9025c3b5fe6373fe588b287cb5b5259364796c1931bbe5e9ab8a86a5274ce43bb2b3e43b730067c3b86b6b1ade12a98cd59b2e8b3610d
languageName: node
linkType: hard

"@octokit/types@npm:^6.0.3, @octokit/types@npm:^6.16.1, @octokit/types@npm:^6.39.0, @octokit/types@npm:^6.40.0":
version: 6.41.0
resolution: "@octokit/types@npm:6.41.0"
Expand Down Expand Up @@ -3141,7 +3193,7 @@ __metadata:
resolution: "docker-buildx-bake@workspace:."
dependencies:
"@actions/core": ^1.11.1
"@docker/actions-toolkit": ^0.61.0
"@docker/actions-toolkit": "https://github.com/crazy-max/docker-actions-toolkit#fix-dbc-summary"
"@types/node": ^20.12.12
"@typescript-eslint/eslint-plugin": ^7.9.0
"@typescript-eslint/parser": ^7.9.0
Expand Down Expand Up @@ -5801,12 +5853,12 @@ __metadata:
languageName: node
linkType: hard

"semver@npm:^7.7.1":
version: 7.7.1
resolution: "semver@npm:7.7.1"
"semver@npm:^7.7.2":
version: 7.7.2
resolution: "semver@npm:7.7.2"
bin:
semver: bin/semver.js
checksum: 586b825d36874007c9382d9e1ad8f93888d8670040add24a28e06a910aeebd673a2eb9e3bf169c6679d9245e66efb9057e0852e70d9daa6c27372aab1dda7104
checksum: dd94ba8f1cbc903d8eeb4dd8bf19f46b3deb14262b6717d0de3c804b594058ae785ef2e4b46c5c3b58733c99c83339068203002f9e37cfe44f7e2cc5e3d2f621
languageName: node
linkType: hard

Expand Down Expand Up @@ -6405,6 +6457,15 @@ __metadata:
languageName: node
linkType: hard

"undici@npm:^5.28.5":
version: 5.29.0
resolution: "undici@npm:5.29.0"
dependencies:
"@fastify/busboy": ^2.0.0
checksum: a25b5462c1b6ffb974f5ffc492ffd64146a9983aad0cbda6fde65e2b22f6f1acd43f09beacc66cc47624a113bd0c684ffc60366102b6a21b038fbfafb7d75195
languageName: node
linkType: hard

"unique-filename@npm:^3.0.0":
version: 3.0.0
resolution: "unique-filename@npm:3.0.0"
Expand Down
Loading