diff --git a/lib/run.js b/lib/run.js index eb2ec23..1b8ede7 100644 --- a/lib/run.js +++ b/lib/run.js @@ -1,89 +1,76 @@ -"use strict"; -var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { - function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } - return new (P || (P = Promise))(function (resolve, reject) { - function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } - function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } - function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } - step((generator = generator.apply(thisArg, _arguments || [])).next()); - }); -}; -Object.defineProperty(exports, "__esModule", { value: true }); -exports.run = exports.downloadKubectl = exports.getStableKubectlVersion = exports.getkubectlDownloadURL = exports.getExecutableExtension = void 0; -const os = require("os"); -const path = require("path"); -const util = require("util"); -const fs = require("fs"); -const toolCache = require("@actions/tool-cache"); -const core = require("@actions/core"); -const kubectlToolName = 'kubectl'; -const stableKubectlVersion = 'v1.15.0'; -const stableVersionUrl = 'https://storage.googleapis.com/kubernetes-release/release/stable.txt'; -function getExecutableExtension() { - if (os.type().match(/^Win/)) { - return '.exe'; - } - return ''; -} -exports.getExecutableExtension = getExecutableExtension; -function getkubectlDownloadURL(version) { - switch (os.type()) { - case 'Linux': - return util.format('https://storage.googleapis.com/kubernetes-release/release/%s/bin/linux/amd64/kubectl', version); - case 'Darwin': - return util.format('https://storage.googleapis.com/kubernetes-release/release/%s/bin/darwin/amd64/kubectl', version); - case 'Windows_NT': - default: - return util.format('https://storage.googleapis.com/kubernetes-release/release/%s/bin/windows/amd64/kubectl.exe', version); - } -} -exports.getkubectlDownloadURL = getkubectlDownloadURL; -function getStableKubectlVersion() { - return __awaiter(this, void 0, void 0, function* () { - return toolCache.downloadTool(stableVersionUrl).then((downloadPath) => { - let version = fs.readFileSync(downloadPath, 'utf8').toString().trim(); - if (!version) { - version = stableKubectlVersion; - } - return version; - }, (error) => { - core.debug(error); - core.warning('GetStableVersionFailed'); - return stableKubectlVersion; - }); - }); -} -exports.getStableKubectlVersion = getStableKubectlVersion; -function downloadKubectl(version) { - return __awaiter(this, void 0, void 0, function* () { - let cachedToolpath = toolCache.find(kubectlToolName, version); - let kubectlDownloadPath = ''; - if (!cachedToolpath) { - try { - kubectlDownloadPath = yield toolCache.downloadTool(getkubectlDownloadURL(version)); - } - catch (exception) { - throw new Error('DownloadKubectlFailed'); - } - cachedToolpath = yield toolCache.cacheFile(kubectlDownloadPath, kubectlToolName + getExecutableExtension(), kubectlToolName, version); - } - const kubectlPath = path.join(cachedToolpath, kubectlToolName + getExecutableExtension()); - fs.chmodSync(kubectlPath, '777'); - return kubectlPath; - }); -} -exports.downloadKubectl = downloadKubectl; -function run() { - return __awaiter(this, void 0, void 0, function* () { - let version = core.getInput('version', { 'required': true }); - if (version.toLocaleLowerCase() === 'latest') { - version = yield getStableKubectlVersion(); - } - let cachedPath = yield downloadKubectl(version); - core.addPath(path.dirname(cachedPath)); - console.log(`Kubectl tool version: '${version}' has been cached at ${cachedPath}`); - core.setOutput('kubectl-path', cachedPath); - }); -} -exports.run = run; -run().catch(core.setFailed); +"use strict"; +var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { + function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } + return new (P || (P = Promise))(function (resolve, reject) { + function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } + function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } + function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } + step((generator = generator.apply(thisArg, _arguments || [])).next()); + }); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +exports.downloadKubectl = exports.getStableKubectlVersion = exports.run = void 0; +const path = require("path"); +const util = require("util"); +const fs = require("fs"); +const toolCache = require("@actions/tool-cache"); +const core = require("@actions/core"); +const helpers_1 = require("./helpers"); +const kubectlToolName = 'kubectl'; +const stableKubectlVersion = 'v1.15.0'; +const stableVersionUrl = 'https://storage.googleapis.com/kubernetes-release/release/stable.txt'; +function run() { + return __awaiter(this, void 0, void 0, function* () { + let version = core.getInput('version', { 'required': true }); + if (version.toLocaleLowerCase() === 'latest') { + version = yield getStableKubectlVersion(); + } + const cachedPath = yield downloadKubectl(version); + core.addPath(path.dirname(cachedPath)); + core.debug(`Kubectl tool version: '${version}' has been cached at ${cachedPath}`); + core.setOutput('kubectl-path', cachedPath); + }); +} +exports.run = run; +function getStableKubectlVersion() { + return __awaiter(this, void 0, void 0, function* () { + return toolCache.downloadTool(stableVersionUrl).then((downloadPath) => { + let version = fs.readFileSync(downloadPath, 'utf8').toString().trim(); + if (!version) { + version = stableKubectlVersion; + } + return version; + }, (error) => { + core.debug(error); + core.warning('GetStableVersionFailed'); + return stableKubectlVersion; + }); + }); +} +exports.getStableKubectlVersion = getStableKubectlVersion; +function downloadKubectl(version) { + return __awaiter(this, void 0, void 0, function* () { + let cachedToolpath = toolCache.find(kubectlToolName, version); + let kubectlDownloadPath = ''; + const arch = helpers_1.getKubectlArch(); + if (!cachedToolpath) { + try { + kubectlDownloadPath = yield toolCache.downloadTool(helpers_1.getkubectlDownloadURL(version, arch)); + } + catch (exception) { + if (exception instanceof toolCache.HTTPError && exception.httpStatusCode === 404) { + throw new Error(util.format("Kubectl '%s' for '%s' arch not found.", version, arch)); + } + else { + throw new Error('DownloadKubectlFailed'); + } + } + cachedToolpath = yield toolCache.cacheFile(kubectlDownloadPath, kubectlToolName + helpers_1.getExecutableExtension(), kubectlToolName, version); + } + const kubectlPath = path.join(cachedToolpath, kubectlToolName + helpers_1.getExecutableExtension()); + fs.chmodSync(kubectlPath, '777'); + return kubectlPath; + }); +} +exports.downloadKubectl = downloadKubectl; +run().catch(core.setFailed);