@docker/actions-toolkit 0.21.1 → 0.22.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 +72 -59
- package/lib/buildkit/buildkit.js.map +1 -1
- package/lib/buildx/bake.d.ts +4 -1
- package/lib/buildx/bake.js +103 -59
- package/lib/buildx/bake.js.map +1 -1
- package/lib/buildx/{inputs.d.ts → build.d.ts} +12 -9
- package/lib/buildx/{inputs.js → build.js} +46 -37
- package/lib/buildx/build.js.map +1 -0
- package/lib/buildx/builder.d.ts +1 -1
- package/lib/buildx/builder.js +50 -34
- package/lib/buildx/builder.js.map +1 -1
- package/lib/buildx/buildx.d.ts +4 -2
- package/lib/buildx/buildx.js +124 -65
- package/lib/buildx/buildx.js.map +1 -1
- package/lib/buildx/install.js +210 -182
- package/lib/buildx/install.js.map +1 -1
- package/lib/cache.js +68 -58
- package/lib/cache.js.map +1 -1
- package/lib/context.js +1 -1
- package/lib/context.js.map +1 -1
- package/lib/docker/docker.js +94 -72
- package/lib/docker/docker.js.map +1 -1
- package/lib/docker/install.js +347 -321
- package/lib/docker/install.js.map +1 -1
- package/lib/dockerhub.js +91 -70
- package/lib/dockerhub.js.map +1 -1
- package/lib/exec.js +19 -6
- package/lib/exec.js.map +1 -1
- package/lib/git.js +132 -101
- package/lib/git.js.map +1 -1
- package/lib/github.d.ts +2 -1
- package/lib/github.js +134 -35
- package/lib/github.js.map +1 -1
- package/lib/index.js +26 -15
- package/lib/index.js.map +1 -1
- package/lib/toolkit.js +0 -6
- package/lib/toolkit.js.map +1 -1
- package/lib/types/bake.d.ts +3 -0
- package/lib/types/build.d.ts +18 -0
- package/lib/types/build.js +18 -0
- package/lib/types/build.js.map +1 -0
- package/lib/types/buildx.d.ts +15 -0
- package/lib/types/github.d.ts +11 -0
- package/lib/util.d.ts +1 -0
- package/lib/util.js +41 -20
- package/lib/util.js.map +1 -1
- package/package.json +3 -1
- package/lib/buildx/inputs.js.map +0 -1
package/lib/buildx/builder.js
CHANGED
|
@@ -37,52 +37,68 @@ 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
|
+
};
|
|
40
49
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
50
|
exports.Builder = void 0;
|
|
42
51
|
const core = __importStar(require("@actions/core"));
|
|
43
52
|
const buildx_1 = require("./buildx");
|
|
44
53
|
const exec_1 = require("../exec");
|
|
45
54
|
class Builder {
|
|
46
|
-
buildx;
|
|
47
55
|
constructor(opts) {
|
|
48
|
-
this.buildx = opts
|
|
56
|
+
this.buildx = (opts === null || opts === void 0 ? void 0 : opts.buildx) || new buildx_1.Buildx();
|
|
49
57
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
58
|
+
exists(name) {
|
|
59
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
+
const cmd = yield this.buildx.getCommand(['inspect', name]);
|
|
61
|
+
const ok = yield exec_1.Exec.getExecOutput(cmd.command, cmd.args, {
|
|
62
|
+
ignoreReturnCode: true,
|
|
63
|
+
silent: true
|
|
64
|
+
})
|
|
65
|
+
.then(res => {
|
|
66
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
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}`);
|
|
59
74
|
return false;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
.catch(error => {
|
|
64
|
-
core.debug(`Builder.exists error: ${error}`);
|
|
65
|
-
return false;
|
|
75
|
+
});
|
|
76
|
+
core.debug(`Builder.exists: ${ok}`);
|
|
77
|
+
return ok;
|
|
66
78
|
});
|
|
67
|
-
core.debug(`Builder.exists: ${ok}`);
|
|
68
|
-
return ok;
|
|
69
79
|
}
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
env: envs
|
|
81
|
-
}).then(res => {
|
|
82
|
-
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
83
|
-
throw new Error(res.stderr.trim());
|
|
80
|
+
inspect(name) {
|
|
81
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
82
|
+
// always enable debug for inspect command, so we can display additional
|
|
83
|
+
// fields such as features: https://github.com/docker/buildx/pull/1854
|
|
84
|
+
const envs = Object.assign({}, process.env, {
|
|
85
|
+
DEBUG: '1'
|
|
86
|
+
});
|
|
87
|
+
const args = ['inspect'];
|
|
88
|
+
if (name) {
|
|
89
|
+
args.push(name);
|
|
84
90
|
}
|
|
85
|
-
|
|
91
|
+
const cmd = yield this.buildx.getCommand(args);
|
|
92
|
+
return yield exec_1.Exec.getExecOutput(cmd.command, cmd.args, {
|
|
93
|
+
ignoreReturnCode: true,
|
|
94
|
+
silent: true,
|
|
95
|
+
env: envs
|
|
96
|
+
}).then(res => {
|
|
97
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
98
|
+
throw new Error(res.stderr.trim());
|
|
99
|
+
}
|
|
100
|
+
return Builder.parseInspect(res.stdout);
|
|
101
|
+
});
|
|
86
102
|
});
|
|
87
103
|
}
|
|
88
104
|
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":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oDAAsC;AAEtC,qCAAgC;AAChC,kCAA6B;AAQ7B,MAAa,OAAO;IAGlB,YAAY,IAAkB;QAC5B,IAAI,CAAC,MAAM,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,KAAI,IAAI,eAAM,EAAE,CAAC;IAC7C,CAAC;IAEY,MAAM,CAAC,IAAY;;YAC9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC;YAE5D,MAAM,EAAE,GAAY,MAAM,WAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;gBAClE,gBAAgB,EAAE,IAAI;gBACtB,MAAM,EAAE,IAAI;aACb,CAAC;iBACC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACV,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE;oBAC9C,IAAI,CAAC,KAAK,CAAC,2BAA2B,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;oBAC3D,OAAO,KAAK,CAAC;iBACd;gBACD,OAAO,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC;iBACD,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,IAAI,CAAC,KAAK,CAAC,yBAAyB,KAAK,EAAE,CAAC,CAAC;gBAC7C,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;YAEL,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,EAAE,CAAC,CAAC;YACpC,OAAO,EAAE,CAAC;QACZ,CAAC;KAAA;IAEY,OAAO,CAAC,IAAa;;YAChC,wEAAwE;YACxE,sEAAsE;YACtE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE;gBAC1C,KAAK,EAAE,GAAG;aACX,CAEA,CAAC;YAEF,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;YACzB,IAAI,IAAI,EAAE;gBACR,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;aACjB;YAED,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAC/C,OAAO,MAAM,WAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;gBACrD,gBAAgB,EAAE,IAAI;gBACtB,MAAM,EAAE,IAAI;gBACZ,GAAG,EAAE,IAAI;aACV,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACZ,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE;oBAC9C,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;iBACpC;gBACD,OAAO,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAC1C,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;IAEM,MAAM,CAAC,YAAY,CAAC,IAAY;QACrC,MAAM,OAAO,GAAgB;YAC3B,KAAK,EAAE,EAAE;SACV,CAAC;QACF,IAAI,WAA+B,CAAC;QACpC,IAAI,WAAW,GAAa,EAAE,CAAC;QAC/B,IAAI,eAAqC,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;YAC1C,MAAM,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvC,MAAM,IAAI,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;YAC/B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE;gBACnB,SAAS;aACV;YACD,QAAQ,IAAI,EAAE;gBACZ,KAAK,IAAI,IAAI,MAAM;oBACjB,WAAW,GAAG,SAAS,CAAC;oBACxB,IAAI,OAAO,CAAC,IAAI,IAAI,SAAS,EAAE;wBAC7B,OAAO,CAAC,IAAI,GAAG,KAAK,CAAC;qBACtB;yBAAM;wBACL,IAAI,eAAe,IAAI,WAAW,CAAC,QAAQ,EAAE;4BAC3C,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;4BAC3C,eAAe,GAAG,SAAS,CAAC;yBAC7B;wBACD,IAAI,WAAW,CAAC,IAAI,EAAE;4BACpB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;yBACjC;wBACD,WAAW,GAAG,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC;qBAC7B;oBACD,MAAM;gBACR,KAAK,IAAI,IAAI,QAAQ;oBACnB,WAAW,GAAG,SAAS,CAAC;oBACxB,OAAO,CAAC,MAAM,GAAG,KAAK,CAAC;oBACvB,MAAM;gBACR,KAAK,IAAI,IAAI,eAAe;oBAC1B,WAAW,GAAG,SAAS,CAAC;oBACxB,OAAO,CAAC,YAAY,GAAG,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;oBACvC,MAAM;gBACR,KAAK,IAAI,IAAI,UAAU;oBACrB,WAAW,GAAG,SAAS,CAAC;oBACxB,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;oBAC7B,MAAM;gBACR,KAAK,IAAI,IAAI,gBAAgB;oBAC3B,WAAW,GAAG,SAAS,CAAC;oBACxB,WAAW,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,6BAA6B,CAAC,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;oBAC/H,MAAM;gBACR,KAAK,IAAI,IAAI,QAAQ;oBACnB,WAAW,GAAG,SAAS,CAAC;oBACxB,WAAW,CAAC,MAAM,GAAG,KAAK,CAAC;oBAC3B,MAAM;gBACR,KAAK,IAAI,IAAI,uBAAuB,CAAC;gBACrC,KAAK,IAAI,IAAI,OAAO,EAAE,iBAAiB;oBACrC,WAAW,GAAG,SAAS,CAAC;oBACxB,WAAW,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC;oBACvC,MAAM;gBACR,KAAK,IAAI,IAAI,kBAAkB,CAAC;gBAChC,KAAK,IAAI,IAAI,UAAU,EAAE,iBAAiB;oBACxC,WAAW,GAAG,SAAS,CAAC;oBACxB,WAAW,CAAC,QAAQ,GAAG,KAAK,CAAC;oBAC7B,MAAM;gBACR,KAAK,IAAI,IAAI,WAAW,CAAC,CAAC;oBACxB,WAAW,GAAG,SAAS,CAAC;oBACxB,IAAI,CAAC,KAAK,EAAE;wBACV,MAAM;qBACP;oBACD,IAAI,SAAS,GAAkB,EAAE,CAAC;oBAClC,2DAA2D;oBAC3D,gHAAgH;oBAChH,IAAI,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;wBACvB,KAAK,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;4BACxC,IAAI,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;gCAC1B,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;6BAC7C;yBACF;qBACF;yBAAM;wBACL,wCAAwC;wBACxC,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;qBAC/B;oBACD,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAC5C,MAAM;iBACP;gBACD,KAAK,IAAI,IAAI,UAAU;oBACrB,WAAW,GAAG,UAAU,CAAC;oBACzB,WAAW,CAAC,QAAQ,GAAG,EAAE,CAAC;oBAC1B,MAAM;gBACR,KAAK,IAAI,IAAI,QAAQ;oBACnB,WAAW,GAAG,OAAO,CAAC;oBACtB,WAAW,CAAC,MAAM,GAAG,EAAE,CAAC;oBACxB,MAAM;gBACR,KAAK,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC;oBACrC,WAAW,GAAG,UAAU,CAAC;oBACzB,IAAI,WAAW,CAAC,QAAQ,IAAI,eAAe,EAAE;wBAC3C,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;wBAC3C,eAAe,GAAG,SAAS,CAAC;qBAC7B;oBACD,MAAM;gBACR,OAAO,CAAC,CAAC;oBACP,QAAQ,WAAW,IAAI,EAAE,EAAE;wBACzB,KAAK,UAAU,CAAC,CAAC;4BACf,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC;4BAClD,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC;4BAClD,MAAM;yBACP;wBACD,KAAK,OAAO,CAAC,CAAC;4BACZ,WAAW,CAAC,MAAM,GAAG,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC;4BAC9C,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC;4BACvC,MAAM;yBACP;wBACD,KAAK,UAAU,CAAC,CAAC;4BACf,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,IAAI,EAAE,CAAC;4BAClD,eAAe,GAAG,eAAe,IAAI,EAAE,CAAC;4BACxC,QAAQ,IAAI,CAAC,IAAI,EAAE,EAAE;gCACnB,KAAK,KAAK,CAAC,CAAC;oCACV,eAAe,CAAC,GAAG,GAAG,KAAK,IAAI,MAAM,CAAC;oCACtC,MAAM;iCACP;gCACD,KAAK,SAAS,CAAC,CAAC;oCACd,IAAI,KAAK,EAAE;wCACT,eAAe,CAAC,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;qCAC3C;oCACD,MAAM;iCACP;gCACD,KAAK,eAAe,CAAC,CAAC;oCACpB,eAAe,CAAC,YAAY,GAAG,KAAK,CAAC;oCACrC,MAAM;iCACP;gCACD,KAAK,YAAY,CAAC,CAAC;oCACjB,eAAe,CAAC,SAAS,GAAG,KAAK,CAAC;oCAClC,MAAM;iCACP;6BACF;4BACD,MAAM;yBACP;qBACF;iBACF;aACF;SACF;QACD,IAAI,eAAe,IAAI,WAAW,CAAC,QAAQ,EAAE;YAC3C,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;SAC5C;QACD,IAAI,WAAW,CAAC,IAAI,EAAE;YACpB,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;SACjC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;CACF;AA1MD,0BA0MC"}
|
package/lib/buildx/buildx.d.ts
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
-
import { Cert } from '../types/buildx';
|
|
16
|
+
import { Cert, LocalRefsOpts, LocalRefsResponse } from '../types/buildx';
|
|
17
17
|
export interface BuildxOpts {
|
|
18
18
|
standalone?: boolean;
|
|
19
19
|
}
|
|
@@ -24,6 +24,8 @@ export declare class Buildx {
|
|
|
24
24
|
static readonly containerNamePrefix = "buildx_buildkit_";
|
|
25
25
|
constructor(opts?: BuildxOpts);
|
|
26
26
|
static get configDir(): string;
|
|
27
|
+
static get refsDir(): string;
|
|
28
|
+
static get refsGroupDir(): string;
|
|
27
29
|
static get certsDir(): string;
|
|
28
30
|
isStandalone(): Promise<boolean>;
|
|
29
31
|
getCommand(args: Array<string>): Promise<{
|
|
@@ -31,10 +33,10 @@ export declare class Buildx {
|
|
|
31
33
|
args: string[];
|
|
32
34
|
}>;
|
|
33
35
|
isAvailable(): Promise<boolean>;
|
|
34
|
-
printInspect(name: string): Promise<void>;
|
|
35
36
|
version(): Promise<string>;
|
|
36
37
|
printVersion(): Promise<void>;
|
|
37
38
|
static parseVersion(stdout: string): string;
|
|
38
39
|
versionSatisfies(range: string, version?: string): Promise<boolean>;
|
|
39
40
|
static resolveCertsDriverOpts(driver: string, endpoint: string, cert: Cert): Array<string>;
|
|
41
|
+
static refs(opts: LocalRefsOpts, refs?: LocalRefsResponse): LocalRefsResponse;
|
|
40
42
|
}
|
package/lib/buildx/buildx.js
CHANGED
|
@@ -37,6 +37,15 @@ 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
|
+
};
|
|
40
49
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
41
50
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
42
51
|
};
|
|
@@ -49,80 +58,87 @@ const semver = __importStar(require("semver"));
|
|
|
49
58
|
const docker_1 = require("../docker/docker");
|
|
50
59
|
const exec_1 = require("../exec");
|
|
51
60
|
class Buildx {
|
|
52
|
-
_version;
|
|
53
|
-
_versionOnce;
|
|
54
|
-
_standalone;
|
|
55
|
-
static containerNamePrefix = 'buildx_buildkit_';
|
|
56
61
|
constructor(opts) {
|
|
57
|
-
this._standalone = opts
|
|
62
|
+
this._standalone = opts === null || opts === void 0 ? void 0 : opts.standalone;
|
|
58
63
|
this._version = '';
|
|
59
64
|
this._versionOnce = false;
|
|
60
65
|
}
|
|
61
66
|
static get configDir() {
|
|
62
67
|
return process.env.BUILDX_CONFIG || path_1.default.join(docker_1.Docker.configDir, 'buildx');
|
|
63
68
|
}
|
|
69
|
+
static get refsDir() {
|
|
70
|
+
return path_1.default.join(Buildx.configDir, 'refs');
|
|
71
|
+
}
|
|
72
|
+
static get refsGroupDir() {
|
|
73
|
+
return path_1.default.join(Buildx.refsDir, '__group__');
|
|
74
|
+
}
|
|
64
75
|
static get certsDir() {
|
|
65
76
|
return path_1.default.join(Buildx.configDir, 'certs');
|
|
66
77
|
}
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
return {
|
|
75
|
-
command: standalone ? 'buildx' : 'docker',
|
|
76
|
-
args: standalone ? args : ['buildx', ...args]
|
|
77
|
-
};
|
|
78
|
+
isStandalone() {
|
|
79
|
+
var _a;
|
|
80
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
81
|
+
const standalone = (_a = this._standalone) !== null && _a !== void 0 ? _a : !(yield docker_1.Docker.isAvailable());
|
|
82
|
+
core.debug(`Buildx.isStandalone: ${standalone}`);
|
|
83
|
+
return standalone;
|
|
84
|
+
});
|
|
78
85
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
87
|
-
core.debug(`Buildx.isAvailable cmd err: ${res.stderr.trim()}`);
|
|
88
|
-
return false;
|
|
89
|
-
}
|
|
90
|
-
return res.exitCode == 0;
|
|
91
|
-
})
|
|
92
|
-
.catch(error => {
|
|
93
|
-
core.debug(`Buildx.isAvailable error: ${error}`);
|
|
94
|
-
return false;
|
|
86
|
+
getCommand(args) {
|
|
87
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
88
|
+
const standalone = yield this.isStandalone();
|
|
89
|
+
return {
|
|
90
|
+
command: standalone ? 'buildx' : 'docker',
|
|
91
|
+
args: standalone ? args : ['buildx', ...args]
|
|
92
|
+
};
|
|
95
93
|
});
|
|
96
|
-
core.debug(`Buildx.isAvailable: ${ok}`);
|
|
97
|
-
return ok;
|
|
98
94
|
}
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
95
|
+
isAvailable() {
|
|
96
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
97
|
+
const cmd = yield this.getCommand([]);
|
|
98
|
+
const ok = yield exec_1.Exec.getExecOutput(cmd.command, cmd.args, {
|
|
99
|
+
ignoreReturnCode: true,
|
|
100
|
+
silent: true
|
|
101
|
+
})
|
|
102
|
+
.then(res => {
|
|
103
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
104
|
+
core.debug(`Buildx.isAvailable cmd err: ${res.stderr.trim()}`);
|
|
105
|
+
return false;
|
|
106
|
+
}
|
|
107
|
+
return res.exitCode == 0;
|
|
108
|
+
})
|
|
109
|
+
.catch(error => {
|
|
110
|
+
core.debug(`Buildx.isAvailable error: ${error}`);
|
|
111
|
+
return false;
|
|
112
|
+
});
|
|
113
|
+
core.debug(`Buildx.isAvailable: ${ok}`);
|
|
114
|
+
return ok;
|
|
103
115
|
});
|
|
104
116
|
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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
|
+
version() {
|
|
118
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
119
|
+
if (this._versionOnce) {
|
|
120
|
+
return this._version;
|
|
117
121
|
}
|
|
118
|
-
|
|
122
|
+
this._versionOnce = true;
|
|
123
|
+
const cmd = yield this.getCommand(['version']);
|
|
124
|
+
this._version = yield exec_1.Exec.getExecOutput(cmd.command, cmd.args, {
|
|
125
|
+
ignoreReturnCode: true,
|
|
126
|
+
silent: true
|
|
127
|
+
}).then(res => {
|
|
128
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
129
|
+
throw new Error(res.stderr.trim());
|
|
130
|
+
}
|
|
131
|
+
return Buildx.parseVersion(res.stdout.trim());
|
|
132
|
+
});
|
|
133
|
+
return this._version;
|
|
119
134
|
});
|
|
120
|
-
return this._version;
|
|
121
135
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
136
|
+
printVersion() {
|
|
137
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
138
|
+
const cmd = yield this.getCommand(['version']);
|
|
139
|
+
yield exec_1.Exec.exec(cmd.command, cmd.args, {
|
|
140
|
+
failOnStdErr: false
|
|
141
|
+
});
|
|
126
142
|
});
|
|
127
143
|
}
|
|
128
144
|
static parseVersion(stdout) {
|
|
@@ -132,15 +148,17 @@ class Buildx {
|
|
|
132
148
|
}
|
|
133
149
|
return matches[1];
|
|
134
150
|
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
151
|
+
versionSatisfies(range, version) {
|
|
152
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
153
|
+
const ver = version !== null && version !== void 0 ? version : (yield this.version());
|
|
154
|
+
if (!ver) {
|
|
155
|
+
core.debug(`Buildx.versionSatisfies false: undefined version`);
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
158
|
+
const res = semver.satisfies(ver, range) || /^[0-9a-f]{7}$/.exec(ver) !== null;
|
|
159
|
+
core.debug(`Buildx.versionSatisfies ${ver} statisfies ${range}: ${res}`);
|
|
160
|
+
return res;
|
|
161
|
+
});
|
|
144
162
|
}
|
|
145
163
|
static resolveCertsDriverOpts(driver, endpoint, cert) {
|
|
146
164
|
let url;
|
|
@@ -181,6 +199,47 @@ class Buildx {
|
|
|
181
199
|
}
|
|
182
200
|
return driverOpts;
|
|
183
201
|
}
|
|
202
|
+
static refs(opts, refs = {}) {
|
|
203
|
+
const { dir, builderName, nodeName, since } = opts;
|
|
204
|
+
let dirpath = path_1.default.resolve(dir);
|
|
205
|
+
if (opts.builderName) {
|
|
206
|
+
dirpath = path_1.default.join(dirpath, opts.builderName);
|
|
207
|
+
}
|
|
208
|
+
if (opts.nodeName) {
|
|
209
|
+
dirpath = path_1.default.join(dirpath, opts.nodeName);
|
|
210
|
+
}
|
|
211
|
+
if (!fs_1.default.existsSync(dirpath)) {
|
|
212
|
+
return refs;
|
|
213
|
+
}
|
|
214
|
+
const files = fs_1.default.readdirSync(dirpath);
|
|
215
|
+
for (const file of files) {
|
|
216
|
+
const filePath = path_1.default.join(dirpath, file);
|
|
217
|
+
const stat = fs_1.default.statSync(filePath);
|
|
218
|
+
if (stat.isDirectory()) {
|
|
219
|
+
const nopts = Object.assign({}, opts);
|
|
220
|
+
if (!builderName) {
|
|
221
|
+
if (file === '__group__') {
|
|
222
|
+
continue;
|
|
223
|
+
}
|
|
224
|
+
nopts.builderName = file;
|
|
225
|
+
}
|
|
226
|
+
else if (!nodeName) {
|
|
227
|
+
nopts.nodeName = file;
|
|
228
|
+
}
|
|
229
|
+
Buildx.refs(nopts, refs);
|
|
230
|
+
}
|
|
231
|
+
else {
|
|
232
|
+
if (since && stat.mtime < since) {
|
|
233
|
+
continue;
|
|
234
|
+
}
|
|
235
|
+
const localState = JSON.parse(fs_1.default.readFileSync(filePath, 'utf8'));
|
|
236
|
+
const ref = `${builderName}/${nodeName}/${file}`;
|
|
237
|
+
refs[ref] = localState;
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
return refs;
|
|
241
|
+
}
|
|
184
242
|
}
|
|
185
243
|
exports.Buildx = Buildx;
|
|
244
|
+
Buildx.containerNamePrefix = 'buildx_buildkit_';
|
|
186
245
|
//# sourceMappingURL=buildx.js.map
|
package/lib/buildx/buildx.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildx.js","sourceRoot":"","sources":["../../src/buildx/buildx.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG
|
|
1
|
+
{"version":3,"file":"buildx.js","sourceRoot":"","sources":["../../src/buildx/buildx.ts"],"names":[],"mappings":"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"}
|