docker: set default standalone

Signed-off-by: CrazyMax <crazy-max@users.noreply.github.com>
This commit is contained in:
CrazyMax
2023-01-23 14:48:00 +01:00
parent fe07aec685
commit fdc8b5d37b
4 changed files with 15 additions and 21 deletions

View File

@@ -18,22 +18,10 @@ export class Buildx {
private tmpdir = fs.mkdtempSync(path.join(os.tmpdir(), 'docker-actions-toolkit-')).split(path.sep).join(path.posix.sep);
constructor(opts?: BuildxOpts) {
this.standalone = opts?.standalone ?? this.isStandalone();
this.standalone = opts?.standalone ?? !Docker.isAvailable();
this.version = this.getVersion();
}
private isStandalone(): boolean {
let dockerAvailable = false;
Docker.isAvailable()
.then((res: boolean) => {
dockerAvailable = res;
})
.catch(e => {
dockerAvailable = false;
});
return dockerAvailable;
}
public getCommand(args: Array<string>) {
return {
command: this.standalone ? 'buildx' : 'docker',

View File

@@ -2,26 +2,30 @@ import * as core from '@actions/core';
import * as exec from '@actions/exec';
export class Docker {
public static async isAvailable(): Promise<boolean> {
return await exec
public static isAvailable(): boolean {
let dockerAvailable = false;
exec
.getExecOutput('docker', undefined, {
ignoreReturnCode: true,
silent: true
})
.then(res => {
if (res.stderr.length > 0 && res.exitCode != 0) {
return false;
dockerAvailable = false;
} else {
dockerAvailable = res.exitCode == 0;
}
return res.exitCode == 0;
})
// eslint-disable-next-line @typescript-eslint/no-unused-vars
.catch(error => {
return false;
dockerAvailable = false;
});
return dockerAvailable;
}
public static async info(standalone?: boolean) {
if (standalone) {
const dockerAvailable = standalone ?? !Docker.isAvailable();
if (dockerAvailable) {
core.info(`Docker info skipped in standalone mode`);
} else {
await exec.exec('docker', ['version'], {