mirror of
https://github.com/docker/setup-buildx-action.git
synced 2025-04-28 02:46:37 +02:00
keepState
This commit is contained in:
parent
b467d6aa7a
commit
d052b32ba9
8 changed files with 1499 additions and 2082 deletions
|
@ -1,7 +1,6 @@
|
|||
import * as uuid from 'uuid';
|
||||
import * as core from '@actions/core';
|
||||
|
||||
import {Docker} from '@docker/actions-toolkit/lib/docker/docker';
|
||||
import {Util} from '@docker/actions-toolkit/lib/util';
|
||||
import {Toolkit} from '@docker/actions-toolkit/lib/toolkit';
|
||||
|
||||
|
@ -24,12 +23,13 @@ export interface Inputs {
|
|||
append: string;
|
||||
cacheBinary: boolean;
|
||||
cleanup: boolean;
|
||||
keepState: boolean;
|
||||
}
|
||||
|
||||
export async function getInputs(): Promise<Inputs> {
|
||||
return {
|
||||
version: core.getInput('version'),
|
||||
name: await getBuilderName(core.getInput('driver') || 'docker-container'),
|
||||
name: getBuilderName(core.getInput('name'), core.getInput('driver') || 'docker-container'),
|
||||
driver: core.getInput('driver') || 'docker-container',
|
||||
driverOpts: Util.getInputList('driver-opts', {ignoreComma: true, quote: false}),
|
||||
buildkitdFlags: core.getInput('buildkitd-flags') || '--allow-insecure-entitlement security.insecure --allow-insecure-entitlement network.host',
|
||||
|
@ -41,12 +41,17 @@ export async function getInputs(): Promise<Inputs> {
|
|||
buildkitdConfigInline: core.getInput('buildkitd-config-inline') || core.getInput('config-inline'),
|
||||
append: core.getInput('append'),
|
||||
cacheBinary: core.getBooleanInput('cache-binary'),
|
||||
cleanup: core.getBooleanInput('cleanup')
|
||||
cleanup: core.getBooleanInput('cleanup'),
|
||||
keepState: core.getBooleanInput('keep-state')
|
||||
};
|
||||
}
|
||||
|
||||
export async function getBuilderName(driver: string): Promise<string> {
|
||||
return driver == 'docker' ? await Docker.context() : `builder-${uuid.v4()}`;
|
||||
export function getBuilderName(name: string, driver: string): string {
|
||||
if (name) {
|
||||
return name;
|
||||
}
|
||||
|
||||
return driver == 'docker' ? 'default' : `builder-${uuid.v4()}`;
|
||||
}
|
||||
|
||||
export async function getCreateArgs(inputs: Inputs, toolkit: Toolkit): Promise<Array<string>> {
|
||||
|
|
|
@ -70,6 +70,8 @@ actionsToolkit.run(
|
|||
fs.mkdirSync(Buildx.certsDir, {recursive: true});
|
||||
stateHelper.setCertsDir(Buildx.certsDir);
|
||||
|
||||
stateHelper.setKeepState(inputs.keepState);
|
||||
|
||||
// if the default context has TLS data loaded and endpoint is not set, then
|
||||
// we create a temporary docker context only if driver is docker-container
|
||||
// https://github.com/docker/buildx/blob/b96ad59f64d40873e4959336d294b648bb3937fe/builder/builder.go#L489
|
||||
|
@ -247,7 +249,7 @@ actionsToolkit.run(
|
|||
const buildx = new Buildx({standalone: stateHelper.standalone});
|
||||
const builder = new Builder({buildx: buildx});
|
||||
if (await builder.exists(stateHelper.builderName)) {
|
||||
const rmCmd = await buildx.getCommand(['rm', stateHelper.builderName]);
|
||||
const rmCmd = await buildx.getCommand(['rm', stateHelper.builderName, stateHelper.keepState ? '--keep-state' : '']);
|
||||
await Exec.getExecOutput(rmCmd.command, rmCmd.args, {
|
||||
ignoreReturnCode: true
|
||||
}).then(res => {
|
||||
|
|
|
@ -8,6 +8,7 @@ export const containerName = process.env['STATE_containerName'] || '';
|
|||
export const certsDir = process.env['STATE_certsDir'] || '';
|
||||
export const tmpDockerContext = process.env['STATE_tmpDockerContext'] || '';
|
||||
export const cleanup = /true/i.test(process.env['STATE_cleanup'] || '');
|
||||
export const keepState = !!process.env['STATE_keepState'];
|
||||
|
||||
export function setDebug(debug: string) {
|
||||
core.saveState('isDebug', debug);
|
||||
|
@ -40,3 +41,7 @@ export function setTmpDockerContext(tmpDockerContext: string) {
|
|||
export function setCleanup(cleanup: boolean) {
|
||||
core.saveState('cleanup', cleanup);
|
||||
}
|
||||
|
||||
export function setKeepState(retain: boolean) {
|
||||
core.saveState('keepState', retain);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue