@docker/actions-toolkit 0.12.0-rc.2 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/buildkit/buildkit.js +59 -72
- package/lib/buildkit/buildkit.js.map +1 -1
- package/lib/buildx/bake.js +43 -53
- package/lib/buildx/bake.js.map +1 -1
- package/lib/buildx/builder.js +29 -41
- package/lib/buildx/builder.js.map +1 -1
- package/lib/buildx/buildx.js +63 -84
- package/lib/buildx/buildx.js.map +1 -1
- package/lib/buildx/install.js +204 -230
- package/lib/buildx/install.js.map +1 -1
- package/lib/context.js +1 -1
- package/lib/context.js.map +1 -1
- package/lib/docker/docker.js +26 -43
- package/lib/docker/docker.js.map +1 -1
- package/lib/docker/install.js +313 -339
- package/lib/docker/install.js.map +1 -1
- package/lib/dockerhub.js +70 -91
- package/lib/dockerhub.js.map +1 -1
- package/lib/exec.js +6 -19
- package/lib/exec.js.map +1 -1
- package/lib/git.js +75 -102
- package/lib/git.js.map +1 -1
- package/lib/github.js +36 -46
- package/lib/github.js.map +1 -1
- package/lib/index.js +10 -21
- package/lib/index.js.map +1 -1
- package/lib/toolkit.js +6 -0
- package/lib/toolkit.js.map +1 -1
- package/lib/util.js +20 -33
- package/lib/util.js.map +1 -1
- package/package.json +16 -17
package/lib/buildkit/buildkit.js
CHANGED
|
@@ -37,15 +37,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
37
37
|
__setModuleDefault(result, mod);
|
|
38
38
|
return result;
|
|
39
39
|
};
|
|
40
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
41
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
42
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
43
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
44
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
45
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
46
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
41
|
exports.BuildKit = void 0;
|
|
51
42
|
const core = __importStar(require("@actions/core"));
|
|
@@ -55,80 +46,76 @@ const builder_1 = require("../buildx/builder");
|
|
|
55
46
|
const config_1 = require("./config");
|
|
56
47
|
const exec_1 = require("../exec");
|
|
57
48
|
class BuildKit {
|
|
49
|
+
buildx;
|
|
50
|
+
config;
|
|
58
51
|
constructor(opts) {
|
|
59
52
|
this.config = new config_1.Config();
|
|
60
|
-
this.buildx =
|
|
53
|
+
this.buildx = opts?.buildx || new buildx_1.Buildx();
|
|
61
54
|
}
|
|
62
|
-
getVersion(node) {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
return yield this.getVersionWithinImage(node.name);
|
|
67
|
-
}
|
|
68
|
-
catch (e) {
|
|
69
|
-
core.warning(e);
|
|
70
|
-
}
|
|
55
|
+
async getVersion(node) {
|
|
56
|
+
if (!node.buildkit && node.name) {
|
|
57
|
+
try {
|
|
58
|
+
return await this.getVersionWithinImage(node.name);
|
|
71
59
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
getVersionWithinImage(nodeName) {
|
|
76
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
-
core.debug(`BuildKit.getVersionWithinImage nodeName: ${nodeName}`);
|
|
78
|
-
return exec_1.Exec.getExecOutput(`docker`, ['inspect', '--format', '{{.Config.Image}}', `${buildx_1.Buildx.containerNamePrefix}${nodeName}`], {
|
|
79
|
-
ignoreReturnCode: true,
|
|
80
|
-
silent: true
|
|
81
|
-
}).then(bkitimage => {
|
|
82
|
-
if (bkitimage.exitCode == 0 && bkitimage.stdout.length > 0) {
|
|
83
|
-
core.debug(`BuildKit.getVersionWithinImage image: ${bkitimage.stdout.trim()}`);
|
|
84
|
-
return exec_1.Exec.getExecOutput(`docker`, ['run', '--rm', bkitimage.stdout.trim(), '--version'], {
|
|
85
|
-
ignoreReturnCode: true,
|
|
86
|
-
silent: true
|
|
87
|
-
}).then(bkitversion => {
|
|
88
|
-
if (bkitversion.exitCode == 0 && bkitversion.stdout.length > 0) {
|
|
89
|
-
return `${bkitimage.stdout.trim()} => ${bkitversion.stdout.trim()}`;
|
|
90
|
-
}
|
|
91
|
-
else if (bkitversion.stderr.length > 0) {
|
|
92
|
-
throw new Error(bkitimage.stderr.trim());
|
|
93
|
-
}
|
|
94
|
-
return bkitversion.stdout.trim();
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
|
-
else if (bkitimage.stderr.length > 0) {
|
|
98
|
-
throw new Error(bkitimage.stderr.trim());
|
|
99
|
-
}
|
|
100
|
-
return bkitimage.stdout.trim();
|
|
101
|
-
});
|
|
102
|
-
});
|
|
103
|
-
}
|
|
104
|
-
versionSatisfies(builderName, range, builderInfo) {
|
|
105
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
106
|
-
if (!builderInfo) {
|
|
107
|
-
builderInfo = yield new builder_1.Builder({ buildx: this.buildx }).inspect(builderName);
|
|
60
|
+
catch (e) {
|
|
61
|
+
core.warning(e);
|
|
108
62
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
63
|
+
}
|
|
64
|
+
return node.buildkit;
|
|
65
|
+
}
|
|
66
|
+
async getVersionWithinImage(nodeName) {
|
|
67
|
+
core.debug(`BuildKit.getVersionWithinImage nodeName: ${nodeName}`);
|
|
68
|
+
return exec_1.Exec.getExecOutput(`docker`, ['inspect', '--format', '{{.Config.Image}}', `${buildx_1.Buildx.containerNamePrefix}${nodeName}`], {
|
|
69
|
+
ignoreReturnCode: true,
|
|
70
|
+
silent: true
|
|
71
|
+
}).then(bkitimage => {
|
|
72
|
+
if (bkitimage.exitCode == 0 && bkitimage.stdout.length > 0) {
|
|
73
|
+
core.debug(`BuildKit.getVersionWithinImage image: ${bkitimage.stdout.trim()}`);
|
|
74
|
+
return exec_1.Exec.getExecOutput(`docker`, ['run', '--rm', bkitimage.stdout.trim(), '--version'], {
|
|
75
|
+
ignoreReturnCode: true,
|
|
76
|
+
silent: true
|
|
77
|
+
}).then(bkitversion => {
|
|
78
|
+
if (bkitversion.exitCode == 0 && bkitversion.stdout.length > 0) {
|
|
79
|
+
return `${bkitimage.stdout.trim()} => ${bkitversion.stdout.trim()}`;
|
|
115
80
|
}
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
return false;
|
|
81
|
+
else if (bkitversion.stderr.length > 0) {
|
|
82
|
+
throw new Error(bkitimage.stderr.trim());
|
|
119
83
|
}
|
|
84
|
+
return bkitversion.stdout.trim();
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
else if (bkitimage.stderr.length > 0) {
|
|
88
|
+
throw new Error(bkitimage.stderr.trim());
|
|
89
|
+
}
|
|
90
|
+
return bkitimage.stdout.trim();
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
async versionSatisfies(builderName, range, builderInfo) {
|
|
94
|
+
if (!builderInfo) {
|
|
95
|
+
builderInfo = await new builder_1.Builder({ buildx: this.buildx }).inspect(builderName);
|
|
96
|
+
}
|
|
97
|
+
for (const node of builderInfo.nodes) {
|
|
98
|
+
let bkversion = node.buildkit;
|
|
99
|
+
core.debug(`BuildKit.versionSatisfies ${bkversion}: ${range}`);
|
|
100
|
+
if (!bkversion) {
|
|
101
|
+
try {
|
|
102
|
+
bkversion = await this.getVersionWithinImage(node.name || '');
|
|
120
103
|
}
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
if (builderInfo.driver == 'docker' && !bkversion.endsWith('-moby')) {
|
|
124
|
-
return false;
|
|
125
|
-
}
|
|
126
|
-
if (!semver.satisfies(bkversion.replace(/-moby$/, ''), range)) {
|
|
104
|
+
catch (e) {
|
|
105
|
+
core.debug(`BuildKit.versionSatisfies ${node.name}: can't get version`);
|
|
127
106
|
return false;
|
|
128
107
|
}
|
|
129
108
|
}
|
|
130
|
-
|
|
131
|
-
|
|
109
|
+
core.debug(`BuildKit.versionSatisfies ${node.name}: version ${bkversion}`);
|
|
110
|
+
// BuildKit version reported by moby is in the format of `v0.11.0-moby`
|
|
111
|
+
if (builderInfo.driver == 'docker' && !bkversion.endsWith('-moby')) {
|
|
112
|
+
return false;
|
|
113
|
+
}
|
|
114
|
+
if (!semver.satisfies(bkversion.replace(/-moby$/, ''), range)) {
|
|
115
|
+
return false;
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return true;
|
|
132
119
|
}
|
|
133
120
|
}
|
|
134
121
|
exports.BuildKit = BuildKit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildkit.js","sourceRoot":"","sources":["../../src/buildkit/buildkit.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG
|
|
1
|
+
{"version":3,"file":"buildkit.js","sourceRoot":"","sources":["../../src/buildkit/buildkit.ts"],"names":[],"mappings":"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"}
|
package/lib/buildx/bake.js
CHANGED
|
@@ -14,15 +14,6 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
18
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
19
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
20
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
21
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
22
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
23
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
24
|
-
});
|
|
25
|
-
};
|
|
26
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
18
|
exports.Bake = void 0;
|
|
28
19
|
const buildx_1 = require("./buildx");
|
|
@@ -30,57 +21,56 @@ const exec_1 = require("../exec");
|
|
|
30
21
|
const inputs_1 = require("./inputs");
|
|
31
22
|
const util_1 = require("../util");
|
|
32
23
|
class Bake {
|
|
24
|
+
buildx;
|
|
33
25
|
constructor(opts) {
|
|
34
|
-
this.buildx =
|
|
26
|
+
this.buildx = opts?.buildx || new buildx_1.Buildx();
|
|
35
27
|
}
|
|
36
|
-
parseDefinitions(sources, targets, overrides, load, push, workdir) {
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
continue;
|
|
45
|
-
}
|
|
46
|
-
if (!util_1.Util.isValidRef(source)) {
|
|
47
|
-
files.push(source);
|
|
48
|
-
continue;
|
|
49
|
-
}
|
|
50
|
-
if (remoteDef) {
|
|
51
|
-
throw new Error(`Only one remote bake definition is allowed`);
|
|
52
|
-
}
|
|
53
|
-
remoteDef = source;
|
|
28
|
+
async parseDefinitions(sources, targets, overrides, load, push, workdir) {
|
|
29
|
+
const args = ['bake'];
|
|
30
|
+
let remoteDef;
|
|
31
|
+
const files = [];
|
|
32
|
+
if (sources) {
|
|
33
|
+
for (const source of sources.map(v => v.trim())) {
|
|
34
|
+
if (source.length == 0) {
|
|
35
|
+
continue;
|
|
54
36
|
}
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
}
|
|
59
|
-
for (const file of files) {
|
|
60
|
-
args.push('--file', file);
|
|
61
|
-
}
|
|
62
|
-
if (overrides) {
|
|
63
|
-
for (const override of overrides) {
|
|
64
|
-
args.push('--set', override);
|
|
37
|
+
if (!util_1.Util.isValidRef(source)) {
|
|
38
|
+
files.push(source);
|
|
39
|
+
continue;
|
|
65
40
|
}
|
|
41
|
+
if (remoteDef) {
|
|
42
|
+
throw new Error(`Only one remote bake definition is allowed`);
|
|
43
|
+
}
|
|
44
|
+
remoteDef = source;
|
|
66
45
|
}
|
|
67
|
-
|
|
68
|
-
|
|
46
|
+
}
|
|
47
|
+
if (remoteDef) {
|
|
48
|
+
args.push(remoteDef);
|
|
49
|
+
}
|
|
50
|
+
for (const file of files) {
|
|
51
|
+
args.push('--file', file);
|
|
52
|
+
}
|
|
53
|
+
if (overrides) {
|
|
54
|
+
for (const override of overrides) {
|
|
55
|
+
args.push('--set', override);
|
|
69
56
|
}
|
|
70
|
-
|
|
71
|
-
|
|
57
|
+
}
|
|
58
|
+
if (load) {
|
|
59
|
+
args.push('--load');
|
|
60
|
+
}
|
|
61
|
+
if (push) {
|
|
62
|
+
args.push('--push');
|
|
63
|
+
}
|
|
64
|
+
const printCmd = await this.buildx.getCommand([...args, '--print', ...(targets || [])]);
|
|
65
|
+
return await exec_1.Exec.getExecOutput(printCmd.command, printCmd.args, {
|
|
66
|
+
cwd: workdir,
|
|
67
|
+
ignoreReturnCode: true,
|
|
68
|
+
silent: true
|
|
69
|
+
}).then(res => {
|
|
70
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
71
|
+
throw new Error(res.stderr);
|
|
72
72
|
}
|
|
73
|
-
|
|
74
|
-
return yield exec_1.Exec.getExecOutput(printCmd.command, printCmd.args, {
|
|
75
|
-
cwd: workdir,
|
|
76
|
-
ignoreReturnCode: true,
|
|
77
|
-
silent: true
|
|
78
|
-
}).then(res => {
|
|
79
|
-
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
80
|
-
throw new Error(res.stderr);
|
|
81
|
-
}
|
|
82
|
-
return JSON.parse(res.stdout.trim());
|
|
83
|
-
});
|
|
73
|
+
return JSON.parse(res.stdout.trim());
|
|
84
74
|
});
|
|
85
75
|
}
|
|
86
76
|
static hasLocalExporter(def) {
|
package/lib/buildx/bake.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bake.js","sourceRoot":"","sources":["../../src/buildx/bake.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG
|
|
1
|
+
{"version":3,"file":"bake.js","sourceRoot":"","sources":["../../src/buildx/bake.ts"],"names":[],"mappings":"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"}
|
package/lib/buildx/builder.js
CHANGED
|
@@ -37,58 +37,46 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
37
37
|
__setModuleDefault(result, mod);
|
|
38
38
|
return result;
|
|
39
39
|
};
|
|
40
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
41
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
42
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
43
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
44
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
45
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
46
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
41
|
exports.Builder = void 0;
|
|
51
42
|
const core = __importStar(require("@actions/core"));
|
|
52
43
|
const buildx_1 = require("./buildx");
|
|
53
44
|
const exec_1 = require("../exec");
|
|
54
45
|
class Builder {
|
|
46
|
+
buildx;
|
|
55
47
|
constructor(opts) {
|
|
56
|
-
this.buildx =
|
|
48
|
+
this.buildx = opts?.buildx || new buildx_1.Buildx();
|
|
57
49
|
}
|
|
58
|
-
exists(name) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
core.debug(`Builder.exists cmd err: ${res.stderr.trim()}`);
|
|
68
|
-
return false;
|
|
69
|
-
}
|
|
70
|
-
return res.exitCode == 0;
|
|
71
|
-
})
|
|
72
|
-
.catch(error => {
|
|
73
|
-
core.debug(`Builder.exists error: ${error}`);
|
|
50
|
+
async exists(name) {
|
|
51
|
+
const cmd = await this.buildx.getCommand(['inspect', name]);
|
|
52
|
+
const ok = await exec_1.Exec.getExecOutput(cmd.command, cmd.args, {
|
|
53
|
+
ignoreReturnCode: true,
|
|
54
|
+
silent: true
|
|
55
|
+
})
|
|
56
|
+
.then(res => {
|
|
57
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
58
|
+
core.debug(`Builder.exists cmd err: ${res.stderr.trim()}`);
|
|
74
59
|
return false;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
60
|
+
}
|
|
61
|
+
return res.exitCode == 0;
|
|
62
|
+
})
|
|
63
|
+
.catch(error => {
|
|
64
|
+
core.debug(`Builder.exists error: ${error}`);
|
|
65
|
+
return false;
|
|
78
66
|
});
|
|
67
|
+
core.debug(`Builder.exists: ${ok}`);
|
|
68
|
+
return ok;
|
|
79
69
|
}
|
|
80
|
-
inspect(name) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
return Builder.parseInspect(res.stdout);
|
|
91
|
-
});
|
|
70
|
+
async inspect(name) {
|
|
71
|
+
const cmd = await this.buildx.getCommand(['inspect', name]);
|
|
72
|
+
return await exec_1.Exec.getExecOutput(cmd.command, cmd.args, {
|
|
73
|
+
ignoreReturnCode: true,
|
|
74
|
+
silent: true
|
|
75
|
+
}).then(res => {
|
|
76
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
77
|
+
throw new Error(res.stderr.trim());
|
|
78
|
+
}
|
|
79
|
+
return Builder.parseInspect(res.stdout);
|
|
92
80
|
});
|
|
93
81
|
}
|
|
94
82
|
static parseInspect(data) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/buildx/builder.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG
|
|
1
|
+
{"version":3,"file":"builder.js","sourceRoot":"","sources":["../../src/buildx/builder.ts"],"names":[],"mappings":"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"}
|
package/lib/buildx/buildx.js
CHANGED
|
@@ -37,15 +37,6 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
37
37
|
__setModuleDefault(result, mod);
|
|
38
38
|
return result;
|
|
39
39
|
};
|
|
40
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
41
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
42
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
43
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
44
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
45
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
46
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
47
|
-
});
|
|
48
|
-
};
|
|
49
40
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
41
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
42
|
};
|
|
@@ -58,8 +49,12 @@ const semver = __importStar(require("semver"));
|
|
|
58
49
|
const docker_1 = require("../docker/docker");
|
|
59
50
|
const exec_1 = require("../exec");
|
|
60
51
|
class Buildx {
|
|
52
|
+
_version;
|
|
53
|
+
_versionOnce;
|
|
54
|
+
_standalone;
|
|
55
|
+
static containerNamePrefix = 'buildx_buildkit_';
|
|
61
56
|
constructor(opts) {
|
|
62
|
-
this._standalone = opts
|
|
57
|
+
this._standalone = opts?.standalone;
|
|
63
58
|
this._version = '';
|
|
64
59
|
this._versionOnce = false;
|
|
65
60
|
}
|
|
@@ -69,78 +64,65 @@ class Buildx {
|
|
|
69
64
|
static get certsDir() {
|
|
70
65
|
return path_1.default.join(Buildx.configDir, 'certs');
|
|
71
66
|
}
|
|
72
|
-
isStandalone() {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
core.debug(`Buildx.isStandalone: ${standalone}`);
|
|
77
|
-
return standalone;
|
|
78
|
-
});
|
|
67
|
+
async isStandalone() {
|
|
68
|
+
const standalone = this._standalone ?? !(await docker_1.Docker.isAvailable());
|
|
69
|
+
core.debug(`Buildx.isStandalone: ${standalone}`);
|
|
70
|
+
return standalone;
|
|
79
71
|
}
|
|
80
|
-
getCommand(args) {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
};
|
|
87
|
-
});
|
|
72
|
+
async getCommand(args) {
|
|
73
|
+
const standalone = await this.isStandalone();
|
|
74
|
+
return {
|
|
75
|
+
command: standalone ? 'buildx' : 'docker',
|
|
76
|
+
args: standalone ? args : ['buildx', ...args]
|
|
77
|
+
};
|
|
88
78
|
}
|
|
89
|
-
isAvailable() {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
core.debug(`Buildx.isAvailable cmd err: ${res.stderr.trim()}`);
|
|
99
|
-
return false;
|
|
100
|
-
}
|
|
101
|
-
return res.exitCode == 0;
|
|
102
|
-
})
|
|
103
|
-
.catch(error => {
|
|
104
|
-
core.debug(`Buildx.isAvailable error: ${error}`);
|
|
79
|
+
async isAvailable() {
|
|
80
|
+
const cmd = await this.getCommand([]);
|
|
81
|
+
const ok = await exec_1.Exec.getExecOutput(cmd.command, cmd.args, {
|
|
82
|
+
ignoreReturnCode: true,
|
|
83
|
+
silent: true
|
|
84
|
+
})
|
|
85
|
+
.then(res => {
|
|
86
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
87
|
+
core.debug(`Buildx.isAvailable cmd err: ${res.stderr.trim()}`);
|
|
105
88
|
return false;
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
|
|
89
|
+
}
|
|
90
|
+
return res.exitCode == 0;
|
|
91
|
+
})
|
|
92
|
+
.catch(error => {
|
|
93
|
+
core.debug(`Buildx.isAvailable error: ${error}`);
|
|
94
|
+
return false;
|
|
109
95
|
});
|
|
96
|
+
core.debug(`Buildx.isAvailable: ${ok}`);
|
|
97
|
+
return ok;
|
|
110
98
|
}
|
|
111
|
-
printInspect(name) {
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
failOnStdErr: false
|
|
116
|
-
});
|
|
99
|
+
async printInspect(name) {
|
|
100
|
+
const cmd = await this.getCommand(['inspect', name]);
|
|
101
|
+
await exec_1.Exec.exec(cmd.command, cmd.args, {
|
|
102
|
+
failOnStdErr: false
|
|
117
103
|
});
|
|
118
104
|
}
|
|
119
|
-
version() {
|
|
120
|
-
|
|
121
|
-
if (this._versionOnce) {
|
|
122
|
-
return this._version;
|
|
123
|
-
}
|
|
124
|
-
this._versionOnce = true;
|
|
125
|
-
const cmd = yield this.getCommand(['version']);
|
|
126
|
-
this._version = yield exec_1.Exec.getExecOutput(cmd.command, cmd.args, {
|
|
127
|
-
ignoreReturnCode: true,
|
|
128
|
-
silent: true
|
|
129
|
-
}).then(res => {
|
|
130
|
-
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
131
|
-
throw new Error(res.stderr.trim());
|
|
132
|
-
}
|
|
133
|
-
return Buildx.parseVersion(res.stdout.trim());
|
|
134
|
-
});
|
|
105
|
+
async version() {
|
|
106
|
+
if (this._versionOnce) {
|
|
135
107
|
return this._version;
|
|
108
|
+
}
|
|
109
|
+
this._versionOnce = true;
|
|
110
|
+
const cmd = await this.getCommand(['version']);
|
|
111
|
+
this._version = await exec_1.Exec.getExecOutput(cmd.command, cmd.args, {
|
|
112
|
+
ignoreReturnCode: true,
|
|
113
|
+
silent: true
|
|
114
|
+
}).then(res => {
|
|
115
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
116
|
+
throw new Error(res.stderr.trim());
|
|
117
|
+
}
|
|
118
|
+
return Buildx.parseVersion(res.stdout.trim());
|
|
136
119
|
});
|
|
120
|
+
return this._version;
|
|
137
121
|
}
|
|
138
|
-
printVersion() {
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
failOnStdErr: false
|
|
143
|
-
});
|
|
122
|
+
async printVersion() {
|
|
123
|
+
const cmd = await this.getCommand(['version']);
|
|
124
|
+
await exec_1.Exec.exec(cmd.command, cmd.args, {
|
|
125
|
+
failOnStdErr: false
|
|
144
126
|
});
|
|
145
127
|
}
|
|
146
128
|
static parseVersion(stdout) {
|
|
@@ -150,17 +132,15 @@ class Buildx {
|
|
|
150
132
|
}
|
|
151
133
|
return matches[1];
|
|
152
134
|
}
|
|
153
|
-
versionSatisfies(range, version) {
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
return res;
|
|
163
|
-
});
|
|
135
|
+
async versionSatisfies(range, version) {
|
|
136
|
+
const ver = version ?? (await this.version());
|
|
137
|
+
if (!ver) {
|
|
138
|
+
core.debug(`Buildx.versionSatisfies false: undefined version`);
|
|
139
|
+
return false;
|
|
140
|
+
}
|
|
141
|
+
const res = semver.satisfies(ver, range) || /^[0-9a-f]{7}$/.exec(ver) !== null;
|
|
142
|
+
core.debug(`Buildx.versionSatisfies ${ver} statisfies ${range}: ${res}`);
|
|
143
|
+
return res;
|
|
164
144
|
}
|
|
165
145
|
static resolveCertsDriverOpts(driver, endpoint, cert) {
|
|
166
146
|
let url;
|
|
@@ -203,5 +183,4 @@ class Buildx {
|
|
|
203
183
|
}
|
|
204
184
|
}
|
|
205
185
|
exports.Buildx = Buildx;
|
|
206
|
-
Buildx.containerNamePrefix = 'buildx_buildkit_';
|
|
207
186
|
//# sourceMappingURL=buildx.js.map
|