Skip to content

Commit eb27bcb

Browse files
authored
Merge pull request #218 from crazy-max/fix-builder-removal
do not remove builder using the docker driver
2 parents f549413 + b7471d4 commit eb27bcb

File tree

4 files changed

+25
-13
lines changed

4 files changed

+25
-13
lines changed

dist/index.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

dist/index.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/main.ts

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import * as core from '@actions/core';
44
import * as exec from '@actions/exec';
55
import * as actionsToolkit from '@docker/actions-toolkit';
66
import {Buildx} from '@docker/actions-toolkit/lib/buildx/buildx';
7+
import {Builder} from '@docker/actions-toolkit/lib/buildx/builder';
78
import {Docker} from '@docker/actions-toolkit/lib/docker/docker';
89
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
910
import {Util} from '@docker/actions-toolkit/lib/util';
@@ -60,6 +61,7 @@ actionsToolkit.run(
6061

6162
core.setOutput('name', inputs.name);
6263
stateHelper.setBuilderName(inputs.name);
64+
stateHelper.setBuilderDriver(inputs.driver);
6365

6466
fs.mkdirSync(Buildx.certsDir, {recursive: true});
6567
stateHelper.setCertsDir(Buildx.certsDir);
@@ -169,19 +171,24 @@ actionsToolkit.run(
169171
return;
170172
}
171173

172-
if (stateHelper.builderName.length > 0) {
174+
if (stateHelper.builderDriver != 'docker' && stateHelper.builderName.length > 0) {
173175
await core.group(`Removing builder`, async () => {
174176
const buildx = new Buildx({standalone: stateHelper.standalone});
175-
const rmCmd = await buildx.getCommand(['rm', stateHelper.builderName]);
176-
await exec
177-
.getExecOutput(rmCmd.command, rmCmd.args, {
178-
ignoreReturnCode: true
179-
})
180-
.then(res => {
181-
if (res.stderr.length > 0 && res.exitCode != 0) {
182-
core.warning(res.stderr.trim());
183-
}
184-
});
177+
const builder = new Builder({buildx: buildx});
178+
if (await builder.exists(stateHelper.builderName)) {
179+
const rmCmd = await buildx.getCommand(['rm', stateHelper.builderName]);
180+
await exec
181+
.getExecOutput(rmCmd.command, rmCmd.args, {
182+
ignoreReturnCode: true
183+
})
184+
.then(res => {
185+
if (res.stderr.length > 0 && res.exitCode != 0) {
186+
core.warning(res.stderr.trim());
187+
}
188+
});
189+
} else {
190+
core.info(`${stateHelper.builderName} does not exist`);
191+
}
185192
});
186193
}
187194

src/state-helper.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import * as core from '@actions/core';
33
export const IsDebug = !!process.env['STATE_isDebug'];
44
export const standalone = /true/i.test(process.env['STATE_standalone'] || '');
55
export const builderName = process.env['STATE_builderName'] || '';
6+
export const builderDriver = process.env['STATE_builderDriver'] || '';
67
export const containerName = process.env['STATE_containerName'] || '';
78
export const certsDir = process.env['STATE_certsDir'] || '';
89
export const cleanup = /true/i.test(process.env['STATE_cleanup'] || '');
@@ -19,6 +20,10 @@ export function setBuilderName(builderName: string) {
1920
core.saveState('builderName', builderName);
2021
}
2122

23+
export function setBuilderDriver(builderDriver: string) {
24+
core.saveState('builderDriver', builderDriver);
25+
}
26+
2227
export function setContainerName(containerName: string) {
2328
core.saveState('containerName', containerName);
2429
}

0 commit comments

Comments
 (0)