@docker/actions-toolkit 0.51.0 → 0.52.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/buildx/imagetools.d.ts +33 -0
- package/lib/buildx/imagetools.js +69 -0
- package/lib/buildx/imagetools.js.map +1 -0
- package/lib/compose/compose.d.ts +33 -0
- package/lib/compose/compose.js +135 -0
- package/lib/compose/compose.js.map +1 -0
- package/lib/compose/install.d.ts +32 -0
- package/lib/compose/install.js +216 -0
- package/lib/compose/install.js.map +1 -0
- package/lib/toolkit.d.ts +4 -0
- package/lib/toolkit.js +4 -0
- package/lib/toolkit.js.map +1 -1
- package/lib/types/compose/compose.d.ts +20 -0
- package/lib/types/compose/compose.js +18 -0
- package/lib/types/compose/compose.js.map +1 -0
- package/package.json +3 -3
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 actions-toolkit authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { Buildx } from './buildx';
|
|
17
|
+
import { Image } from '../types/oci/config';
|
|
18
|
+
export interface ImageToolsOpts {
|
|
19
|
+
buildx?: Buildx;
|
|
20
|
+
}
|
|
21
|
+
export declare class ImageTools {
|
|
22
|
+
private readonly buildx;
|
|
23
|
+
constructor(opts?: ImageToolsOpts);
|
|
24
|
+
getCommand(args: Array<string>): Promise<{
|
|
25
|
+
command: string;
|
|
26
|
+
args: string[];
|
|
27
|
+
}>;
|
|
28
|
+
getInspectCommand(args: Array<string>): Promise<{
|
|
29
|
+
command: string;
|
|
30
|
+
args: string[];
|
|
31
|
+
}>;
|
|
32
|
+
inspectImage(name: string): Promise<Record<string, Image> | Image>;
|
|
33
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2025 actions-toolkit authors
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.ImageTools = void 0;
|
|
28
|
+
const buildx_1 = require("./buildx");
|
|
29
|
+
const exec_1 = require("../exec");
|
|
30
|
+
class ImageTools {
|
|
31
|
+
constructor(opts) {
|
|
32
|
+
this.buildx = (opts === null || opts === void 0 ? void 0 : opts.buildx) || new buildx_1.Buildx();
|
|
33
|
+
}
|
|
34
|
+
getCommand(args) {
|
|
35
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
36
|
+
return yield this.buildx.getCommand(['imagetools', ...args]);
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
getInspectCommand(args) {
|
|
40
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
41
|
+
return yield this.getCommand(['inspect', ...args]);
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
inspectImage(name) {
|
|
45
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
46
|
+
const cmd = yield this.getInspectCommand([name, '--format', '{{json .Image}}']);
|
|
47
|
+
return yield exec_1.Exec.getExecOutput(cmd.command, cmd.args, {
|
|
48
|
+
ignoreReturnCode: true,
|
|
49
|
+
silent: true
|
|
50
|
+
}).then(res => {
|
|
51
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
52
|
+
throw new Error(res.stderr.trim());
|
|
53
|
+
}
|
|
54
|
+
const parsedOutput = JSON.parse(res.stdout);
|
|
55
|
+
if (typeof parsedOutput === 'object' && !Array.isArray(parsedOutput) && parsedOutput !== null) {
|
|
56
|
+
if (Object.prototype.hasOwnProperty.call(parsedOutput, 'config')) {
|
|
57
|
+
return parsedOutput;
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
return parsedOutput;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
throw new Error('Unexpected output format');
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
exports.ImageTools = ImageTools;
|
|
69
|
+
//# sourceMappingURL=imagetools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"imagetools.js","sourceRoot":"","sources":["../../src/buildx/imagetools.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;AAEH,qCAAgC;AAChC,kCAA6B;AAQ7B,MAAa,UAAU;IAGrB,YAAY,IAAqB;QAC/B,IAAI,CAAC,MAAM,GAAG,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,MAAM,KAAI,IAAI,eAAM,EAAE,CAAC;IAC7C,CAAC;IAEY,UAAU,CAAC,IAAmB;;YACzC,OAAO,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QAC/D,CAAC;KAAA;IAEY,iBAAiB,CAAC,IAAmB;;YAChD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;QACrD,CAAC;KAAA;IAEY,YAAY,CAAC,IAAY;;YACpC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,iBAAiB,CAAC,CAAC,CAAC;YAChF,OAAO,MAAM,WAAI,CAAC,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,EAAE;gBACrD,gBAAgB,EAAE,IAAI;gBACtB,MAAM,EAAE,IAAI;aACb,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;gBACZ,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE,CAAC;oBAC/C,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBACrC,CAAC;gBACD,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAC5C,IAAI,OAAO,YAAY,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;oBAC9F,IAAI,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,EAAE,CAAC;wBACjE,OAAc,YAAY,CAAC;oBAC7B,CAAC;yBAAM,CAAC;wBACN,OAA8B,YAAY,CAAC;oBAC7C,CAAC;gBACH,CAAC;gBACD,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AAnCD,gCAmCC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 actions-toolkit authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export interface ComposeOpts {
|
|
17
|
+
standalone?: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare class Compose {
|
|
20
|
+
private _version;
|
|
21
|
+
private _versionOnce;
|
|
22
|
+
private readonly _standalone;
|
|
23
|
+
constructor(opts?: ComposeOpts);
|
|
24
|
+
isStandalone(): Promise<boolean>;
|
|
25
|
+
getCommand(args: Array<string>): Promise<{
|
|
26
|
+
command: string;
|
|
27
|
+
args: string[];
|
|
28
|
+
}>;
|
|
29
|
+
isAvailable(): Promise<boolean>;
|
|
30
|
+
version(): Promise<string>;
|
|
31
|
+
printVersion(): Promise<void>;
|
|
32
|
+
static parseVersion(stdout: string): string;
|
|
33
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2025 actions-toolkit authors
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
+
}
|
|
23
|
+
Object.defineProperty(o, k2, desc);
|
|
24
|
+
}) : (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
o[k2] = m[k];
|
|
27
|
+
}));
|
|
28
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
+
}) : function(o, v) {
|
|
31
|
+
o["default"] = v;
|
|
32
|
+
});
|
|
33
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
50
|
+
exports.Compose = void 0;
|
|
51
|
+
const core = __importStar(require("@actions/core"));
|
|
52
|
+
const docker_1 = require("../docker/docker");
|
|
53
|
+
const exec_1 = require("../exec");
|
|
54
|
+
class Compose {
|
|
55
|
+
constructor(opts) {
|
|
56
|
+
this._standalone = opts === null || opts === void 0 ? void 0 : opts.standalone;
|
|
57
|
+
this._version = '';
|
|
58
|
+
this._versionOnce = false;
|
|
59
|
+
}
|
|
60
|
+
isStandalone() {
|
|
61
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
62
|
+
var _a;
|
|
63
|
+
const standalone = (_a = this._standalone) !== null && _a !== void 0 ? _a : !(yield docker_1.Docker.isAvailable());
|
|
64
|
+
core.debug(`Compose.isStandalone: ${standalone}`);
|
|
65
|
+
return standalone;
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
getCommand(args) {
|
|
69
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
70
|
+
const standalone = yield this.isStandalone();
|
|
71
|
+
return {
|
|
72
|
+
command: standalone ? 'compose' : 'docker',
|
|
73
|
+
args: standalone ? args : ['compose', ...args]
|
|
74
|
+
};
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
isAvailable() {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
const cmd = yield this.getCommand([]);
|
|
80
|
+
const ok = yield exec_1.Exec.getExecOutput(cmd.command, cmd.args, {
|
|
81
|
+
ignoreReturnCode: true,
|
|
82
|
+
silent: true
|
|
83
|
+
})
|
|
84
|
+
.then(res => {
|
|
85
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
86
|
+
core.debug(`Compose.isAvailable cmd err: ${res.stderr.trim()}`);
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
return res.exitCode == 0;
|
|
90
|
+
})
|
|
91
|
+
.catch(error => {
|
|
92
|
+
core.debug(`Compose.isAvailable error: ${error}`);
|
|
93
|
+
return false;
|
|
94
|
+
});
|
|
95
|
+
core.debug(`Compose.isAvailable: ${ok}`);
|
|
96
|
+
return ok;
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
version() {
|
|
100
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
101
|
+
if (this._versionOnce) {
|
|
102
|
+
return this._version;
|
|
103
|
+
}
|
|
104
|
+
this._versionOnce = true;
|
|
105
|
+
const cmd = yield this.getCommand(['version']);
|
|
106
|
+
this._version = yield exec_1.Exec.getExecOutput(cmd.command, cmd.args, {
|
|
107
|
+
ignoreReturnCode: true,
|
|
108
|
+
silent: true
|
|
109
|
+
}).then(res => {
|
|
110
|
+
if (res.stderr.length > 0 && res.exitCode != 0) {
|
|
111
|
+
throw new Error(res.stderr.trim());
|
|
112
|
+
}
|
|
113
|
+
return Compose.parseVersion(res.stdout.trim());
|
|
114
|
+
});
|
|
115
|
+
return this._version;
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
printVersion() {
|
|
119
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
120
|
+
const cmd = yield this.getCommand(['version']);
|
|
121
|
+
yield exec_1.Exec.exec(cmd.command, cmd.args, {
|
|
122
|
+
failOnStdErr: false
|
|
123
|
+
});
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
static parseVersion(stdout) {
|
|
127
|
+
const matches = /\sv?([0-9a-f]{7}|[0-9.]+)/.exec(stdout);
|
|
128
|
+
if (!matches) {
|
|
129
|
+
throw new Error(`Cannot parse compose version`);
|
|
130
|
+
}
|
|
131
|
+
return matches[1];
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
exports.Compose = Compose;
|
|
135
|
+
//# sourceMappingURL=compose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../src/compose/compose.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 actions-toolkit authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
import { DownloadVersion } from '../types/compose/compose';
|
|
17
|
+
import { GitHubRelease } from '../types/github';
|
|
18
|
+
export interface InstallOpts {
|
|
19
|
+
standalone?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export declare class Install {
|
|
22
|
+
private readonly _standalone;
|
|
23
|
+
constructor(opts?: InstallOpts);
|
|
24
|
+
download(v: string, ghaNoCache?: boolean): Promise<string>;
|
|
25
|
+
installStandalone(binPath: string, dest?: string): Promise<string>;
|
|
26
|
+
installPlugin(binPath: string, dest?: string): Promise<string>;
|
|
27
|
+
private isStandalone;
|
|
28
|
+
private filename;
|
|
29
|
+
private vspec;
|
|
30
|
+
static getDownloadVersion(v: string): Promise<DownloadVersion>;
|
|
31
|
+
static getRelease(version: DownloadVersion): Promise<GitHubRelease>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,216 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2025 actions-toolkit authors
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
18
|
+
if (k2 === undefined) k2 = k;
|
|
19
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
20
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
21
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
22
|
+
}
|
|
23
|
+
Object.defineProperty(o, k2, desc);
|
|
24
|
+
}) : (function(o, m, k, k2) {
|
|
25
|
+
if (k2 === undefined) k2 = k;
|
|
26
|
+
o[k2] = m[k];
|
|
27
|
+
}));
|
|
28
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
29
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
30
|
+
}) : function(o, v) {
|
|
31
|
+
o["default"] = v;
|
|
32
|
+
});
|
|
33
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
34
|
+
if (mod && mod.__esModule) return mod;
|
|
35
|
+
var result = {};
|
|
36
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
37
|
+
__setModuleDefault(result, mod);
|
|
38
|
+
return result;
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
50
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
51
|
+
};
|
|
52
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
53
|
+
exports.Install = void 0;
|
|
54
|
+
const fs_1 = __importDefault(require("fs"));
|
|
55
|
+
const os_1 = __importDefault(require("os"));
|
|
56
|
+
const path_1 = __importDefault(require("path"));
|
|
57
|
+
const core = __importStar(require("@actions/core"));
|
|
58
|
+
const httpm = __importStar(require("@actions/http-client"));
|
|
59
|
+
const tc = __importStar(require("@actions/tool-cache"));
|
|
60
|
+
const semver = __importStar(require("semver"));
|
|
61
|
+
const util = __importStar(require("util"));
|
|
62
|
+
const cache_1 = require("../cache");
|
|
63
|
+
const context_1 = require("../context");
|
|
64
|
+
const docker_1 = require("../docker/docker");
|
|
65
|
+
class Install {
|
|
66
|
+
constructor(opts) {
|
|
67
|
+
this._standalone = opts === null || opts === void 0 ? void 0 : opts.standalone;
|
|
68
|
+
}
|
|
69
|
+
/*
|
|
70
|
+
* Download compose binary from GitHub release
|
|
71
|
+
* @param v: version semver version or latest
|
|
72
|
+
* @param ghaNoCache: disable binary caching in GitHub Actions cache backend
|
|
73
|
+
* @returns path to the compose binary
|
|
74
|
+
*/
|
|
75
|
+
download(v, ghaNoCache) {
|
|
76
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
77
|
+
const version = yield Install.getDownloadVersion(v);
|
|
78
|
+
core.debug(`Install.download version: ${version.version}`);
|
|
79
|
+
const release = yield Install.getRelease(version);
|
|
80
|
+
core.debug(`Install.download release tag name: ${release.tag_name}`);
|
|
81
|
+
const vspec = yield this.vspec(release.tag_name);
|
|
82
|
+
core.debug(`Install.download vspec: ${vspec}`);
|
|
83
|
+
const c = semver.clean(vspec) || '';
|
|
84
|
+
if (!semver.valid(c)) {
|
|
85
|
+
throw new Error(`Invalid Compose version "${vspec}".`);
|
|
86
|
+
}
|
|
87
|
+
const installCache = new cache_1.Cache({
|
|
88
|
+
htcName: 'compose-dl-bin',
|
|
89
|
+
htcVersion: vspec,
|
|
90
|
+
baseCacheDir: path_1.default.join(os_1.default.homedir(), '.bin'),
|
|
91
|
+
cacheFile: os_1.default.platform() == 'win32' ? 'docker-compose.exe' : 'docker-compose',
|
|
92
|
+
ghaNoCache: ghaNoCache
|
|
93
|
+
});
|
|
94
|
+
const cacheFoundPath = yield installCache.find();
|
|
95
|
+
if (cacheFoundPath) {
|
|
96
|
+
core.info(`Compose binary found in ${cacheFoundPath}`);
|
|
97
|
+
return cacheFoundPath;
|
|
98
|
+
}
|
|
99
|
+
const downloadURL = util.format(version.downloadURL, vspec, this.filename());
|
|
100
|
+
core.info(`Downloading ${downloadURL}`);
|
|
101
|
+
const htcDownloadPath = yield tc.downloadTool(downloadURL);
|
|
102
|
+
core.debug(`Install.download htcDownloadPath: ${htcDownloadPath}`);
|
|
103
|
+
const cacheSavePath = yield installCache.save(htcDownloadPath);
|
|
104
|
+
core.info(`Cached to ${cacheSavePath}`);
|
|
105
|
+
return cacheSavePath;
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
installStandalone(binPath, dest) {
|
|
109
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
110
|
+
core.info('Standalone mode');
|
|
111
|
+
dest = dest || context_1.Context.tmpDir();
|
|
112
|
+
const binDir = path_1.default.join(dest, 'compose-bin-standalone');
|
|
113
|
+
if (!fs_1.default.existsSync(binDir)) {
|
|
114
|
+
fs_1.default.mkdirSync(binDir, { recursive: true });
|
|
115
|
+
}
|
|
116
|
+
const binName = os_1.default.platform() == 'win32' ? 'compose.exe' : 'compose';
|
|
117
|
+
const composePath = path_1.default.join(binDir, binName);
|
|
118
|
+
fs_1.default.copyFileSync(binPath, composePath);
|
|
119
|
+
core.info('Fixing perms');
|
|
120
|
+
fs_1.default.chmodSync(composePath, '0755');
|
|
121
|
+
core.addPath(binDir);
|
|
122
|
+
core.info('Added Compose to PATH');
|
|
123
|
+
core.info(`Binary path: ${composePath}`);
|
|
124
|
+
return composePath;
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
installPlugin(binPath, dest) {
|
|
128
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
129
|
+
core.info('Docker plugin mode');
|
|
130
|
+
dest = dest || docker_1.Docker.configDir;
|
|
131
|
+
const pluginsDir = path_1.default.join(dest, 'cli-plugins');
|
|
132
|
+
if (!fs_1.default.existsSync(pluginsDir)) {
|
|
133
|
+
fs_1.default.mkdirSync(pluginsDir, { recursive: true });
|
|
134
|
+
}
|
|
135
|
+
const binName = os_1.default.platform() == 'win32' ? 'docker-compose.exe' : 'docker-compose';
|
|
136
|
+
const pluginPath = path_1.default.join(pluginsDir, binName);
|
|
137
|
+
fs_1.default.copyFileSync(binPath, pluginPath);
|
|
138
|
+
core.info('Fixing perms');
|
|
139
|
+
fs_1.default.chmodSync(pluginPath, '0755');
|
|
140
|
+
core.info(`Plugin path: ${pluginPath}`);
|
|
141
|
+
return pluginPath;
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
isStandalone() {
|
|
145
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
146
|
+
var _a;
|
|
147
|
+
const standalone = (_a = this._standalone) !== null && _a !== void 0 ? _a : !(yield docker_1.Docker.isAvailable());
|
|
148
|
+
core.debug(`Install.isStandalone: ${standalone}`);
|
|
149
|
+
return standalone;
|
|
150
|
+
});
|
|
151
|
+
}
|
|
152
|
+
filename() {
|
|
153
|
+
let arch;
|
|
154
|
+
switch (os_1.default.arch()) {
|
|
155
|
+
case 'x64': {
|
|
156
|
+
arch = 'x86_64';
|
|
157
|
+
break;
|
|
158
|
+
}
|
|
159
|
+
case 'ppc64': {
|
|
160
|
+
arch = 'ppc64le';
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
case 'arm': {
|
|
164
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
165
|
+
const arm_version = process.config.variables.arm_version;
|
|
166
|
+
arch = arm_version ? 'armv' + arm_version : 'arm';
|
|
167
|
+
break;
|
|
168
|
+
}
|
|
169
|
+
case 'arm64': {
|
|
170
|
+
arch = 'aarch64';
|
|
171
|
+
break;
|
|
172
|
+
}
|
|
173
|
+
default: {
|
|
174
|
+
arch = os_1.default.arch();
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
const platform = os_1.default.platform() == 'win32' ? 'windows' : os_1.default.platform();
|
|
179
|
+
const ext = os_1.default.platform() == 'win32' ? '.exe' : '';
|
|
180
|
+
return util.format('docker-compose-%s-%s%s', platform, arch, ext);
|
|
181
|
+
}
|
|
182
|
+
vspec(version) {
|
|
183
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
184
|
+
const v = version.replace(/^v+|v+$/g, '');
|
|
185
|
+
core.info(`Use ${v} version spec cache key for ${version}`);
|
|
186
|
+
return v;
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
static getDownloadVersion(v) {
|
|
190
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
191
|
+
return {
|
|
192
|
+
version: v,
|
|
193
|
+
downloadURL: 'https://github.com/docker/compose/releases/download/v%s/%s',
|
|
194
|
+
releasesURL: 'https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/compose-releases.json'
|
|
195
|
+
};
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
static getRelease(version) {
|
|
199
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
200
|
+
const http = new httpm.HttpClient('docker-actions-toolkit');
|
|
201
|
+
const resp = yield http.get(version.releasesURL);
|
|
202
|
+
const body = yield resp.readBody();
|
|
203
|
+
const statusCode = resp.message.statusCode || 500;
|
|
204
|
+
if (statusCode >= 400) {
|
|
205
|
+
throw new Error(`Failed to get Compose releases from ${version.releasesURL} with status code ${statusCode}: ${body}`);
|
|
206
|
+
}
|
|
207
|
+
const releases = JSON.parse(body);
|
|
208
|
+
if (!releases[version.version]) {
|
|
209
|
+
throw new Error(`Cannot find Compose release ${version.version} in ${version.releasesURL}`);
|
|
210
|
+
}
|
|
211
|
+
return releases[version.version];
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
exports.Install = Install;
|
|
216
|
+
//# sourceMappingURL=install.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/compose/install.ts"],"names":[],"mappings":"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"}
|
package/lib/toolkit.d.ts
CHANGED
|
@@ -19,6 +19,8 @@ import { Bake as BuildxBake } from './buildx/bake';
|
|
|
19
19
|
import { Install as BuildxInstall } from './buildx/install';
|
|
20
20
|
import { Builder } from './buildx/builder';
|
|
21
21
|
import { BuildKit } from './buildkit/buildkit';
|
|
22
|
+
import { Compose } from './compose/compose';
|
|
23
|
+
import { Install as ComposeInstall } from './compose/install';
|
|
22
24
|
import { Undock } from './undock/undock';
|
|
23
25
|
import { GitHub } from './github';
|
|
24
26
|
export interface ToolkitOpts {
|
|
@@ -36,6 +38,8 @@ export declare class Toolkit {
|
|
|
36
38
|
buildxInstall: BuildxInstall;
|
|
37
39
|
builder: Builder;
|
|
38
40
|
buildkit: BuildKit;
|
|
41
|
+
compose: Compose;
|
|
42
|
+
composeInstall: ComposeInstall;
|
|
39
43
|
undock: Undock;
|
|
40
44
|
constructor(opts?: ToolkitOpts);
|
|
41
45
|
}
|
package/lib/toolkit.js
CHANGED
|
@@ -22,6 +22,8 @@ const bake_1 = require("./buildx/bake");
|
|
|
22
22
|
const install_1 = require("./buildx/install");
|
|
23
23
|
const builder_1 = require("./buildx/builder");
|
|
24
24
|
const buildkit_1 = require("./buildkit/buildkit");
|
|
25
|
+
const compose_1 = require("./compose/compose");
|
|
26
|
+
const install_2 = require("./compose/install");
|
|
25
27
|
const undock_1 = require("./undock/undock");
|
|
26
28
|
const github_1 = require("./github");
|
|
27
29
|
class Toolkit {
|
|
@@ -33,6 +35,8 @@ class Toolkit {
|
|
|
33
35
|
this.buildxInstall = new install_1.Install();
|
|
34
36
|
this.builder = new builder_1.Builder({ buildx: this.buildx });
|
|
35
37
|
this.buildkit = new buildkit_1.BuildKit({ buildx: this.buildx });
|
|
38
|
+
this.compose = new compose_1.Compose();
|
|
39
|
+
this.composeInstall = new install_2.Install();
|
|
36
40
|
this.undock = new undock_1.Undock();
|
|
37
41
|
}
|
|
38
42
|
}
|
package/lib/toolkit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolkit.js","sourceRoot":"","sources":["../src/toolkit.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,4CAAuC;AACvC,0CAAoD;AACpD,wCAAiD;AACjD,8CAA0D;AAC1D,8CAAyC;AACzC,kDAA6C;AAC7C,4CAAuC;AACvC,qCAAgC;AAUhC,MAAa,OAAO;
|
|
1
|
+
{"version":3,"file":"toolkit.js","sourceRoot":"","sources":["../src/toolkit.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;AAEH,4CAAuC;AACvC,0CAAoD;AACpD,wCAAiD;AACjD,8CAA0D;AAC1D,8CAAyC;AACzC,kDAA6C;AAC7C,+CAA0C;AAC1C,+CAA4D;AAC5D,4CAAuC;AACvC,qCAAgC;AAUhC,MAAa,OAAO;IAYlB,YAAY,OAAoB,EAAE;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,CAAC,EAAC,KAAK,EAAE,IAAI,CAAC,WAAW,EAAC,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,aAAW,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC;QAC1D,IAAI,CAAC,UAAU,GAAG,IAAI,WAAU,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC;QACxD,IAAI,CAAC,aAAa,GAAG,IAAI,iBAAa,EAAE,CAAC;QACzC,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,mBAAQ,CAAC,EAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAC,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,GAAG,IAAI,iBAAO,EAAE,CAAC;QAC7B,IAAI,CAAC,cAAc,GAAG,IAAI,iBAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAM,EAAE,CAAC;IAC7B,CAAC;CACF;AAxBD,0BAwBC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2025 actions-toolkit authors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this file except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*/
|
|
16
|
+
export interface DownloadVersion {
|
|
17
|
+
version: string;
|
|
18
|
+
downloadURL: string;
|
|
19
|
+
releasesURL: string;
|
|
20
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2025 actions-toolkit authors
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
//# sourceMappingURL=compose.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compose.js","sourceRoot":"","sources":["../../../src/types/compose/compose.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@docker/actions-toolkit",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.52.0",
|
|
4
4
|
"description": "Toolkit for Docker (GitHub) Actions",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "tsc",
|
|
@@ -46,13 +46,13 @@
|
|
|
46
46
|
},
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@actions/artifact": "^2.2.1",
|
|
49
|
-
"@actions/cache": "^
|
|
49
|
+
"@actions/cache": "^4.0.0",
|
|
50
50
|
"@actions/core": "^1.11.1",
|
|
51
51
|
"@actions/exec": "^1.1.1",
|
|
52
52
|
"@actions/github": "^6.0.0",
|
|
53
53
|
"@actions/http-client": "^2.2.3",
|
|
54
54
|
"@actions/io": "^1.1.3",
|
|
55
|
-
"@actions/tool-cache": "^2.0.
|
|
55
|
+
"@actions/tool-cache": "^2.0.2",
|
|
56
56
|
"@azure/storage-blob": "^12.15.0",
|
|
57
57
|
"@octokit/core": "^5.1.0",
|
|
58
58
|
"@octokit/plugin-rest-endpoint-methods": "^10.4.0",
|