Setup new build

This commit is contained in:
Imran Ismail
2019-11-12 19:38:02 +08:00
parent de1a98036b
commit 9d368a1847
2 changed files with 38 additions and 16 deletions

View File

@@ -1,9 +1,10 @@
"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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};
@@ -23,7 +24,6 @@ const restm = __importStar(require("typed-rest-client/RestClient"));
const os = __importStar(require("os"));
const path = __importStar(require("path"));
const semver = __importStar(require("semver"));
const fs = __importStar(require("fs"));
let osPlat = os.platform();
let osArch = os.arch();
if (!tempDirectory) {
@@ -99,15 +99,15 @@ function queryLatestMatch(versionSpec) {
let kustomizeVersions = (yield rest.get(dataUrl)).result || [];
kustomizeVersions.forEach((kustomizeVersion) => {
if (kustomizeVersion.assets.some(asset => asset.name.includes(dataFileName))) {
versions.push(kustomizeVersion.name);
let version = semver.clean(kustomizeVersion.name);
if (version != null) {
versions.push(version);
}
}
});
// get the latest version that matches the version spec
let version = evaluateVersions(versions, versionSpec);
return version;
return evaluateVersions(versions, versionSpec);
});
}
// TODO - should we just export this from @actions/tool-cache? Lifted directly from there
function evaluateVersions(versions, versionSpec) {
let version = '';
core.debug(`evaluating ${versions.length} versions`);
@@ -136,25 +136,39 @@ function evaluateVersions(versions, versionSpec) {
function acquireKustomize(version) {
return __awaiter(this, void 0, void 0, function* () {
version = semver.clean(version) || '';
let fileName = `kustomize_${version}`;
let downloadUrl;
let downloadPath;
if (semver.gte(version, "3.3.0")) {
downloadUrl = `https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v${version}/kustomize_v${version}_%{os}_%{arch}.tar.gz`;
}
else if (semver.gte(version, "3.2.1")) {
downloadUrl = `https://github.com/kubernetes-sigs/kustomize/releases/download/kustomize/v${version}/kustomize_kustomize.v${version}_%{os}_%{arch}`;
}
else {
downloadUrl = `https://github.com/kubernetes-sigs/kustomize/releases/download/v${version}/kustomize_${version}_%{os}_%{arch}`;
}
switch (osPlat) {
case 'win32':
if (semver.lte(version, "3.2.1"))
throw new Error(`Unexpected OS '${osPlat}'`);
downloadUrl = downloadUrl.replace('%{os}', 'windows');
if (semver.lt(version, "3.3.0"))
downloadUrl = `${downloadUrl}.exe`;
break;
case 'linux':
case 'darwin':
case 'win32':
fileName = `${fileName}_${osPlat}`;
downloadUrl = downloadUrl.replace('%{os}', osPlat);
break;
default:
throw new Error(`Unexpected OS '${osPlat}'`);
}
switch (osArch) {
case 'x64':
fileName = `${fileName}_amd64`;
downloadUrl = downloadUrl.replace('%{arch}', 'amd64');
break;
default:
fileName = `${fileName}_${osArch}`;
throw new Error(`Unexpected Arch '${osArch}'`);
}
let downloadUrl = `https://github.com/kubernetes-sigs/kustomize/releases/download/v${version}/${fileName}`;
let downloadPath;
try {
downloadPath = yield tc.downloadTool(downloadUrl);
}
@@ -162,7 +176,14 @@ function acquireKustomize(version) {
core.debug(err);
throw `Failed to download version ${version}: ${err}`;
}
fs.chmodSync(downloadPath, 0o755);
let toolPath = downloadPath;
if (downloadUrl.endsWith('.tar.gz')) {
let extPath = yield tc.extractTar(downloadPath);
toolPath = path.join(extPath, "kustomize");
}
if (osPlat == "win32") {
toolPath = `${toolPath}.exe`;
}
return yield tc.cacheFile(downloadPath, 'kustomize', 'kustomize', version);
});
}

View File

@@ -1,9 +1,10 @@
"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) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
step((generator = generator.apply(thisArg, _arguments || [])).next());
});
};