Merge pull request #218 from crazy-max/fix-builder-removal

do not remove builder using the docker driver
This commit is contained in:
CrazyMax 2023-03-10 09:28:46 +00:00 committed by GitHub
commit eb27bcbef3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 13 deletions

2
dist/index.js generated vendored

File diff suppressed because one or more lines are too long

2
dist/index.js.map generated vendored

File diff suppressed because one or more lines are too long

View File

@ -4,6 +4,7 @@ import * as core from '@actions/core';
import * as exec from '@actions/exec'; import * as exec from '@actions/exec';
import * as actionsToolkit from '@docker/actions-toolkit'; import * as actionsToolkit from '@docker/actions-toolkit';
import {Buildx} from '@docker/actions-toolkit/lib/buildx/buildx'; import {Buildx} from '@docker/actions-toolkit/lib/buildx/buildx';
import {Builder} from '@docker/actions-toolkit/lib/buildx/builder';
import {Docker} from '@docker/actions-toolkit/lib/docker/docker'; import {Docker} from '@docker/actions-toolkit/lib/docker/docker';
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit'; import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
import {Util} from '@docker/actions-toolkit/lib/util'; import {Util} from '@docker/actions-toolkit/lib/util';
@ -60,6 +61,7 @@ actionsToolkit.run(
core.setOutput('name', inputs.name); core.setOutput('name', inputs.name);
stateHelper.setBuilderName(inputs.name); stateHelper.setBuilderName(inputs.name);
stateHelper.setBuilderDriver(inputs.driver);
fs.mkdirSync(Buildx.certsDir, {recursive: true}); fs.mkdirSync(Buildx.certsDir, {recursive: true});
stateHelper.setCertsDir(Buildx.certsDir); stateHelper.setCertsDir(Buildx.certsDir);
@ -169,19 +171,24 @@ actionsToolkit.run(
return; return;
} }
if (stateHelper.builderName.length > 0) { if (stateHelper.builderDriver != 'docker' && stateHelper.builderName.length > 0) {
await core.group(`Removing builder`, async () => { await core.group(`Removing builder`, async () => {
const buildx = new Buildx({standalone: stateHelper.standalone}); const buildx = new Buildx({standalone: stateHelper.standalone});
const rmCmd = await buildx.getCommand(['rm', stateHelper.builderName]); const builder = new Builder({buildx: buildx});
await exec if (await builder.exists(stateHelper.builderName)) {
.getExecOutput(rmCmd.command, rmCmd.args, { const rmCmd = await buildx.getCommand(['rm', stateHelper.builderName]);
ignoreReturnCode: true await exec
}) .getExecOutput(rmCmd.command, rmCmd.args, {
.then(res => { ignoreReturnCode: true
if (res.stderr.length > 0 && res.exitCode != 0) { })
core.warning(res.stderr.trim()); .then(res => {
} if (res.stderr.length > 0 && res.exitCode != 0) {
}); core.warning(res.stderr.trim());
}
});
} else {
core.info(`${stateHelper.builderName} does not exist`);
}
}); });
} }

View File

@ -3,6 +3,7 @@ import * as core from '@actions/core';
export const IsDebug = !!process.env['STATE_isDebug']; export const IsDebug = !!process.env['STATE_isDebug'];
export const standalone = /true/i.test(process.env['STATE_standalone'] || ''); export const standalone = /true/i.test(process.env['STATE_standalone'] || '');
export const builderName = process.env['STATE_builderName'] || ''; export const builderName = process.env['STATE_builderName'] || '';
export const builderDriver = process.env['STATE_builderDriver'] || '';
export const containerName = process.env['STATE_containerName'] || ''; export const containerName = process.env['STATE_containerName'] || '';
export const certsDir = process.env['STATE_certsDir'] || ''; export const certsDir = process.env['STATE_certsDir'] || '';
export const cleanup = /true/i.test(process.env['STATE_cleanup'] || ''); export const cleanup = /true/i.test(process.env['STATE_cleanup'] || '');
@ -19,6 +20,10 @@ export function setBuilderName(builderName: string) {
core.saveState('builderName', builderName); core.saveState('builderName', builderName);
} }
export function setBuilderDriver(builderDriver: string) {
core.saveState('builderDriver', builderDriver);
}
export function setContainerName(containerName: string) { export function setContainerName(containerName: string) {
core.saveState('containerName', containerName); core.saveState('containerName', containerName);
} }