pull BuildKit image before builder creation

Signed-off-by: CrazyMax <1951866+crazy-max@users.noreply.github.com>
This commit is contained in:
CrazyMax
2026-09-15 09:25:29 +02:00
parent e8235251b8
commit 6268c9da9a
+36 -4
View File
@@ -124,9 +124,33 @@ actionsToolkit.run(
}
}
let builderExists = false;
if (inputs.driver !== 'docker') {
builderExists = await toolkit.builder.exists(inputs.name);
}
const appendNodes = inputs.append ? (yaml.load(inputs.append) as Node[]) : [];
if (!standalone && inputs.driver == 'docker-container') {
const buildkitImages = new Set<string>();
if (!builderExists) {
buildkitImages.add(resolveBuildKitImage(inputs.driverOpts));
}
for (const node of appendNodes) {
buildkitImages.add(resolveBuildKitImage(node['driver-opts']));
}
if (buildkitImages.size > 0) {
await core.group(`Pulling BuildKit image(s)`, async () => {
for (const image of buildkitImages) {
await Docker.pull(image);
}
});
}
}
if (inputs.driver !== 'docker') {
await core.group(`Creating a new builder instance`, async () => {
if (await toolkit.builder.exists(inputs.name)) {
if (builderExists) {
core.info(`Builder ${inputs.name} already exists, skipping creation`);
} else {
const certsDriverOpts = Buildx.resolveCertsDriverOpts(inputs.driver, inputs.endpoint, {
@@ -149,11 +173,10 @@ actionsToolkit.run(
});
}
if (inputs.append) {
if (appendNodes.length > 0) {
await core.group(`Appending node(s) to builder`, async () => {
let nodeIndex = 1;
const nodes = yaml.load(inputs.append) as Node[];
for (const node of nodes) {
for (const node of appendNodes) {
const certsDriverOpts = Buildx.resolveCertsDriverOpts(inputs.driver, `${node.endpoint}`, {
cacert: process.env[`${context.builderNodeEnvPrefix}_${nodeIndex}_AUTH_TLS_CACERT`],
cert: process.env[`${context.builderNodeEnvPrefix}_${nodeIndex}_AUTH_TLS_CERT`],
@@ -274,3 +297,12 @@ actionsToolkit.run(
}
}
);
function resolveBuildKitImage(driverOpts: string[] = []): string {
return (
driverOpts
.find(driverOpt => driverOpt.trim().startsWith('image='))
?.trim()
.substring('image='.length) || 'moby/buildkit:buildx-stable-1'
);
}