@docker/actions-toolkit 0.1.0-beta.16 → 0.1.0-beta.18

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.
@@ -0,0 +1,393 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2023 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 child_process = __importStar(require("child_process"));
55
+ const fs_1 = __importDefault(require("fs"));
56
+ const os_1 = __importDefault(require("os"));
57
+ const path_1 = __importDefault(require("path"));
58
+ const async_retry_1 = __importDefault(require("async-retry"));
59
+ const handlebars = __importStar(require("handlebars"));
60
+ const util = __importStar(require("util"));
61
+ const core = __importStar(require("@actions/core"));
62
+ const httpm = __importStar(require("@actions/http-client"));
63
+ const io = __importStar(require("@actions/io"));
64
+ const tc = __importStar(require("@actions/tool-cache"));
65
+ const context_1 = require("../context");
66
+ const exec_1 = require("../exec");
67
+ const util_1 = require("../util");
68
+ const assets_1 = require("./assets");
69
+ class Install {
70
+ constructor(opts) {
71
+ this.runDir = opts.runDir;
72
+ this.version = opts.version || 'latest';
73
+ this.channel = opts.channel || 'stable';
74
+ this.contextName = opts.contextName || 'setup-docker-action';
75
+ }
76
+ get toolDir() {
77
+ return this._toolDir || context_1.Context.tmpDir();
78
+ }
79
+ download() {
80
+ return __awaiter(this, void 0, void 0, function* () {
81
+ const release = yield Install.getRelease(this.version);
82
+ this._version = release.tag_name.replace(/^v+|v+$/g, '');
83
+ core.debug(`docker.Install.download version: ${this._version}`);
84
+ const downloadURL = this.downloadURL(this._version, this.channel);
85
+ core.info(`Downloading ${downloadURL}`);
86
+ const downloadPath = yield tc.downloadTool(downloadURL);
87
+ core.debug(`docker.Install.download downloadPath: ${downloadPath}`);
88
+ let extractFolder;
89
+ if (os_1.default.platform() == 'win32') {
90
+ extractFolder = yield tc.extractZip(downloadPath);
91
+ }
92
+ else {
93
+ extractFolder = yield tc.extractTar(downloadPath);
94
+ }
95
+ if (util_1.Util.isDirectory(path_1.default.join(extractFolder, 'docker'))) {
96
+ extractFolder = path_1.default.join(extractFolder, 'docker');
97
+ }
98
+ core.debug(`docker.Install.download extractFolder: ${extractFolder}`);
99
+ core.info('Fixing perms');
100
+ fs_1.default.readdir(path_1.default.join(extractFolder), function (err, files) {
101
+ if (err) {
102
+ throw err;
103
+ }
104
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
105
+ files.forEach(function (file, index) {
106
+ fs_1.default.chmodSync(path_1.default.join(extractFolder, file), '0755');
107
+ });
108
+ });
109
+ const tooldir = yield tc.cacheDir(extractFolder, `docker-${this.channel}`, this._version.replace(/(0+)([1-9]+)/, '$2'));
110
+ core.addPath(tooldir);
111
+ core.info('Added Docker to PATH');
112
+ this._toolDir = tooldir;
113
+ return tooldir;
114
+ });
115
+ }
116
+ install() {
117
+ return __awaiter(this, void 0, void 0, function* () {
118
+ if (!this.toolDir) {
119
+ throw new Error('toolDir must be set. Run download first.');
120
+ }
121
+ if (!this.runDir) {
122
+ throw new Error('runDir must be set');
123
+ }
124
+ switch (os_1.default.platform()) {
125
+ case 'darwin': {
126
+ yield this.installDarwin();
127
+ break;
128
+ }
129
+ case 'linux': {
130
+ yield this.installLinux();
131
+ break;
132
+ }
133
+ case 'win32': {
134
+ yield this.installWindows();
135
+ break;
136
+ }
137
+ default: {
138
+ throw new Error(`Unsupported platform: ${os_1.default.platform()}`);
139
+ }
140
+ }
141
+ });
142
+ }
143
+ installDarwin() {
144
+ return __awaiter(this, void 0, void 0, function* () {
145
+ const colimaDir = path_1.default.join(os_1.default.homedir(), '.colima', 'default'); // TODO: create a custom colima profile to avoid overlap with other actions
146
+ yield io.mkdirP(colimaDir);
147
+ const dockerHost = `unix://${colimaDir}/docker.sock`;
148
+ if (!(yield Install.colimaInstalled())) {
149
+ yield core.group('Installing colima', () => __awaiter(this, void 0, void 0, function* () {
150
+ yield exec_1.Exec.exec('brew', ['install', 'colima']);
151
+ }));
152
+ }
153
+ yield core.group('Creating colima config', () => __awaiter(this, void 0, void 0, function* () {
154
+ const colimaCfg = handlebars.compile(assets_1.colimaYamlData)({
155
+ hostArch: Install.platformArch(),
156
+ dockerVersion: this._version,
157
+ dockerChannel: this.channel
158
+ });
159
+ core.info(`Writing colima config to ${path_1.default.join(colimaDir, 'colima.yaml')}`);
160
+ fs_1.default.writeFileSync(path_1.default.join(colimaDir, 'colima.yaml'), colimaCfg);
161
+ core.info(colimaCfg);
162
+ }));
163
+ // colima is already started on the runner so env var added in download
164
+ // method is not expanded to the running process.
165
+ const envs = Object.assign({}, process.env, {
166
+ PATH: `${this.toolDir}:${process.env.PATH}`
167
+ });
168
+ yield core.group('Starting colima', () => __awaiter(this, void 0, void 0, function* () {
169
+ yield exec_1.Exec.exec('colima', ['start', '--very-verbose'], { env: envs });
170
+ }));
171
+ yield core.group('Create Docker context', () => __awaiter(this, void 0, void 0, function* () {
172
+ yield exec_1.Exec.exec('docker', ['context', 'create', this.contextName, '--docker', `host=${dockerHost}`]);
173
+ yield exec_1.Exec.exec('docker', ['context', 'use', this.contextName]);
174
+ }));
175
+ });
176
+ }
177
+ installLinux() {
178
+ return __awaiter(this, void 0, void 0, function* () {
179
+ const dockerHost = `unix://${path_1.default.join(this.runDir, 'docker.sock')}`;
180
+ yield io.mkdirP(this.runDir);
181
+ yield core.group('Start Docker daemon', () => __awaiter(this, void 0, void 0, function* () {
182
+ const bashPath = yield io.which('bash', true);
183
+ const proc = yield child_process.spawn(`sudo -E ${bashPath} ${(0, assets_1.setupDockerLinuxSh)()}`, [], {
184
+ detached: true,
185
+ shell: true,
186
+ stdio: ['ignore', process.stdout, process.stderr],
187
+ env: Object.assign({}, process.env, {
188
+ TOOLDIR: this.toolDir,
189
+ RUNDIR: this.runDir,
190
+ DOCKER_HOST: dockerHost
191
+ })
192
+ });
193
+ proc.unref();
194
+ yield (0, async_retry_1.default)((bail) => __awaiter(this, void 0, void 0, function* () {
195
+ yield exec_1.Exec.getExecOutput(`docker version`, undefined, {
196
+ ignoreReturnCode: true,
197
+ silent: true,
198
+ env: Object.assign({}, process.env, {
199
+ DOCKER_HOST: dockerHost
200
+ })
201
+ })
202
+ .then(res => {
203
+ if (res.stderr.length > 0 && res.exitCode != 0) {
204
+ bail(new Error(res.stderr));
205
+ return false;
206
+ }
207
+ return res.exitCode == 0;
208
+ })
209
+ .catch(error => {
210
+ bail(error);
211
+ return false;
212
+ });
213
+ }), {
214
+ retries: 5
215
+ });
216
+ core.info(`Docker daemon started started successfully`);
217
+ }));
218
+ yield core.group('Create Docker context', () => __awaiter(this, void 0, void 0, function* () {
219
+ yield exec_1.Exec.exec('docker', ['context', 'create', this.contextName, '--docker', `host=${dockerHost}`]);
220
+ yield exec_1.Exec.exec('docker', ['context', 'use', this.contextName]);
221
+ }));
222
+ });
223
+ }
224
+ installWindows() {
225
+ return __awaiter(this, void 0, void 0, function* () {
226
+ const dockerHost = 'npipe:////./pipe/setup_docker_action';
227
+ yield core.group('Install Docker daemon service', () => __awaiter(this, void 0, void 0, function* () {
228
+ const setupCmd = yield util_1.Util.powershellCommand((0, assets_1.setupDockerWinPs1)(), {
229
+ ToolDir: this.toolDir,
230
+ RunDir: this.runDir,
231
+ DockerHost: dockerHost
232
+ });
233
+ yield exec_1.Exec.exec(setupCmd.command, setupCmd.args);
234
+ const logCmd = yield util_1.Util.powershellCommand((0, assets_1.dockerServiceLogsPs1)());
235
+ yield exec_1.Exec.exec(logCmd.command, logCmd.args);
236
+ }));
237
+ yield core.group('Create Docker context', () => __awaiter(this, void 0, void 0, function* () {
238
+ yield exec_1.Exec.exec('docker', ['context', 'create', this.contextName, '--docker', `host=${dockerHost}`]);
239
+ yield exec_1.Exec.exec('docker', ['context', 'use', this.contextName]);
240
+ }));
241
+ });
242
+ }
243
+ tearDown() {
244
+ return __awaiter(this, void 0, void 0, function* () {
245
+ if (!this.runDir) {
246
+ throw new Error('runDir must be set');
247
+ }
248
+ switch (os_1.default.platform()) {
249
+ case 'darwin': {
250
+ yield this.tearDownDarwin();
251
+ break;
252
+ }
253
+ case 'linux': {
254
+ yield this.tearDownLinux();
255
+ break;
256
+ }
257
+ case 'win32': {
258
+ yield this.tearDownWindows();
259
+ break;
260
+ }
261
+ default: {
262
+ throw new Error(`Unsupported platform: ${os_1.default.platform()}`);
263
+ }
264
+ }
265
+ });
266
+ }
267
+ tearDownDarwin() {
268
+ return __awaiter(this, void 0, void 0, function* () {
269
+ yield core.group('Docker daemon logs', () => __awaiter(this, void 0, void 0, function* () {
270
+ yield exec_1.Exec.exec('colima', ['exec', '--', 'cat', '/var/log/docker.log']);
271
+ }));
272
+ yield core.group('Stopping colima', () => __awaiter(this, void 0, void 0, function* () {
273
+ yield exec_1.Exec.exec('colima', ['stop', '--very-verbose']);
274
+ }));
275
+ yield core.group('Removing Docker context', () => __awaiter(this, void 0, void 0, function* () {
276
+ yield exec_1.Exec.exec('docker', ['context', 'rm', '-f', this.contextName]);
277
+ }));
278
+ yield core.group(`Cleaning up runDir`, () => __awaiter(this, void 0, void 0, function* () {
279
+ yield exec_1.Exec.exec('sudo', ['rm', '-rf', this.runDir]);
280
+ }));
281
+ });
282
+ }
283
+ tearDownLinux() {
284
+ return __awaiter(this, void 0, void 0, function* () {
285
+ yield core.group('Docker daemon logs', () => __awaiter(this, void 0, void 0, function* () {
286
+ core.info(fs_1.default.readFileSync(path_1.default.join(this.runDir, 'dockerd.log'), { encoding: 'utf8' }));
287
+ }));
288
+ yield core.group('Stopping Docker daemon', () => __awaiter(this, void 0, void 0, function* () {
289
+ yield exec_1.Exec.exec('sudo', ['kill', fs_1.default.readFileSync(path_1.default.join(this.runDir, 'docker.pid')).toString().trim()]);
290
+ }));
291
+ yield core.group('Removing Docker context', () => __awaiter(this, void 0, void 0, function* () {
292
+ yield exec_1.Exec.exec('docker', ['context', 'rm', '-f', this.contextName]);
293
+ }));
294
+ yield core.group(`Cleaning up runDir`, () => __awaiter(this, void 0, void 0, function* () {
295
+ yield exec_1.Exec.exec('sudo', ['rm', '-rf', this.runDir]);
296
+ }));
297
+ });
298
+ }
299
+ tearDownWindows() {
300
+ return __awaiter(this, void 0, void 0, function* () {
301
+ yield core.group('Docker daemon logs', () => __awaiter(this, void 0, void 0, function* () {
302
+ const logCmd = yield util_1.Util.powershellCommand((0, assets_1.dockerServiceLogsPs1)());
303
+ yield exec_1.Exec.exec(logCmd.command, logCmd.args);
304
+ }));
305
+ yield core.group('Removing Docker context', () => __awaiter(this, void 0, void 0, function* () {
306
+ yield exec_1.Exec.exec('docker', ['context', 'rm', '-f', this.contextName]);
307
+ }));
308
+ });
309
+ }
310
+ downloadURL(version, channel) {
311
+ const platformOS = Install.platformOS();
312
+ const platformArch = Install.platformArch();
313
+ const ext = platformOS === 'win' ? '.zip' : '.tgz';
314
+ return util.format('https://download.docker.com/%s/static/%s/%s/docker-%s%s', platformOS, channel, platformArch, version, ext);
315
+ }
316
+ static platformOS() {
317
+ switch (os_1.default.platform()) {
318
+ case 'darwin': {
319
+ return 'mac';
320
+ }
321
+ case 'linux': {
322
+ return 'linux';
323
+ }
324
+ case 'win32': {
325
+ return 'win';
326
+ }
327
+ default: {
328
+ return os_1.default.platform();
329
+ }
330
+ }
331
+ }
332
+ static platformArch() {
333
+ switch (os_1.default.arch()) {
334
+ case 'x64': {
335
+ return 'x86_64';
336
+ }
337
+ case 'ppc64': {
338
+ return 'ppc64le';
339
+ }
340
+ case 'arm': {
341
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
342
+ const arm_version = process.config.variables.arm_version;
343
+ switch (arm_version) {
344
+ case 6: {
345
+ return 'armel';
346
+ }
347
+ case 7: {
348
+ return 'armhf';
349
+ }
350
+ default: {
351
+ return `v${arm_version}`;
352
+ }
353
+ }
354
+ }
355
+ default: {
356
+ return os_1.default.arch();
357
+ }
358
+ }
359
+ }
360
+ static colimaInstalled() {
361
+ return __awaiter(this, void 0, void 0, function* () {
362
+ return yield io
363
+ .which('colima', true)
364
+ .then(res => {
365
+ core.debug(`docker.Install.colimaAvailable ok: ${res}`);
366
+ return true;
367
+ })
368
+ .catch(error => {
369
+ core.debug(`docker.Install.colimaAvailable error: ${error}`);
370
+ return false;
371
+ });
372
+ });
373
+ }
374
+ static getRelease(version) {
375
+ return __awaiter(this, void 0, void 0, function* () {
376
+ const url = `https://raw.githubusercontent.com/docker/actions-toolkit/main/.github/docker-releases.json`;
377
+ const http = new httpm.HttpClient('docker-actions-toolkit');
378
+ const resp = yield http.get(url);
379
+ const body = yield resp.readBody();
380
+ const statusCode = resp.message.statusCode || 500;
381
+ if (statusCode >= 400) {
382
+ throw new Error(`Failed to get Docker release ${version} from ${url} with status code ${statusCode}: ${body}`);
383
+ }
384
+ const releases = JSON.parse(body);
385
+ if (!releases[version]) {
386
+ throw new Error(`Cannot find Docker release ${version} in ${url}`);
387
+ }
388
+ return releases[version];
389
+ });
390
+ }
391
+ }
392
+ exports.Install = Install;
393
+ //# sourceMappingURL=install.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install.js","sourceRoot":"","sources":["../../src/docker/install.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,6DAA+C;AAC/C,4CAAoB;AACpB,4CAAoB;AACpB,gDAAwB;AACxB,8DAAgC;AAChC,uDAAyC;AACzC,2CAA6B;AAC7B,oDAAsC;AACtC,4DAA8C;AAC9C,gDAAkC;AAClC,wDAA0C;AAE1C,wCAAmC;AACnC,kCAA6B;AAC7B,kCAA6B;AAC7B,qCAAqG;AAUrG,MAAa,OAAO;IAQlB,YAAY,IAAiB;QAC3B,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QAC1B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC;QACxC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,qBAAqB,CAAC;IAC/D,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,IAAI,iBAAO,CAAC,MAAM,EAAE,CAAC;IAC3C,CAAC;IAEY,QAAQ;;YACnB,MAAM,OAAO,GAAkB,MAAM,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACtE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACzD,IAAI,CAAC,KAAK,CAAC,oCAAoC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEhE,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YAClE,IAAI,CAAC,IAAI,CAAC,eAAe,WAAW,EAAE,CAAC,CAAC;YAExC,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;YACxD,IAAI,CAAC,KAAK,CAAC,yCAAyC,YAAY,EAAE,CAAC,CAAC;YAEpE,IAAI,aAAqB,CAAC;YAC1B,IAAI,YAAE,CAAC,QAAQ,EAAE,IAAI,OAAO,EAAE;gBAC5B,aAAa,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;aACnD;iBAAM;gBACL,aAAa,GAAG,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;aACnD;YACD,IAAI,WAAI,CAAC,WAAW,CAAC,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC,EAAE;gBACxD,aAAa,GAAG,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;aACpD;YACD,IAAI,CAAC,KAAK,CAAC,0CAA0C,aAAa,EAAE,CAAC,CAAC;YAEtE,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAC1B,YAAE,CAAC,OAAO,CAAC,cAAI,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,UAAU,GAAG,EAAE,KAAK;gBACvD,IAAI,GAAG,EAAE;oBACP,MAAM,GAAG,CAAC;iBACX;gBACD,6DAA6D;gBAC7D,KAAK,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,KAAK;oBACjC,YAAE,CAAC,SAAS,CAAC,cAAI,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;gBACvD,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,EAAE,UAAU,IAAI,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC,CAAC;YACxH,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;YAElC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;YACxB,OAAO,OAAO,CAAC;QACjB,CAAC;KAAA;IAEY,OAAO;;YAClB,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;gBACjB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;aAC7D;YACD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;aACvC;YACD,QAAQ,YAAE,CAAC,QAAQ,EAAE,EAAE;gBACrB,KAAK,QAAQ,CAAC,CAAC;oBACb,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC3B,MAAM;iBACP;gBACD,KAAK,OAAO,CAAC,CAAC;oBACZ,MAAM,IAAI,CAAC,YAAY,EAAE,CAAC;oBAC1B,MAAM;iBACP;gBACD,KAAK,OAAO,CAAC,CAAC;oBACZ,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC5B,MAAM;iBACP;gBACD,OAAO,CAAC,CAAC;oBACP,MAAM,IAAI,KAAK,CAAC,yBAAyB,YAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;iBAC3D;aACF;QACH,CAAC;KAAA;IAEa,aAAa;;YACzB,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,2EAA2E;YAC5I,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC3B,MAAM,UAAU,GAAG,UAAU,SAAS,cAAc,CAAC;YAErD,IAAI,CAAC,CAAC,MAAM,OAAO,CAAC,eAAe,EAAE,CAAC,EAAE;gBACtC,MAAM,IAAI,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAS,EAAE;oBAC/C,MAAM,WAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;gBACjD,CAAC,CAAA,CAAC,CAAC;aACJ;YAED,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAS,EAAE;gBACpD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,uBAAc,CAAC,CAAC;oBACnD,QAAQ,EAAE,OAAO,CAAC,YAAY,EAAE;oBAChC,aAAa,EAAE,IAAI,CAAC,QAAQ;oBAC5B,aAAa,EAAE,IAAI,CAAC,OAAO;iBAC5B,CAAC,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,4BAA4B,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;gBAC7E,YAAE,CAAC,aAAa,CAAC,cAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,EAAE,SAAS,CAAC,CAAC;gBACjE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACvB,CAAC,CAAA,CAAC,CAAC;YAEH,uEAAuE;YACvE,iDAAiD;YACjD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE;gBAC1C,IAAI,EAAE,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE;aAC5C,CAEA,CAAC;YACF,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAS,EAAE;gBAC7C,MAAM,WAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,EAAE,EAAC,GAAG,EAAE,IAAI,EAAC,CAAC,CAAC;YACtE,CAAC,CAAA,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAS,EAAE;gBACnD,MAAM,WAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,UAAU,EAAE,CAAC,CAAC,CAAC;gBACrG,MAAM,WAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAClE,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAEa,YAAY;;YACxB,MAAM,UAAU,GAAG,UAAU,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,CAAC;YACrE,MAAM,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAE7B,MAAM,IAAI,CAAC,KAAK,CAAC,qBAAqB,EAAE,GAAS,EAAE;gBACjD,MAAM,QAAQ,GAAW,MAAM,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACtD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,KAAK,CAAC,WAAW,QAAQ,IAAI,IAAA,2BAAkB,GAAE,EAAE,EAAE,EAAE,EAAE;oBACxF,QAAQ,EAAE,IAAI;oBACd,KAAK,EAAE,IAAI;oBACX,KAAK,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC;oBACjD,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE;wBAClC,OAAO,EAAE,IAAI,CAAC,OAAO;wBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;wBACnB,WAAW,EAAE,UAAU;qBACxB,CAEA;iBACF,CAAC,CAAC;gBACH,IAAI,CAAC,KAAK,EAAE,CAAC;gBACb,MAAM,IAAA,qBAAK,EACT,CAAM,IAAI,EAAC,EAAE;oBACX,MAAM,WAAI,CAAC,aAAa,CAAC,gBAAgB,EAAE,SAAS,EAAE;wBACpD,gBAAgB,EAAE,IAAI;wBACtB,MAAM,EAAE,IAAI;wBACZ,GAAG,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE;4BAClC,WAAW,EAAE,UAAU;yBACxB,CAEA;qBACF,CAAC;yBACC,IAAI,CAAC,GAAG,CAAC,EAAE;wBACV,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,CAAC,EAAE;4BAC9C,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;4BAC5B,OAAO,KAAK,CAAC;yBACd;wBACD,OAAO,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;oBAC3B,CAAC,CAAC;yBACD,KAAK,CAAC,KAAK,CAAC,EAAE;wBACb,IAAI,CAAC,KAAK,CAAC,CAAC;wBACZ,OAAO,KAAK,CAAC;oBACf,CAAC,CAAC,CAAC;gBACP,CAAC,CAAA,EACD;oBACE,OAAO,EAAE,CAAC;iBACX,CACF,CAAC;gBACF,IAAI,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;YAC1D,CAAC,CAAA,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAS,EAAE;gBACnD,MAAM,WAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,UAAU,EAAE,CAAC,CAAC,CAAC;gBACrG,MAAM,WAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAClE,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAEa,cAAc;;YAC1B,MAAM,UAAU,GAAG,sCAAsC,CAAC;YAE1D,MAAM,IAAI,CAAC,KAAK,CAAC,+BAA+B,EAAE,GAAS,EAAE;gBAC3D,MAAM,QAAQ,GAAG,MAAM,WAAI,CAAC,iBAAiB,CAAC,IAAA,0BAAiB,GAAE,EAAE;oBACjE,OAAO,EAAE,IAAI,CAAC,OAAO;oBACrB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,UAAU,EAAE,UAAU;iBACvB,CAAC,CAAC;gBACH,MAAM,WAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;gBACjD,MAAM,MAAM,GAAG,MAAM,WAAI,CAAC,iBAAiB,CAAC,IAAA,6BAAoB,GAAE,CAAC,CAAC;gBACpE,MAAM,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC,CAAA,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,KAAK,CAAC,uBAAuB,EAAE,GAAS,EAAE;gBACnD,MAAM,WAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,UAAU,EAAE,CAAC,CAAC,CAAC;gBACrG,MAAM,WAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YAClE,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAEY,QAAQ;;YACnB,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;gBAChB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;aACvC;YACD,QAAQ,YAAE,CAAC,QAAQ,EAAE,EAAE;gBACrB,KAAK,QAAQ,CAAC,CAAC;oBACb,MAAM,IAAI,CAAC,cAAc,EAAE,CAAC;oBAC5B,MAAM;iBACP;gBACD,KAAK,OAAO,CAAC,CAAC;oBACZ,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;oBAC3B,MAAM;iBACP;gBACD,KAAK,OAAO,CAAC,CAAC;oBACZ,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;oBAC7B,MAAM;iBACP;gBACD,OAAO,CAAC,CAAC;oBACP,MAAM,IAAI,KAAK,CAAC,yBAAyB,YAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;iBAC3D;aACF;QACH,CAAC;KAAA;IAEa,cAAc;;YAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAS,EAAE;gBAChD,MAAM,WAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,qBAAqB,CAAC,CAAC,CAAC;YAC1E,CAAC,CAAA,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,GAAS,EAAE;gBAC7C,MAAM,WAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;YACxD,CAAC,CAAA,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAS,EAAE;gBACrD,MAAM,WAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACvE,CAAC,CAAA,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAS,EAAE;gBAChD,MAAM,WAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACtD,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAEa,aAAa;;YACzB,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAS,EAAE;gBAChD,IAAI,CAAC,IAAI,CAAC,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,CAAC,EAAE,EAAC,QAAQ,EAAE,MAAM,EAAC,CAAC,CAAC,CAAC;YACxF,CAAC,CAAA,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,wBAAwB,EAAE,GAAS,EAAE;gBACpD,MAAM,WAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,YAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC7G,CAAC,CAAA,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAS,EAAE;gBACrD,MAAM,WAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACvE,CAAC,CAAA,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAS,EAAE;gBAChD,MAAM,WAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;YACtD,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAEa,eAAe;;YAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,GAAS,EAAE;gBAChD,MAAM,MAAM,GAAG,MAAM,WAAI,CAAC,iBAAiB,CAAC,IAAA,6BAAoB,GAAE,CAAC,CAAC;gBACpE,MAAM,WAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;YAC/C,CAAC,CAAA,CAAC,CAAC;YACH,MAAM,IAAI,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAS,EAAE;gBACrD,MAAM,WAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC;YACvE,CAAC,CAAA,CAAC,CAAC;QACL,CAAC;KAAA;IAEO,WAAW,CAAC,OAAe,EAAE,OAAe;QAClD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;QACnD,OAAO,IAAI,CAAC,MAAM,CAAC,yDAAyD,EAAE,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC;IACjI,CAAC;IAEO,MAAM,CAAC,UAAU;QACvB,QAAQ,YAAE,CAAC,QAAQ,EAAE,EAAE;YACrB,KAAK,QAAQ,CAAC,CAAC;gBACb,OAAO,KAAK,CAAC;aACd;YACD,KAAK,OAAO,CAAC,CAAC;gBACZ,OAAO,OAAO,CAAC;aAChB;YACD,KAAK,OAAO,CAAC,CAAC;gBACZ,OAAO,KAAK,CAAC;aACd;YACD,OAAO,CAAC,CAAC;gBACP,OAAO,YAAE,CAAC,QAAQ,EAAE,CAAC;aACtB;SACF;IACH,CAAC;IAEO,MAAM,CAAC,YAAY;QACzB,QAAQ,YAAE,CAAC,IAAI,EAAE,EAAE;YACjB,KAAK,KAAK,CAAC,CAAC;gBACV,OAAO,QAAQ,CAAC;aACjB;YACD,KAAK,OAAO,CAAC,CAAC;gBACZ,OAAO,SAAS,CAAC;aAClB;YACD,KAAK,KAAK,CAAC,CAAC;gBACV,8DAA8D;gBAC9D,MAAM,WAAW,GAAI,OAAO,CAAC,MAAM,CAAC,SAAiB,CAAC,WAAW,CAAC;gBAClE,QAAQ,WAAW,EAAE;oBACnB,KAAK,CAAC,CAAC,CAAC;wBACN,OAAO,OAAO,CAAC;qBAChB;oBACD,KAAK,CAAC,CAAC,CAAC;wBACN,OAAO,OAAO,CAAC;qBAChB;oBACD,OAAO,CAAC,CAAC;wBACP,OAAO,IAAI,WAAW,EAAE,CAAC;qBAC1B;iBACF;aACF;YACD,OAAO,CAAC,CAAC;gBACP,OAAO,YAAE,CAAC,IAAI,EAAE,CAAC;aAClB;SACF;IACH,CAAC;IAEO,MAAM,CAAO,eAAe;;YAClC,OAAO,MAAM,EAAE;iBACZ,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC;iBACrB,IAAI,CAAC,GAAG,CAAC,EAAE;gBACV,IAAI,CAAC,KAAK,CAAC,sCAAsC,GAAG,EAAE,CAAC,CAAC;gBACxD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC;iBACD,KAAK,CAAC,KAAK,CAAC,EAAE;gBACb,IAAI,CAAC,KAAK,CAAC,yCAAyC,KAAK,EAAE,CAAC,CAAC;gBAC7D,OAAO,KAAK,CAAC;YACf,CAAC,CAAC,CAAC;QACP,CAAC;KAAA;IAEM,MAAM,CAAO,UAAU,CAAC,OAAe;;YAC5C,MAAM,GAAG,GAAG,4FAA4F,CAAC;YACzG,MAAM,IAAI,GAAqB,IAAI,KAAK,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;YAC9E,MAAM,IAAI,GAA6B,MAAM,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;YAClD,IAAI,UAAU,IAAI,GAAG,EAAE;gBACrB,MAAM,IAAI,KAAK,CAAC,gCAAgC,OAAO,SAAS,GAAG,qBAAqB,UAAU,KAAK,IAAI,EAAE,CAAC,CAAC;aAChH;YACD,MAAM,QAAQ,GAAkC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACjE,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACtB,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,OAAO,GAAG,EAAE,CAAC,CAAC;aACpE;YACD,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;KAAA;CACF;AAxVD,0BAwVC"}
package/lib/git.d.ts CHANGED
@@ -13,6 +13,15 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ import { Context as GitContext } from './types/git';
16
17
  export declare class Git {
17
- static getRemoteSha(repo: string, ref: string): Promise<string>;
18
+ static context(): Promise<GitContext>;
19
+ static isInsideWorkTree(): Promise<boolean>;
20
+ static remoteSha(repo: string, ref: string): Promise<string>;
21
+ static remoteURL(): Promise<string>;
22
+ static ref(): Promise<string>;
23
+ static fullCommit(): Promise<string>;
24
+ static shortCommit(): Promise<string>;
25
+ static tag(): Promise<string>;
26
+ private static exec;
18
27
  }
package/lib/git.js CHANGED
@@ -26,21 +26,88 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
26
26
  Object.defineProperty(exports, "__esModule", { value: true });
27
27
  exports.Git = void 0;
28
28
  const exec_1 = require("./exec");
29
+ const context_1 = require("@actions/github/lib/context");
29
30
  class Git {
30
- static getRemoteSha(repo, ref) {
31
+ static context() {
31
32
  return __awaiter(this, void 0, void 0, function* () {
32
- return yield exec_1.Exec.getExecOutput(`git`, ['ls-remote', repo, ref], {
33
+ const ctx = new context_1.Context();
34
+ ctx.ref = yield Git.ref();
35
+ ctx.sha = yield Git.fullCommit();
36
+ return ctx;
37
+ });
38
+ }
39
+ static isInsideWorkTree() {
40
+ return __awaiter(this, void 0, void 0, function* () {
41
+ return yield Git.exec(['rev-parse', '--is-inside-work-tree'])
42
+ .then(out => {
43
+ return out === 'true';
44
+ })
45
+ .catch(() => {
46
+ return false;
47
+ });
48
+ });
49
+ }
50
+ static remoteSha(repo, ref) {
51
+ return __awaiter(this, void 0, void 0, function* () {
52
+ return yield Git.exec(['ls-remote', repo, ref]).then(out => {
53
+ const [rsha] = out.split(/[\s\t]/);
54
+ if (rsha.length == 0) {
55
+ throw new Error(`Cannot find remote ref for ${repo}#${ref}`);
56
+ }
57
+ return rsha;
58
+ });
59
+ });
60
+ }
61
+ static remoteURL() {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ return yield Git.exec(['remote', 'get-url', 'origin']).then(rurl => {
64
+ if (rurl.length == 0) {
65
+ return Git.exec(['remote', 'get-url', 'upstream']).then(rurl => {
66
+ if (rurl.length == 0) {
67
+ throw new Error(`Cannot find remote URL for origin or upstream`);
68
+ }
69
+ return rurl;
70
+ });
71
+ }
72
+ return rurl;
73
+ });
74
+ });
75
+ }
76
+ static ref() {
77
+ return __awaiter(this, void 0, void 0, function* () {
78
+ return yield Git.exec(['symbolic-ref', 'HEAD']);
79
+ });
80
+ }
81
+ static fullCommit() {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ return yield Git.exec(['show', '--format=%H', 'HEAD', '--quiet', '--']);
84
+ });
85
+ }
86
+ static shortCommit() {
87
+ return __awaiter(this, void 0, void 0, function* () {
88
+ return yield Git.exec(['show', '--format=%h', 'HEAD', '--quiet', '--']);
89
+ });
90
+ }
91
+ static tag() {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ return yield Git.exec(['tag', '--points-at', 'HEAD', '--sort', '-version:creatordate']).then(tags => {
94
+ if (tags.length == 0) {
95
+ return Git.exec(['describe', '--tags', '--abbrev=0']);
96
+ }
97
+ return tags.split('\n')[0];
98
+ });
99
+ });
100
+ }
101
+ static exec(args = []) {
102
+ return __awaiter(this, void 0, void 0, function* () {
103
+ return yield exec_1.Exec.getExecOutput(`git`, args, {
33
104
  ignoreReturnCode: true,
34
105
  silent: true
35
106
  }).then(res => {
36
107
  if (res.stderr.length > 0 && res.exitCode != 0) {
37
108
  throw new Error(res.stderr);
38
109
  }
39
- const [rsha] = res.stdout.trim().split(/[\s\t]/);
40
- if (rsha.length == 0) {
41
- throw new Error(`Cannot find remote ref for ${repo}#${ref}`);
42
- }
43
- return rsha;
110
+ return res.stdout.trim();
44
111
  });
45
112
  });
46
113
  }
package/lib/git.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;AAEH,iCAA4B;AAE5B,MAAa,GAAG;IACP,MAAM,CAAO,YAAY,CAAC,IAAY,EAAE,GAAW;;YACxD,OAAO,MAAM,WAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE;gBAC/D,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;oBAC9C,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;iBAC7B;gBACD,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACjD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,EAAE;oBACpB,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,IAAI,GAAG,EAAE,CAAC,CAAC;iBAC9D;gBACD,OAAO,IAAI,CAAC;YACd,CAAC,CAAC,CAAC;QACL,CAAC;KAAA;CACF;AAhBD,kBAgBC"}
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../src/git.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Copyright 2023 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 { Context as GitHubContext } from '@actions/github/lib/context';
17
+ export type Context = GitHubContext;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ /**
3
+ * Copyright 2023 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=git.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"git.js","sourceRoot":"","sources":["../../src/types/git.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG"}
package/lib/util.d.ts CHANGED
@@ -22,4 +22,9 @@ export declare class Util {
22
22
  static getInputList(name: string, opts?: InputListOpts): string[];
23
23
  static asyncForEach(array: any, callback: any): Promise<void>;
24
24
  static isValidUrl(url: string): boolean;
25
+ static powershellCommand(script: string, params?: Record<string, string>): Promise<{
26
+ command: string;
27
+ args: string[];
28
+ }>;
29
+ static isDirectory(p: any): boolean;
25
30
  }
package/lib/util.js CHANGED
@@ -46,9 +46,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
46
46
  step((generator = generator.apply(thisArg, _arguments || [])).next());
47
47
  });
48
48
  };
49
+ var __importDefault = (this && this.__importDefault) || function (mod) {
50
+ return (mod && mod.__esModule) ? mod : { "default": mod };
51
+ };
49
52
  Object.defineProperty(exports, "__esModule", { value: true });
50
53
  exports.Util = void 0;
54
+ const fs_1 = __importDefault(require("fs"));
51
55
  const core = __importStar(require("@actions/core"));
56
+ const io = __importStar(require("@actions/io"));
52
57
  const sync_1 = require("csv-parse/sync");
53
58
  class Util {
54
59
  static getInputList(name, opts) {
@@ -99,6 +104,31 @@ class Util {
99
104
  }
100
105
  return true;
101
106
  }
107
+ static powershellCommand(script, params) {
108
+ return __awaiter(this, void 0, void 0, function* () {
109
+ const powershellPath = yield io.which('powershell', true);
110
+ const escapedScript = script.replace(/'/g, "''").replace(/"|\n|\r/g, '');
111
+ const escapedParams = [];
112
+ if (params) {
113
+ for (const key in params) {
114
+ escapedParams.push(`-${key} '${params[key].replace(/'/g, "''").replace(/"|\n|\r/g, '')}'`);
115
+ }
116
+ }
117
+ return {
118
+ command: `"${powershellPath}"`,
119
+ args: ['-NoLogo', '-Sta', '-NoProfile', '-NonInteractive', '-ExecutionPolicy', 'Unrestricted', '-Command', `& '${escapedScript}' ${escapedParams.join(' ')}`]
120
+ };
121
+ });
122
+ }
123
+ static isDirectory(p) {
124
+ try {
125
+ return fs_1.default.lstatSync(p).isDirectory();
126
+ }
127
+ catch (_) {
128
+ // noop
129
+ }
130
+ return false;
131
+ }
102
132
  }
103
133
  exports.Util = Util;
104
134
  //# sourceMappingURL=util.js.map
package/lib/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,oDAAsC;AACtC,yCAAqC;AAOrC,MAAa,IAAI;IACR,MAAM,CAAC,YAAY,CAAC,IAAY,EAAE,IAAoB;QAC3D,MAAM,GAAG,GAAkB,EAAE,CAAC;QAE9B,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,KAAK,IAAI,EAAE,EAAE;YACf,OAAO,GAAG,CAAC;SACZ;QAED,MAAM,OAAO,GAAG,IAAA,YAAK,EAAC,KAAK,EAAE;YAC3B,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,IAAI;YACjB,OAAO,EAAE,GAAG;YACZ,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,IAAI;YACpB,KAAK,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK;SACnB,CAAC,CAAC;QAEH,KAAK,MAAM,MAAM,IAAI,OAA0B,EAAE;YAC/C,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gBACtB,IAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,EAAE;oBACrB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;iBACrB;qBAAM;oBACL,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;iBACnC;aACF;iBAAM,IAAI,CAAC,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,CAAA,EAAE;gBAC7B,GAAG,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,CAAC;aACrB;iBAAM;gBACL,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;aAC5B;SACF;QAED,OAAO,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAEM,MAAM,CAAO,YAAY,CAAC,KAAK,EAAE,QAAQ;;YAC9C,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACjD,MAAM,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;aAC5C;QACH,CAAC;KAAA;IAEM,MAAM,CAAC,UAAU,CAAC,GAAW;QAClC,IAAI;YACF,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;SACd;QAAC,OAAO,CAAC,EAAE;YACV,OAAO,KAAK,CAAC;SACd;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AAjDD,oBAiDC"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../src/util.ts"],"names":[],"mappings":"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"}