From c72873efaef86551c9673bcb4231ac940ca011f1 Mon Sep 17 00:00:00 2001 From: Webber Date: Sat, 26 Mar 2022 20:33:05 +0100 Subject: [PATCH] chore: update dist files --- dist/index.js | 8653 +++++++++++++++++++++++++------------------------ 1 file changed, 4328 insertions(+), 4325 deletions(-) diff --git a/dist/index.js b/dist/index.js index 3d2b8436..0763fd4d 100644 --- a/dist/index.js +++ b/dist/index.js @@ -5,84 +5,84 @@ require('./sourcemap-register.js');/******/ (() => { // webpackBootstrap /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const core = __importStar(__nccwpck_require__(42186)); -const model_1 = __nccwpck_require__(41359); -const cli_1 = __nccwpck_require__(55651); -const mac_builder_1 = __importDefault(__nccwpck_require__(39364)); -const platform_setup_1 = __importDefault(__nccwpck_require__(64423)); -function runMain() { - return __awaiter(this, void 0, void 0, function* () { - try { - model_1.Action.checkCompatibility(); - model_1.Cache.verify(); - const { dockerfile, workspace, actionFolder } = model_1.Action; - const buildParameters = yield model_1.BuildParameters.create(); - const baseImage = new model_1.ImageTag(buildParameters); - let builtImage; - if (buildParameters.cloudRunnerCluster && - buildParameters.cloudRunnerCluster !== '' && - buildParameters.cloudRunnerCluster !== 'local') { - yield model_1.CloudRunner.run(buildParameters, baseImage.toString()); - } - else { - core.info('Building locally'); - yield platform_setup_1.default.setup(buildParameters, actionFolder); - if (process.platform === 'darwin') { - mac_builder_1.default.run(actionFolder, workspace, buildParameters); - } - else { - builtImage = yield model_1.Docker.build({ path: actionFolder, dockerfile, baseImage }); - yield model_1.Docker.run(builtImage, Object.assign({ workspace }, buildParameters)); - } - } - // Set output - yield model_1.Output.setBuildVersion(buildParameters.buildVersion); - } - catch (error) { - core.setFailed(error.message); - } - }); -} -const options = cli_1.CLI.SetupCli(); -if (cli_1.CLI.isCliMode(options)) { - cli_1.CLI.RunCli(options); -} -else { - runMain(); -} + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const core = __importStar(__nccwpck_require__(42186)); +const model_1 = __nccwpck_require__(41359); +const cli_1 = __nccwpck_require__(55651); +const mac_builder_1 = __importDefault(__nccwpck_require__(39364)); +const platform_setup_1 = __importDefault(__nccwpck_require__(64423)); +function runMain() { + return __awaiter(this, void 0, void 0, function* () { + try { + model_1.Action.checkCompatibility(); + model_1.Cache.verify(); + const { dockerfile, workspace, actionFolder } = model_1.Action; + const buildParameters = yield model_1.BuildParameters.create(); + const baseImage = new model_1.ImageTag(buildParameters); + let builtImage; + if (buildParameters.cloudRunnerCluster && + buildParameters.cloudRunnerCluster !== '' && + buildParameters.cloudRunnerCluster !== 'local') { + yield model_1.CloudRunner.run(buildParameters, baseImage.toString()); + } + else { + core.info('Building locally'); + yield platform_setup_1.default.setup(buildParameters, actionFolder); + if (process.platform === 'darwin') { + mac_builder_1.default.run(actionFolder, workspace, buildParameters); + } + else { + builtImage = yield model_1.Docker.build({ path: actionFolder, dockerfile, baseImage }); + yield model_1.Docker.run(builtImage, Object.assign({ workspace }, buildParameters)); + } + } + // Set output + yield model_1.Output.setBuildVersion(buildParameters.buildVersion); + } + catch (error) { + core.setFailed(error.message); + } + }); +} +const options = cli_1.CLI.SetupCli(); +if (cli_1.CLI.isCliMode(options)) { + cli_1.CLI.RunCli(options); +} +else { + runMain(); +} /***/ }), @@ -91,58 +91,58 @@ else { /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const path_1 = __importDefault(__nccwpck_require__(71017)); -class Action { - static get supportedPlatforms() { - return ['linux', 'win32', 'darwin']; - } - static get isRunningLocally() { - return process.env.RUNNER_WORKSPACE === undefined; - } - static get isRunningFromSource() { - return path_1.default.basename(__dirname) === 'model'; - } - static get canonicalName() { - return 'unity-builder'; - } - static get rootFolder() { - if (Action.isRunningFromSource) { - return path_1.default.dirname(path_1.default.dirname(path_1.default.dirname(__filename))); - } - return path_1.default.dirname(path_1.default.dirname(__filename)); - } - static get actionFolder() { - return `${Action.rootFolder}/dist`; - } - static get dockerfile() { - const currentPlatform = process.platform; - switch (currentPlatform) { - case 'linux': - return `${Action.actionFolder}/platforms/ubuntu/Dockerfile`; - case 'win32': - return `${Action.actionFolder}/platforms/windows/Dockerfile`; - case 'darwin': - return 'unused'; //Mac doesn't use a container - default: - throw new Error(`No Dockerfile for currently unsupported platform: ${currentPlatform}`); - } - } - static get workspace() { - return process.env.GITHUB_WORKSPACE; - } - static checkCompatibility() { - const currentPlatform = process.platform; - if (!Action.supportedPlatforms.includes(currentPlatform)) { - throw new Error(`Currently ${currentPlatform}-platform is not supported`); - } - } -} -exports["default"] = Action; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const path_1 = __importDefault(__nccwpck_require__(71017)); +class Action { + static get supportedPlatforms() { + return ['linux', 'win32', 'darwin']; + } + static get isRunningLocally() { + return process.env.RUNNER_WORKSPACE === undefined; + } + static get isRunningFromSource() { + return path_1.default.basename(__dirname) === 'model'; + } + static get canonicalName() { + return 'unity-builder'; + } + static get rootFolder() { + if (Action.isRunningFromSource) { + return path_1.default.dirname(path_1.default.dirname(path_1.default.dirname(__filename))); + } + return path_1.default.dirname(path_1.default.dirname(__filename)); + } + static get actionFolder() { + return `${Action.rootFolder}/dist`; + } + static get dockerfile() { + const currentPlatform = process.platform; + switch (currentPlatform) { + case 'linux': + return `${Action.actionFolder}/platforms/ubuntu/Dockerfile`; + case 'win32': + return `${Action.actionFolder}/platforms/windows/Dockerfile`; + case 'darwin': + return 'unused'; //Mac doesn't use a container + default: + throw new Error(`No Dockerfile for currently unsupported platform: ${currentPlatform}`); + } + } + static get workspace() { + return process.env.GITHUB_WORKSPACE; + } + static checkCompatibility() { + const currentPlatform = process.platform; + if (!Action.supportedPlatforms.includes(currentPlatform)) { + throw new Error(`Currently ${currentPlatform}-platform is not supported`); + } + } +} +exports["default"] = Action; /***/ }), @@ -151,61 +151,61 @@ exports["default"] = Action; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const core = __importStar(__nccwpck_require__(42186)); -const semver = __importStar(__nccwpck_require__(11383)); -class AndroidVersioning { - static determineVersionCode(version, inputVersionCode) { - if (!inputVersionCode) { - return AndroidVersioning.versionToVersionCode(version); - } - return inputVersionCode; - } - static versionToVersionCode(version) { - if (version === 'none') { - core.info(`Versioning strategy is set to ${version}, so android version code should not be applied.`); - return 0; - } - const parsedVersion = semver.parse(version); - if (!parsedVersion) { - core.warning(`Could not parse "${version}" to semver, defaulting android version code to 1`); - return 1; - } - // The greatest value Google Plays allows is 2100000000. - // Allow for 3 patch digits, 3 minor digits and 3 major digits. - const versionCode = parsedVersion.major * 1000000 + parsedVersion.minor * 1000 + parsedVersion.patch; - if (versionCode >= 2050000000) { - throw new Error(`Generated versionCode ${versionCode} is dangerously close to the maximum allowed number 2100000000. Consider a different versioning scheme to be able to continue updating your application.`); - } - core.info(`Using android versionCode ${versionCode}`); - return versionCode; - } - static determineSdkManagerParameters(targetSdkVersion) { - const parsedVersion = Number.parseInt(targetSdkVersion.slice(-2), 10); - return Number.isNaN(parsedVersion) ? '' : `platforms;android-${parsedVersion}`; - } -} -exports["default"] = AndroidVersioning; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const core = __importStar(__nccwpck_require__(42186)); +const semver = __importStar(__nccwpck_require__(11383)); +class AndroidVersioning { + static determineVersionCode(version, inputVersionCode) { + if (!inputVersionCode) { + return AndroidVersioning.versionToVersionCode(version); + } + return inputVersionCode; + } + static versionToVersionCode(version) { + if (version === 'none') { + core.info(`Versioning strategy is set to ${version}, so android version code should not be applied.`); + return 0; + } + const parsedVersion = semver.parse(version); + if (!parsedVersion) { + core.warning(`Could not parse "${version}" to semver, defaulting android version code to 1`); + return 1; + } + // The greatest value Google Plays allows is 2100000000. + // Allow for 3 patch digits, 3 minor digits and 3 major digits. + const versionCode = parsedVersion.major * 1000000 + parsedVersion.minor * 1000 + parsedVersion.patch; + if (versionCode >= 2050000000) { + throw new Error(`Generated versionCode ${versionCode} is dangerously close to the maximum allowed number 2100000000. Consider a different versioning scheme to be able to continue updating your application.`); + } + core.info(`Using android versionCode ${versionCode}`); + return versionCode; + } + static determineSdkManagerParameters(targetSdkVersion) { + const parsedVersion = Number.parseInt(targetSdkVersion.slice(-2), 10); + return Number.isNaN(parsedVersion) ? '' : `platforms;android-${parsedVersion}`; + } +} +exports["default"] = AndroidVersioning; /***/ }), @@ -214,139 +214,139 @@ exports["default"] = AndroidVersioning; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const nanoid_1 = __nccwpck_require__(17592); -const core = __importStar(__nccwpck_require__(42186)); -const android_versioning_1 = __importDefault(__nccwpck_require__(43059)); -const cloud_runner_constants_1 = __importDefault(__nccwpck_require__(91311)); -const cloud_runner_namespace_1 = __importDefault(__nccwpck_require__(63287)); -const input_1 = __importDefault(__nccwpck_require__(91933)); -const platform_1 = __importDefault(__nccwpck_require__(9707)); -const unity_versioning_1 = __importDefault(__nccwpck_require__(17146)); -const versioning_1 = __importDefault(__nccwpck_require__(88729)); -class BuildParameters { - static create() { - return __awaiter(this, void 0, void 0, function* () { - const buildFile = this.parseBuildFile(input_1.default.buildName, input_1.default.targetPlatform, input_1.default.androidAppBundle); - const unityVersion = unity_versioning_1.default.determineUnityVersion(input_1.default.projectPath, input_1.default.unityVersion); - const buildVersion = yield versioning_1.default.determineVersion(input_1.default.versioningStrategy, input_1.default.specifiedVersion); - const androidVersionCode = android_versioning_1.default.determineVersionCode(buildVersion, input_1.default.androidVersionCode); - const androidSdkManagerParameters = android_versioning_1.default.determineSdkManagerParameters(input_1.default.androidTargetSdkVersion); - let unitySerial = ''; - if (!process.env.UNITY_SERIAL) { - //No serial was present so it is a personal license that we need to convert - if (!process.env.UNITY_LICENSE) { + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const nanoid_1 = __nccwpck_require__(17592); +const core = __importStar(__nccwpck_require__(42186)); +const android_versioning_1 = __importDefault(__nccwpck_require__(43059)); +const cloud_runner_constants_1 = __importDefault(__nccwpck_require__(91311)); +const cloud_runner_namespace_1 = __importDefault(__nccwpck_require__(63287)); +const input_1 = __importDefault(__nccwpck_require__(91933)); +const platform_1 = __importDefault(__nccwpck_require__(9707)); +const unity_versioning_1 = __importDefault(__nccwpck_require__(17146)); +const versioning_1 = __importDefault(__nccwpck_require__(88729)); +class BuildParameters { + static create() { + return __awaiter(this, void 0, void 0, function* () { + const buildFile = this.parseBuildFile(input_1.default.buildName, input_1.default.targetPlatform, input_1.default.androidAppBundle); + const unityVersion = unity_versioning_1.default.determineUnityVersion(input_1.default.projectPath, input_1.default.unityVersion); + const buildVersion = yield versioning_1.default.determineVersion(input_1.default.versioningStrategy, input_1.default.specifiedVersion); + const androidVersionCode = android_versioning_1.default.determineVersionCode(buildVersion, input_1.default.androidVersionCode); + const androidSdkManagerParameters = android_versioning_1.default.determineSdkManagerParameters(input_1.default.androidTargetSdkVersion); + let unitySerial = ''; + if (!process.env.UNITY_SERIAL) { + //No serial was present so it is a personal license that we need to convert + if (!process.env.UNITY_LICENSE) { throw new Error(`Missing Unity License File and no Serial was found. If this is a personal license, make sure to follow the activation steps and set the UNITY_LICENSE GitHub secret or enter a Unity - serial number inside the UNITY_SERIAL GitHub secret.`); - } - unitySerial = this.getSerialFromLicenseFile(process.env.UNITY_LICENSE); - } - else { - unitySerial = process.env.UNITY_SERIAL; - } - core.setSecret(unitySerial); - return { - version: unityVersion, - customImage: input_1.default.customImage, - unitySerial, - runnerTempPath: process.env.RUNNER_TEMP, - platform: input_1.default.targetPlatform, - projectPath: input_1.default.projectPath, - buildName: input_1.default.buildName, - buildPath: `${input_1.default.buildsPath}/${input_1.default.targetPlatform}`, - buildFile, - buildMethod: input_1.default.buildMethod, - buildVersion, - androidVersionCode, - androidKeystoreName: input_1.default.androidKeystoreName, - androidKeystoreBase64: input_1.default.androidKeystoreBase64, - androidKeystorePass: input_1.default.androidKeystorePass, - androidKeyaliasName: input_1.default.androidKeyaliasName, - androidKeyaliasPass: input_1.default.androidKeyaliasPass, - androidTargetSdkVersion: input_1.default.androidTargetSdkVersion, - androidSdkManagerParameters, - customParameters: input_1.default.customParameters, - sshAgent: input_1.default.sshAgent, - gitPrivateToken: yield input_1.default.gitPrivateToken(), - chownFilesTo: input_1.default.chownFilesTo, - cloudRunnerCluster: input_1.default.cloudRunnerCluster, - awsBaseStackName: input_1.default.awsBaseStackName, - kubeConfig: input_1.default.kubeConfig, - githubToken: yield input_1.default.githubToken(), - cloudRunnerMemory: input_1.default.cloudRunnerMemory, - cloudRunnerCpu: input_1.default.cloudRunnerCpu, - kubeVolumeSize: input_1.default.kubeVolumeSize, - kubeVolume: input_1.default.kubeVolume, - postBuildSteps: input_1.default.postBuildSteps, - preBuildSteps: input_1.default.preBuildSteps, - customJob: input_1.default.customJob, - runNumber: input_1.default.runNumber, - branch: yield input_1.default.branch(), - githubRepo: yield input_1.default.githubRepo(), - remoteBuildCluster: input_1.default.cloudRunnerCluster, - awsStackName: input_1.default.awsBaseStackName, - gitSha: input_1.default.gitSha, - logId: nanoid_1.customAlphabet(cloud_runner_constants_1.default.alphabet, 9)(), - buildGuid: cloud_runner_namespace_1.default.generateBuildName(input_1.default.runNumber, input_1.default.targetPlatform), - }; - }); - } - static parseBuildFile(filename, platform, androidAppBundle) { - if (platform_1.default.isWindows(platform)) { - return `${filename}.exe`; - } - if (platform_1.default.isAndroid(platform)) { - return androidAppBundle ? `${filename}.aab` : `${filename}.apk`; - } - return filename; - } - static getSerialFromLicenseFile(license) { - const startKey = ``; - const startIndex = license.indexOf(startKey) + startKey.length; - if (startIndex < 0) { - throw new Error(`License File was corrupted, unable to locate serial`); - } - const endIndex = license.indexOf(endKey, startIndex); - // Slice off the first 4 characters as they are garbage values - return Buffer.from(license.slice(startIndex, endIndex), 'base64').toString('binary').slice(4); - } -} -exports["default"] = BuildParameters; + serial number inside the UNITY_SERIAL GitHub secret.`); + } + unitySerial = this.getSerialFromLicenseFile(process.env.UNITY_LICENSE); + } + else { + unitySerial = process.env.UNITY_SERIAL; + } + core.setSecret(unitySerial); + return { + version: unityVersion, + customImage: input_1.default.customImage, + unitySerial, + runnerTempPath: process.env.RUNNER_TEMP, + platform: input_1.default.targetPlatform, + projectPath: input_1.default.projectPath, + buildName: input_1.default.buildName, + buildPath: `${input_1.default.buildsPath}/${input_1.default.targetPlatform}`, + buildFile, + buildMethod: input_1.default.buildMethod, + buildVersion, + androidVersionCode, + androidKeystoreName: input_1.default.androidKeystoreName, + androidKeystoreBase64: input_1.default.androidKeystoreBase64, + androidKeystorePass: input_1.default.androidKeystorePass, + androidKeyaliasName: input_1.default.androidKeyaliasName, + androidKeyaliasPass: input_1.default.androidKeyaliasPass, + androidTargetSdkVersion: input_1.default.androidTargetSdkVersion, + androidSdkManagerParameters, + customParameters: input_1.default.customParameters, + sshAgent: input_1.default.sshAgent, + gitPrivateToken: yield input_1.default.gitPrivateToken(), + chownFilesTo: input_1.default.chownFilesTo, + cloudRunnerCluster: input_1.default.cloudRunnerCluster, + awsBaseStackName: input_1.default.awsBaseStackName, + kubeConfig: input_1.default.kubeConfig, + githubToken: yield input_1.default.githubToken(), + cloudRunnerMemory: input_1.default.cloudRunnerMemory, + cloudRunnerCpu: input_1.default.cloudRunnerCpu, + kubeVolumeSize: input_1.default.kubeVolumeSize, + kubeVolume: input_1.default.kubeVolume, + postBuildSteps: input_1.default.postBuildSteps, + preBuildSteps: input_1.default.preBuildSteps, + customJob: input_1.default.customJob, + runNumber: input_1.default.runNumber, + branch: yield input_1.default.branch(), + githubRepo: yield input_1.default.githubRepo(), + remoteBuildCluster: input_1.default.cloudRunnerCluster, + awsStackName: input_1.default.awsBaseStackName, + gitSha: input_1.default.gitSha, + logId: nanoid_1.customAlphabet(cloud_runner_constants_1.default.alphabet, 9)(), + buildGuid: cloud_runner_namespace_1.default.generateBuildName(input_1.default.runNumber, input_1.default.targetPlatform), + }; + }); + } + static parseBuildFile(filename, platform, androidAppBundle) { + if (platform_1.default.isWindows(platform)) { + return `${filename}.exe`; + } + if (platform_1.default.isAndroid(platform)) { + return androidAppBundle ? `${filename}.aab` : `${filename}.apk`; + } + return filename; + } + static getSerialFromLicenseFile(license) { + const startKey = ``; + const startIndex = license.indexOf(startKey) + startKey.length; + if (startIndex < 0) { + throw new Error(`License File was corrupted, unable to locate serial`); + } + const endIndex = license.indexOf(endKey, startIndex); + // Slice off the first 4 characters as they are garbage values + return Buffer.from(license.slice(startIndex, endIndex), 'base64').toString('binary').slice(4); + } +} +exports["default"] = BuildParameters; /***/ }), @@ -355,52 +355,52 @@ exports["default"] = BuildParameters; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const core = __importStar(__nccwpck_require__(42186)); -const fs_1 = __importDefault(__nccwpck_require__(57147)); -const action_1 = __importDefault(__nccwpck_require__(89088)); -const project_1 = __importDefault(__nccwpck_require__(88666)); -class Cache { - static verify() { - if (!fs_1.default.existsSync(project_1.default.libraryFolder)) { - this.notifyAboutCachingPossibility(); - } - } - static notifyAboutCachingPossibility() { - if (action_1.default.isRunningLocally) { - return; - } + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const core = __importStar(__nccwpck_require__(42186)); +const fs_1 = __importDefault(__nccwpck_require__(57147)); +const action_1 = __importDefault(__nccwpck_require__(89088)); +const project_1 = __importDefault(__nccwpck_require__(88666)); +class Cache { + static verify() { + if (!fs_1.default.existsSync(project_1.default.libraryFolder)) { + this.notifyAboutCachingPossibility(); + } + } + static notifyAboutCachingPossibility() { + if (action_1.default.isRunningLocally) { + return; + } core.warning(` Library folder does not exist. Consider setting up caching to speed up your workflow, if this is not your first build. - `); - } -} -exports["default"] = Cache; + `); + } +} +exports["default"] = Cache; /***/ }), @@ -409,35 +409,35 @@ exports["default"] = Cache; /***/ ((__unused_webpack_module, exports) => { "use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.GetAllCliModes = exports.GetCliFunctions = exports.CliFunction = void 0; -const targets = new Array(); -function CliFunction(key, description) { - return function (target, propertyKey, descriptor) { - targets.push({ - target, - propertyKey, - descriptor, - key, - description, - }); - }; -} -exports.CliFunction = CliFunction; -function GetCliFunctions(key) { - return targets.find((x) => x.key === key); -} -exports.GetCliFunctions = GetCliFunctions; -function GetAllCliModes() { - return targets.map((x) => { - return { - key: x.key, - description: x.description, - }; - }); -} -exports.GetAllCliModes = GetAllCliModes; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.GetAllCliModes = exports.GetCliFunctions = exports.CliFunction = void 0; +const targets = new Array(); +function CliFunction(key, description) { + return function (target, propertyKey, descriptor) { + targets.push({ + target, + propertyKey, + descriptor, + key, + description, + }); + }; +} +exports.CliFunction = CliFunction; +function GetCliFunctions(key) { + return targets.find((x) => x.key === key); +} +exports.GetCliFunctions = GetCliFunctions; +function GetAllCliModes() { + return targets.map((x) => { + return { + key: x.key, + description: x.description, + }; + }); +} +exports.GetAllCliModes = GetAllCliModes; /***/ }), @@ -446,141 +446,141 @@ exports.GetAllCliModes = GetAllCliModes; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { - var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; - if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); - else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; - return c > 3 && r && Object.defineProperty(target, key, r), r; -}; -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.CLI = void 0; -const commander_ts_1 = __nccwpck_require__(40451); -const __1 = __nccwpck_require__(41359); -const core = __importStar(__nccwpck_require__(42186)); -const action_yaml_1 = __nccwpck_require__(11091); -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -const cli_decorator_1 = __nccwpck_require__(8731); -const remote_client_logger_1 = __nccwpck_require__(28082); -const cloud_runner_state_1 = __nccwpck_require__(70912); -const setup_cloud_runner_repository_1 = __nccwpck_require__(39656); -const SDK = __importStar(__nccwpck_require__(71786)); -class CLI { - static RunCli(options) { - return __awaiter(this, void 0, void 0, function* () { - __1.Input.githubInputEnabled = false; - const results = cli_decorator_1.GetCliFunctions(options.mode); - if (results === undefined || results.length === 0) { - throw new Error('no CLI mode found'); - } - cloud_runner_logger_1.default.log(`Entrypoint: ${results.key}`); - options.versioning = 'None'; - __1.Input.cliOptions = options; - return yield results.target[results.propertyKey](); - }); - } - static isCliMode(options) { - return options.mode !== undefined && options.mode !== ''; - } - static SetupCli() { - const program = new commander_ts_1.Command(); - program.version('0.0.1'); - const properties = Object.getOwnPropertyNames(__1.Input); - core.info(`\n`); - core.info(`INPUT:`); - const actionYamlReader = new action_yaml_1.ActionYamlReader(); - for (const element of properties) { - program.option(`--${element} <${element}>`, actionYamlReader.GetActionYamlValue(element)); - if (__1.Input[element] !== undefined && __1.Input[element] !== '' && typeof __1.Input[element] !== `function`) { - core.info(`${element} ${__1.Input[element]}`); - } - } - core.info(`\n`); - program.option('-m, --mode ', cli_decorator_1.GetAllCliModes() - .map((x) => `${x.key} (${x.description})`) - .join(` | `)); - program.parse(process.argv); - return program.opts(); - } - static CLIBuild() { - return __awaiter(this, void 0, void 0, function* () { - const buildParameter = yield __1.BuildParameters.create(); - const baseImage = new __1.ImageTag(buildParameter); - return yield __1.CloudRunner.run(buildParameter, baseImage.toString()); - }); - } - static runRemoteClientJob() { - return __awaiter(this, void 0, void 0, function* () { - const buildParameter = JSON.parse(process.env.BUILD_PARAMETERS || '{}'); + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { + var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; + if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); + else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; + return c > 3 && r && Object.defineProperty(target, key, r), r; +}; +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.CLI = void 0; +const commander_ts_1 = __nccwpck_require__(40451); +const __1 = __nccwpck_require__(41359); +const core = __importStar(__nccwpck_require__(42186)); +const action_yaml_1 = __nccwpck_require__(11091); +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +const cli_decorator_1 = __nccwpck_require__(8731); +const remote_client_logger_1 = __nccwpck_require__(28082); +const cloud_runner_state_1 = __nccwpck_require__(70912); +const setup_cloud_runner_repository_1 = __nccwpck_require__(39656); +const SDK = __importStar(__nccwpck_require__(71786)); +class CLI { + static RunCli(options) { + return __awaiter(this, void 0, void 0, function* () { + __1.Input.githubInputEnabled = false; + const results = cli_decorator_1.GetCliFunctions(options.mode); + if (results === undefined || results.length === 0) { + throw new Error('no CLI mode found'); + } + cloud_runner_logger_1.default.log(`Entrypoint: ${results.key}`); + options.versioning = 'None'; + __1.Input.cliOptions = options; + return yield results.target[results.propertyKey](); + }); + } + static isCliMode(options) { + return options.mode !== undefined && options.mode !== ''; + } + static SetupCli() { + const program = new commander_ts_1.Command(); + program.version('0.0.1'); + const properties = Object.getOwnPropertyNames(__1.Input); + core.info(`\n`); + core.info(`INPUT:`); + const actionYamlReader = new action_yaml_1.ActionYamlReader(); + for (const element of properties) { + program.option(`--${element} <${element}>`, actionYamlReader.GetActionYamlValue(element)); + if (__1.Input[element] !== undefined && __1.Input[element] !== '' && typeof __1.Input[element] !== `function`) { + core.info(`${element} ${__1.Input[element]}`); + } + } + core.info(`\n`); + program.option('-m, --mode ', cli_decorator_1.GetAllCliModes() + .map((x) => `${x.key} (${x.description})`) + .join(` | `)); + program.parse(process.argv); + return program.opts(); + } + static CLIBuild() { + return __awaiter(this, void 0, void 0, function* () { + const buildParameter = yield __1.BuildParameters.create(); + const baseImage = new __1.ImageTag(buildParameter); + return yield __1.CloudRunner.run(buildParameter, baseImage.toString()); + }); + } + static runRemoteClientJob() { + return __awaiter(this, void 0, void 0, function* () { + const buildParameter = JSON.parse(process.env.BUILD_PARAMETERS || '{}'); remote_client_logger_1.RemoteClientLogger.log(`Build Params: ${JSON.stringify(buildParameter, undefined, 4)} - `); - cloud_runner_state_1.CloudRunnerState.setup(buildParameter); - yield setup_cloud_runner_repository_1.SetupCloudRunnerRepository.run(); - }); - } - static cachePush() { - return __awaiter(this, void 0, void 0, function* () { }); - } - static cachePull() { - return __awaiter(this, void 0, void 0, function* () { }); - } - static garbageCollectAws() { - return __awaiter(this, void 0, void 0, function* () { - process.env.AWS_REGION = __1.Input.region; - const CF = new SDK.CloudFormation(); - const stacks = yield CF.listStacks().promise(); - cloud_runner_logger_1.default.log(JSON.stringify(stacks, undefined, 4)); - }); - } -} -__decorate([ - cli_decorator_1.CliFunction(`cli`, `runs a cloud runner build`) -], CLI, "CLIBuild", null); -__decorate([ - cli_decorator_1.CliFunction(`remote-cli`, `sets up a repository, usually before a game-ci build`) -], CLI, "runRemoteClientJob", null); -__decorate([ - cli_decorator_1.CliFunction(`cach-push`, `push to cache`) -], CLI, "cachePush", null); -__decorate([ - cli_decorator_1.CliFunction(`cach-pull`, `pull from cache`) -], CLI, "cachePull", null); -__decorate([ - cli_decorator_1.CliFunction(`garbage-collect-aws`, `garbage collect aws`) -], CLI, "garbageCollectAws", null); -exports.CLI = CLI; + `); + cloud_runner_state_1.CloudRunnerState.setup(buildParameter); + yield setup_cloud_runner_repository_1.SetupCloudRunnerRepository.run(); + }); + } + static cachePush() { + return __awaiter(this, void 0, void 0, function* () { }); + } + static cachePull() { + return __awaiter(this, void 0, void 0, function* () { }); + } + static garbageCollectAws() { + return __awaiter(this, void 0, void 0, function* () { + process.env.AWS_REGION = __1.Input.region; + const CF = new SDK.CloudFormation(); + const stacks = yield CF.listStacks().promise(); + cloud_runner_logger_1.default.log(JSON.stringify(stacks, undefined, 4)); + }); + } +} +__decorate([ + cli_decorator_1.CliFunction(`cli`, `runs a cloud runner build`) +], CLI, "CLIBuild", null); +__decorate([ + cli_decorator_1.CliFunction(`remote-cli`, `sets up a repository, usually before a game-ci build`) +], CLI, "runRemoteClientJob", null); +__decorate([ + cli_decorator_1.CliFunction(`cach-push`, `push to cache`) +], CLI, "cachePush", null); +__decorate([ + cli_decorator_1.CliFunction(`cach-pull`, `pull from cache`) +], CLI, "cachePull", null); +__decorate([ + cli_decorator_1.CliFunction(`garbage-collect-aws`, `garbage collect aws`) +], CLI, "garbageCollectAws", null); +exports.CLI = CLI; /***/ }), @@ -589,130 +589,130 @@ exports.CLI = CLI; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Caching = void 0; -const console_1 = __nccwpck_require__(96206); -const fs_1 = __importDefault(__nccwpck_require__(57147)); -const path_1 = __importDefault(__nccwpck_require__(71017)); -const __1 = __nccwpck_require__(41359); -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -const cloud_runner_state_1 = __nccwpck_require__(70912); -const cloud_runner_system_1 = __nccwpck_require__(66879); -const lfs_hashing_1 = __nccwpck_require__(31938); -const remote_client_logger_1 = __nccwpck_require__(28082); -class Caching { - static PushToCache(cacheFolder, sourceFolder, cacheKey) { - return __awaiter(this, void 0, void 0, function* () { - const startPath = process.cwd(); - try { - if (!fs_1.default.existsSync(cacheFolder)) { - yield cloud_runner_system_1.CloudRunnerSystem.Run(`mkdir -p ${cacheFolder}`); - } - process.chdir(path_1.default.resolve(sourceFolder, '..')); - if (__1.Input.cloudRunnerTests) { - cloud_runner_logger_1.default.log(`Hashed cache folder ${yield lfs_hashing_1.LFSHashing.hashAllFiles(sourceFolder)} ${sourceFolder} ${path_1.default.basename(sourceFolder)}`); - } - if (__1.Input.cloudRunnerTests) { - yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${path_1.default.basename(sourceFolder)}`); - } - yield cloud_runner_system_1.CloudRunnerSystem.Run(`zip ${cacheKey}.zip ${path_1.default.basename(sourceFolder)}`); - console_1.assert(fs_1.default.existsSync(`${cacheKey}.zip`), 'cache zip exists'); - console_1.assert(fs_1.default.existsSync(path_1.default.basename(sourceFolder)), 'source folder exists'); - yield cloud_runner_system_1.CloudRunnerSystem.Run(`mv ${cacheKey}.zip ${cacheFolder}`); - remote_client_logger_1.RemoteClientLogger.log(`moved ${cacheKey}.zip to ${cacheFolder}`); - console_1.assert(fs_1.default.existsSync(`${path_1.default.join(cacheFolder, cacheKey)}.zip`), 'cache zip exists inside cache folder'); - if (__1.Input.cloudRunnerTests) { - yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${cacheFolder}`); - } - } - catch (error) { - process.chdir(`${startPath}`); - throw error; - } - process.chdir(`${startPath}`); - }); - } - static PullFromCache(cacheFolder, destinationFolder, cacheKey = ``) { - return __awaiter(this, void 0, void 0, function* () { - const startPath = process.cwd(); - remote_client_logger_1.RemoteClientLogger.log(`Caching for ${path_1.default.basename(destinationFolder)}`); - try { - if (!fs_1.default.existsSync(cacheFolder)) { - fs_1.default.mkdirSync(cacheFolder); - } - if (!fs_1.default.existsSync(destinationFolder)) { - fs_1.default.mkdirSync(destinationFolder); - } - const latestInBranch = yield (yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls -t "${cacheFolder}" | grep .zip$ | head -1`)) - .replace(/\n/g, ``) - .replace('.zip', ''); - process.chdir(cacheFolder); - const cacheSelection = cacheKey !== `` && fs_1.default.existsSync(`${cacheKey}.zip`) ? cacheKey : latestInBranch; - yield cloud_runner_logger_1.default.log(`cache key ${cacheKey} selection ${cacheSelection}`); - if (fs_1.default.existsSync(`${cacheSelection}.zip`)) { - const resultsFolder = `results${cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid}`; - yield cloud_runner_system_1.CloudRunnerSystem.Run(`mkdir -p ${resultsFolder}`); - if (__1.Input.cloudRunnerTests) { - yield cloud_runner_system_1.CloudRunnerSystem.Run(`tree ${destinationFolder}`); - } - remote_client_logger_1.RemoteClientLogger.log(`cache item exists ${cacheFolder}/${cacheSelection}.zip`); - console_1.assert(`${fs_1.default.existsSync(destinationFolder)}`); - console_1.assert(`${fs_1.default.existsSync(`${cacheSelection}.zip`)}`); - const fullResultsFolder = path_1.default.join(cacheFolder, resultsFolder); - if (__1.Input.cloudRunnerTests) { - yield cloud_runner_system_1.CloudRunnerSystem.Run(`tree ${cacheFolder}`); - } - yield cloud_runner_system_1.CloudRunnerSystem.Run(`unzip ${cacheSelection}.zip -d ${path_1.default.basename(resultsFolder)}`); - remote_client_logger_1.RemoteClientLogger.log(`cache item extracted to ${fullResultsFolder}`); - console_1.assert(`${fs_1.default.existsSync(fullResultsFolder)}`); - const destinationParentFolder = path_1.default.resolve(destinationFolder, '..'); - if (fs_1.default.existsSync(destinationFolder)) { - fs_1.default.rmSync(destinationFolder, { recursive: true, force: true }); - } - yield cloud_runner_system_1.CloudRunnerSystem.Run(`mv "${fullResultsFolder}/${path_1.default.basename(destinationFolder)}" "${destinationParentFolder}"`); - if (__1.Input.cloudRunnerTests) { - yield cloud_runner_system_1.CloudRunnerSystem.Run(`tree ${destinationParentFolder}`); - } - } - else { - remote_client_logger_1.RemoteClientLogger.logWarning(`cache item ${cacheKey} doesn't exist ${destinationFolder}`); - if (cacheSelection !== ``) { - if (__1.Input.cloudRunnerTests) { - yield cloud_runner_system_1.CloudRunnerSystem.Run(`tree ${cacheFolder}`); - } - remote_client_logger_1.RemoteClientLogger.logWarning(`cache item ${cacheKey}.zip doesn't exist ${destinationFolder}`); - throw new Error(`Failed to get cache item, but cache hit was found: ${cacheSelection}`); - } - } - } - catch (error) { - process.chdir(`${startPath}`); - throw error; - } - process.chdir(`${startPath}`); - }); - } - static handleCachePurging() { - if (process.env.PURGE_REMOTE_BUILDER_CACHE !== undefined) { - remote_client_logger_1.RemoteClientLogger.log(`purging ${cloud_runner_state_1.CloudRunnerState.purgeRemoteCaching}`); - fs_1.default.rmdirSync(cloud_runner_state_1.CloudRunnerState.cacheFolder, { recursive: true }); - } - } -} -exports.Caching = Caching; + +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Caching = void 0; +const console_1 = __nccwpck_require__(96206); +const fs_1 = __importDefault(__nccwpck_require__(57147)); +const path_1 = __importDefault(__nccwpck_require__(71017)); +const __1 = __nccwpck_require__(41359); +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +const cloud_runner_state_1 = __nccwpck_require__(70912); +const cloud_runner_system_1 = __nccwpck_require__(66879); +const lfs_hashing_1 = __nccwpck_require__(31938); +const remote_client_logger_1 = __nccwpck_require__(28082); +class Caching { + static PushToCache(cacheFolder, sourceFolder, cacheKey) { + return __awaiter(this, void 0, void 0, function* () { + const startPath = process.cwd(); + try { + if (!fs_1.default.existsSync(cacheFolder)) { + yield cloud_runner_system_1.CloudRunnerSystem.Run(`mkdir -p ${cacheFolder}`); + } + process.chdir(path_1.default.resolve(sourceFolder, '..')); + if (__1.Input.cloudRunnerTests) { + cloud_runner_logger_1.default.log(`Hashed cache folder ${yield lfs_hashing_1.LFSHashing.hashAllFiles(sourceFolder)} ${sourceFolder} ${path_1.default.basename(sourceFolder)}`); + } + if (__1.Input.cloudRunnerTests) { + yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${path_1.default.basename(sourceFolder)}`); + } + yield cloud_runner_system_1.CloudRunnerSystem.Run(`zip ${cacheKey}.zip ${path_1.default.basename(sourceFolder)}`); + console_1.assert(fs_1.default.existsSync(`${cacheKey}.zip`), 'cache zip exists'); + console_1.assert(fs_1.default.existsSync(path_1.default.basename(sourceFolder)), 'source folder exists'); + yield cloud_runner_system_1.CloudRunnerSystem.Run(`mv ${cacheKey}.zip ${cacheFolder}`); + remote_client_logger_1.RemoteClientLogger.log(`moved ${cacheKey}.zip to ${cacheFolder}`); + console_1.assert(fs_1.default.existsSync(`${path_1.default.join(cacheFolder, cacheKey)}.zip`), 'cache zip exists inside cache folder'); + if (__1.Input.cloudRunnerTests) { + yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls ${cacheFolder}`); + } + } + catch (error) { + process.chdir(`${startPath}`); + throw error; + } + process.chdir(`${startPath}`); + }); + } + static PullFromCache(cacheFolder, destinationFolder, cacheKey = ``) { + return __awaiter(this, void 0, void 0, function* () { + const startPath = process.cwd(); + remote_client_logger_1.RemoteClientLogger.log(`Caching for ${path_1.default.basename(destinationFolder)}`); + try { + if (!fs_1.default.existsSync(cacheFolder)) { + fs_1.default.mkdirSync(cacheFolder); + } + if (!fs_1.default.existsSync(destinationFolder)) { + fs_1.default.mkdirSync(destinationFolder); + } + const latestInBranch = yield (yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls -t "${cacheFolder}" | grep .zip$ | head -1`)) + .replace(/\n/g, ``) + .replace('.zip', ''); + process.chdir(cacheFolder); + const cacheSelection = cacheKey !== `` && fs_1.default.existsSync(`${cacheKey}.zip`) ? cacheKey : latestInBranch; + yield cloud_runner_logger_1.default.log(`cache key ${cacheKey} selection ${cacheSelection}`); + if (fs_1.default.existsSync(`${cacheSelection}.zip`)) { + const resultsFolder = `results${cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid}`; + yield cloud_runner_system_1.CloudRunnerSystem.Run(`mkdir -p ${resultsFolder}`); + if (__1.Input.cloudRunnerTests) { + yield cloud_runner_system_1.CloudRunnerSystem.Run(`tree ${destinationFolder}`); + } + remote_client_logger_1.RemoteClientLogger.log(`cache item exists ${cacheFolder}/${cacheSelection}.zip`); + console_1.assert(`${fs_1.default.existsSync(destinationFolder)}`); + console_1.assert(`${fs_1.default.existsSync(`${cacheSelection}.zip`)}`); + const fullResultsFolder = path_1.default.join(cacheFolder, resultsFolder); + if (__1.Input.cloudRunnerTests) { + yield cloud_runner_system_1.CloudRunnerSystem.Run(`tree ${cacheFolder}`); + } + yield cloud_runner_system_1.CloudRunnerSystem.Run(`unzip ${cacheSelection}.zip -d ${path_1.default.basename(resultsFolder)}`); + remote_client_logger_1.RemoteClientLogger.log(`cache item extracted to ${fullResultsFolder}`); + console_1.assert(`${fs_1.default.existsSync(fullResultsFolder)}`); + const destinationParentFolder = path_1.default.resolve(destinationFolder, '..'); + if (fs_1.default.existsSync(destinationFolder)) { + fs_1.default.rmSync(destinationFolder, { recursive: true, force: true }); + } + yield cloud_runner_system_1.CloudRunnerSystem.Run(`mv "${fullResultsFolder}/${path_1.default.basename(destinationFolder)}" "${destinationParentFolder}"`); + if (__1.Input.cloudRunnerTests) { + yield cloud_runner_system_1.CloudRunnerSystem.Run(`tree ${destinationParentFolder}`); + } + } + else { + remote_client_logger_1.RemoteClientLogger.logWarning(`cache item ${cacheKey} doesn't exist ${destinationFolder}`); + if (cacheSelection !== ``) { + if (__1.Input.cloudRunnerTests) { + yield cloud_runner_system_1.CloudRunnerSystem.Run(`tree ${cacheFolder}`); + } + remote_client_logger_1.RemoteClientLogger.logWarning(`cache item ${cacheKey}.zip doesn't exist ${destinationFolder}`); + throw new Error(`Failed to get cache item, but cache hit was found: ${cacheSelection}`); + } + } + } + catch (error) { + process.chdir(`${startPath}`); + throw error; + } + process.chdir(`${startPath}`); + }); + } + static handleCachePurging() { + if (process.env.PURGE_REMOTE_BUILDER_CACHE !== undefined) { + remote_client_logger_1.RemoteClientLogger.log(`purging ${cloud_runner_state_1.CloudRunnerState.purgeRemoteCaching}`); + fs_1.default.rmdirSync(cloud_runner_state_1.CloudRunnerState.cacheFolder, { recursive: true }); + } + } +} +exports.Caching = Caching; /***/ }), @@ -721,57 +721,57 @@ exports.Caching = Caching; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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.CloudRunnerSystem = void 0; -const child_process_1 = __nccwpck_require__(32081); -const remote_client_logger_1 = __nccwpck_require__(28082); -class CloudRunnerSystem { - static Run(command, suppressError = false) { - return __awaiter(this, void 0, void 0, function* () { - for (const element of command.split(`\n`)) { - remote_client_logger_1.RemoteClientLogger.log(element); - } - return yield new Promise((promise) => { - let output = ''; - const child = child_process_1.exec(command, (error, stdout, stderr) => { - if (error && !suppressError) { - throw error; - } - if (stderr) { - const diagnosticOutput = `${stderr.toString()}`; - remote_client_logger_1.RemoteClientLogger.logCliDiagnostic(diagnosticOutput); - output += diagnosticOutput; - return; - } - const outputChunk = `${stdout}`; - output += outputChunk; - }); - child.on('close', function (code) { - remote_client_logger_1.RemoteClientLogger.log(`[Exit code ${code}]`); - if (code !== 0 && !suppressError) { - throw new Error(output); - } - const outputLines = output.split(`\n`); - for (const element of outputLines) { - remote_client_logger_1.RemoteClientLogger.log(element); - } - promise(output); - }); - }); - }); - } -} -exports.CloudRunnerSystem = CloudRunnerSystem; + +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.CloudRunnerSystem = void 0; +const child_process_1 = __nccwpck_require__(32081); +const remote_client_logger_1 = __nccwpck_require__(28082); +class CloudRunnerSystem { + static Run(command, suppressError = false) { + return __awaiter(this, void 0, void 0, function* () { + for (const element of command.split(`\n`)) { + remote_client_logger_1.RemoteClientLogger.log(element); + } + return yield new Promise((promise) => { + let output = ''; + const child = child_process_1.exec(command, (error, stdout, stderr) => { + if (error && !suppressError) { + throw error; + } + if (stderr) { + const diagnosticOutput = `${stderr.toString()}`; + remote_client_logger_1.RemoteClientLogger.logCliDiagnostic(diagnosticOutput); + output += diagnosticOutput; + return; + } + const outputChunk = `${stdout}`; + output += outputChunk; + }); + child.on('close', function (code) { + remote_client_logger_1.RemoteClientLogger.log(`[Exit code ${code}]`); + if (code !== 0 && !suppressError) { + throw new Error(output); + } + const outputLines = output.split(`\n`); + for (const element of outputLines) { + remote_client_logger_1.RemoteClientLogger.log(element); + } + promise(output); + }); + }); + }); + } +} +exports.CloudRunnerSystem = CloudRunnerSystem; /***/ }), @@ -780,68 +780,68 @@ exports.CloudRunnerSystem = CloudRunnerSystem; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.LFSHashing = void 0; -const path_1 = __importDefault(__nccwpck_require__(71017)); -const cloud_runner_state_1 = __nccwpck_require__(70912); -const cloud_runner_system_1 = __nccwpck_require__(66879); -const fs_1 = __importDefault(__nccwpck_require__(57147)); -const console_1 = __nccwpck_require__(96206); -const __1 = __nccwpck_require__(41359); -const remote_client_logger_1 = __nccwpck_require__(28082); -class LFSHashing { - static createLFSHashFiles() { - return __awaiter(this, void 0, void 0, function* () { - try { - yield cloud_runner_system_1.CloudRunnerSystem.Run(`git lfs ls-files -l | cut -d ' ' -f1 | sort > .lfs-assets-guid`); - yield cloud_runner_system_1.CloudRunnerSystem.Run(`md5sum .lfs-assets-guid > .lfs-assets-guid-sum`); - console_1.assert(fs_1.default.existsSync(`.lfs-assets-guid-sum`)); - console_1.assert(fs_1.default.existsSync(`.lfs-assets-guid`)); - const lfsHashes = { - lfsGuid: fs_1.default - .readFileSync(`${path_1.default.join(cloud_runner_state_1.CloudRunnerState.repoPathFull, `.lfs-assets-guid`)}`, 'utf8') - .replace(/\n/g, ``), - lfsGuidSum: fs_1.default - .readFileSync(`${path_1.default.join(cloud_runner_state_1.CloudRunnerState.repoPathFull, `.lfs-assets-guid-sum`)}`, 'utf8') - .replace(/\n/g, ``), - }; - if (__1.Input.cloudRunnerTests) { - remote_client_logger_1.RemoteClientLogger.log(lfsHashes.lfsGuid); - remote_client_logger_1.RemoteClientLogger.log(lfsHashes.lfsGuidSum); - } - return lfsHashes; - } - catch (error) { - throw error; - } - }); - } - static hashAllFiles(folder) { - return __awaiter(this, void 0, void 0, function* () { - const startPath = process.cwd(); - process.chdir(folder); - const result = yield (yield cloud_runner_system_1.CloudRunnerSystem.Run(`find -type f -exec md5sum "{}" + | sort | md5sum`)) - .replace(/\n/g, '') - .split(` `)[0]; - process.chdir(startPath); - return result; - }); - } -} -exports.LFSHashing = LFSHashing; + +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.LFSHashing = void 0; +const path_1 = __importDefault(__nccwpck_require__(71017)); +const cloud_runner_state_1 = __nccwpck_require__(70912); +const cloud_runner_system_1 = __nccwpck_require__(66879); +const fs_1 = __importDefault(__nccwpck_require__(57147)); +const console_1 = __nccwpck_require__(96206); +const __1 = __nccwpck_require__(41359); +const remote_client_logger_1 = __nccwpck_require__(28082); +class LFSHashing { + static createLFSHashFiles() { + return __awaiter(this, void 0, void 0, function* () { + try { + yield cloud_runner_system_1.CloudRunnerSystem.Run(`git lfs ls-files -l | cut -d ' ' -f1 | sort > .lfs-assets-guid`); + yield cloud_runner_system_1.CloudRunnerSystem.Run(`md5sum .lfs-assets-guid > .lfs-assets-guid-sum`); + console_1.assert(fs_1.default.existsSync(`.lfs-assets-guid-sum`)); + console_1.assert(fs_1.default.existsSync(`.lfs-assets-guid`)); + const lfsHashes = { + lfsGuid: fs_1.default + .readFileSync(`${path_1.default.join(cloud_runner_state_1.CloudRunnerState.repoPathFull, `.lfs-assets-guid`)}`, 'utf8') + .replace(/\n/g, ``), + lfsGuidSum: fs_1.default + .readFileSync(`${path_1.default.join(cloud_runner_state_1.CloudRunnerState.repoPathFull, `.lfs-assets-guid-sum`)}`, 'utf8') + .replace(/\n/g, ``), + }; + if (__1.Input.cloudRunnerTests) { + remote_client_logger_1.RemoteClientLogger.log(lfsHashes.lfsGuid); + remote_client_logger_1.RemoteClientLogger.log(lfsHashes.lfsGuidSum); + } + return lfsHashes; + } + catch (error) { + throw error; + } + }); + } + static hashAllFiles(folder) { + return __awaiter(this, void 0, void 0, function* () { + const startPath = process.cwd(); + process.chdir(folder); + const result = yield (yield cloud_runner_system_1.CloudRunnerSystem.Run(`find -type f -exec md5sum "{}" + | sort | md5sum`)) + .replace(/\n/g, '') + .split(` `)[0]; + process.chdir(startPath); + return result; + }); + } +} +exports.LFSHashing = LFSHashing; /***/ }), @@ -850,28 +850,28 @@ exports.LFSHashing = LFSHashing; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.RemoteClientLogger = void 0; -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -class RemoteClientLogger { - static log(message) { - cloud_runner_logger_1.default.log(`[Client] ${message}`); - } - static logCliError(message) { - cloud_runner_logger_1.default.log(`[Client][Error] ${message}`); - } - static logCliDiagnostic(message) { - cloud_runner_logger_1.default.log(`[Client][Diagnostic] ${message}`); - } - static logWarning(message) { - cloud_runner_logger_1.default.logWarning(message); - } -} -exports.RemoteClientLogger = RemoteClientLogger; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.RemoteClientLogger = void 0; +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +class RemoteClientLogger { + static log(message) { + cloud_runner_logger_1.default.log(`[Client] ${message}`); + } + static logCliError(message) { + cloud_runner_logger_1.default.log(`[Client][Error] ${message}`); + } + static logCliDiagnostic(message) { + cloud_runner_logger_1.default.log(`[Client][Diagnostic] ${message}`); + } + static logWarning(message) { + cloud_runner_logger_1.default.logWarning(message); + } +} +exports.RemoteClientLogger = RemoteClientLogger; /***/ }), @@ -880,94 +880,94 @@ exports.RemoteClientLogger = RemoteClientLogger; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.SetupCloudRunnerRepository = void 0; -const fs_1 = __importDefault(__nccwpck_require__(57147)); -const cloud_runner_state_1 = __nccwpck_require__(70912); -const caching_1 = __nccwpck_require__(38759); -const lfs_hashing_1 = __nccwpck_require__(31938); -const cloud_runner_system_1 = __nccwpck_require__(66879); -const __1 = __nccwpck_require__(41359); -const remote_client_logger_1 = __nccwpck_require__(28082); -const path_1 = __importDefault(__nccwpck_require__(71017)); -const console_1 = __nccwpck_require__(96206); -class SetupCloudRunnerRepository { - static run() { - return __awaiter(this, void 0, void 0, function* () { - try { - yield cloud_runner_system_1.CloudRunnerSystem.Run(`mkdir -p ${cloud_runner_state_1.CloudRunnerState.buildPathFull}`); - yield cloud_runner_system_1.CloudRunnerSystem.Run(`mkdir -p ${cloud_runner_state_1.CloudRunnerState.repoPathFull}`); - yield cloud_runner_system_1.CloudRunnerSystem.Run(`mkdir -p ${cloud_runner_state_1.CloudRunnerState.cacheFolderFull}`); - process.chdir(cloud_runner_state_1.CloudRunnerState.repoPathFull); - if (__1.Input.cloudRunnerTests) { - yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls -lh`); - yield cloud_runner_system_1.CloudRunnerSystem.Run(`tree`); - } - yield SetupCloudRunnerRepository.cloneRepoWithoutLFSFiles(); - if (__1.Input.cloudRunnerTests) { - yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls -lh`); - yield cloud_runner_system_1.CloudRunnerSystem.Run(`tree`); - } - const lfsHashes = yield lfs_hashing_1.LFSHashing.createLFSHashFiles(); - if (fs_1.default.existsSync(cloud_runner_state_1.CloudRunnerState.libraryFolderFull)) { - remote_client_logger_1.RemoteClientLogger.logWarning(`!Warning!: The Unity library was included in the git repository`); - } - yield caching_1.Caching.PullFromCache(cloud_runner_state_1.CloudRunnerState.lfsCacheFolderFull, cloud_runner_state_1.CloudRunnerState.lfsDirectoryFull, `${lfsHashes.lfsGuid}`); - yield SetupCloudRunnerRepository.pullLatestLFS(); - yield caching_1.Caching.PushToCache(cloud_runner_state_1.CloudRunnerState.lfsCacheFolderFull, cloud_runner_state_1.CloudRunnerState.lfsDirectoryFull, `${lfsHashes.lfsGuid}`); - yield caching_1.Caching.PullFromCache(cloud_runner_state_1.CloudRunnerState.libraryCacheFolderFull, cloud_runner_state_1.CloudRunnerState.libraryFolderFull); - caching_1.Caching.handleCachePurging(); - } - catch (error) { - throw error; - } - }); - } - static cloneRepoWithoutLFSFiles() { - return __awaiter(this, void 0, void 0, function* () { - try { - process.chdir(`${cloud_runner_state_1.CloudRunnerState.repoPathFull}`); - remote_client_logger_1.RemoteClientLogger.log(`Initializing source repository for cloning with caching of LFS files`); - yield cloud_runner_system_1.CloudRunnerSystem.Run(`git config --global advice.detachedHead false`); - remote_client_logger_1.RemoteClientLogger.log(`Cloning the repository being built:`); - yield cloud_runner_system_1.CloudRunnerSystem.Run(`git lfs install --skip-smudge`); - yield cloud_runner_system_1.CloudRunnerSystem.Run(`git clone -b ${cloud_runner_state_1.CloudRunnerState.branchName} ${cloud_runner_state_1.CloudRunnerState.targetBuildRepoUrl} ${path_1.default.resolve(`..`, path_1.default.basename(cloud_runner_state_1.CloudRunnerState.repoPathFull))}`); - console_1.assert(fs_1.default.existsSync(`.git`)); - remote_client_logger_1.RemoteClientLogger.log(`${cloud_runner_state_1.CloudRunnerState.buildParams.branch}`); - yield cloud_runner_system_1.CloudRunnerSystem.Run(`git checkout ${cloud_runner_state_1.CloudRunnerState.buildParams.branch}`); - console_1.assert(fs_1.default.existsSync(path_1.default.join(`.git`, `lfs`)), 'LFS folder should not exist before caching'); - remote_client_logger_1.RemoteClientLogger.log(`Checked out ${process.env.GITHUB_SHA}`); - } - catch (error) { - throw error; - } - }); - } - static pullLatestLFS() { - return __awaiter(this, void 0, void 0, function* () { - yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls -lh ${cloud_runner_state_1.CloudRunnerState.lfsDirectoryFull}/..`); - process.chdir(cloud_runner_state_1.CloudRunnerState.repoPathFull); - yield cloud_runner_system_1.CloudRunnerSystem.Run(`git lfs pull`); - remote_client_logger_1.RemoteClientLogger.log(`pulled latest LFS files`); - console_1.assert(fs_1.default.existsSync(cloud_runner_state_1.CloudRunnerState.lfsDirectoryFull)); - yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls -lh ${cloud_runner_state_1.CloudRunnerState.lfsDirectoryFull}/..`); - }); - } -} -exports.SetupCloudRunnerRepository = SetupCloudRunnerRepository; + +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SetupCloudRunnerRepository = void 0; +const fs_1 = __importDefault(__nccwpck_require__(57147)); +const cloud_runner_state_1 = __nccwpck_require__(70912); +const caching_1 = __nccwpck_require__(38759); +const lfs_hashing_1 = __nccwpck_require__(31938); +const cloud_runner_system_1 = __nccwpck_require__(66879); +const __1 = __nccwpck_require__(41359); +const remote_client_logger_1 = __nccwpck_require__(28082); +const path_1 = __importDefault(__nccwpck_require__(71017)); +const console_1 = __nccwpck_require__(96206); +class SetupCloudRunnerRepository { + static run() { + return __awaiter(this, void 0, void 0, function* () { + try { + yield cloud_runner_system_1.CloudRunnerSystem.Run(`mkdir -p ${cloud_runner_state_1.CloudRunnerState.buildPathFull}`); + yield cloud_runner_system_1.CloudRunnerSystem.Run(`mkdir -p ${cloud_runner_state_1.CloudRunnerState.repoPathFull}`); + yield cloud_runner_system_1.CloudRunnerSystem.Run(`mkdir -p ${cloud_runner_state_1.CloudRunnerState.cacheFolderFull}`); + process.chdir(cloud_runner_state_1.CloudRunnerState.repoPathFull); + if (__1.Input.cloudRunnerTests) { + yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls -lh`); + yield cloud_runner_system_1.CloudRunnerSystem.Run(`tree`); + } + yield SetupCloudRunnerRepository.cloneRepoWithoutLFSFiles(); + if (__1.Input.cloudRunnerTests) { + yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls -lh`); + yield cloud_runner_system_1.CloudRunnerSystem.Run(`tree`); + } + const lfsHashes = yield lfs_hashing_1.LFSHashing.createLFSHashFiles(); + if (fs_1.default.existsSync(cloud_runner_state_1.CloudRunnerState.libraryFolderFull)) { + remote_client_logger_1.RemoteClientLogger.logWarning(`!Warning!: The Unity library was included in the git repository`); + } + yield caching_1.Caching.PullFromCache(cloud_runner_state_1.CloudRunnerState.lfsCacheFolderFull, cloud_runner_state_1.CloudRunnerState.lfsDirectoryFull, `${lfsHashes.lfsGuid}`); + yield SetupCloudRunnerRepository.pullLatestLFS(); + yield caching_1.Caching.PushToCache(cloud_runner_state_1.CloudRunnerState.lfsCacheFolderFull, cloud_runner_state_1.CloudRunnerState.lfsDirectoryFull, `${lfsHashes.lfsGuid}`); + yield caching_1.Caching.PullFromCache(cloud_runner_state_1.CloudRunnerState.libraryCacheFolderFull, cloud_runner_state_1.CloudRunnerState.libraryFolderFull); + caching_1.Caching.handleCachePurging(); + } + catch (error) { + throw error; + } + }); + } + static cloneRepoWithoutLFSFiles() { + return __awaiter(this, void 0, void 0, function* () { + try { + process.chdir(`${cloud_runner_state_1.CloudRunnerState.repoPathFull}`); + remote_client_logger_1.RemoteClientLogger.log(`Initializing source repository for cloning with caching of LFS files`); + yield cloud_runner_system_1.CloudRunnerSystem.Run(`git config --global advice.detachedHead false`); + remote_client_logger_1.RemoteClientLogger.log(`Cloning the repository being built:`); + yield cloud_runner_system_1.CloudRunnerSystem.Run(`git lfs install --skip-smudge`); + yield cloud_runner_system_1.CloudRunnerSystem.Run(`git clone -b ${cloud_runner_state_1.CloudRunnerState.branchName} ${cloud_runner_state_1.CloudRunnerState.targetBuildRepoUrl} ${path_1.default.resolve(`..`, path_1.default.basename(cloud_runner_state_1.CloudRunnerState.repoPathFull))}`); + console_1.assert(fs_1.default.existsSync(`.git`)); + remote_client_logger_1.RemoteClientLogger.log(`${cloud_runner_state_1.CloudRunnerState.buildParams.branch}`); + yield cloud_runner_system_1.CloudRunnerSystem.Run(`git checkout ${cloud_runner_state_1.CloudRunnerState.buildParams.branch}`); + console_1.assert(fs_1.default.existsSync(path_1.default.join(`.git`, `lfs`)), 'LFS folder should not exist before caching'); + remote_client_logger_1.RemoteClientLogger.log(`Checked out ${process.env.GITHUB_SHA}`); + } + catch (error) { + throw error; + } + }); + } + static pullLatestLFS() { + return __awaiter(this, void 0, void 0, function* () { + yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls -lh ${cloud_runner_state_1.CloudRunnerState.lfsDirectoryFull}/..`); + process.chdir(cloud_runner_state_1.CloudRunnerState.repoPathFull); + yield cloud_runner_system_1.CloudRunnerSystem.Run(`git lfs pull`); + remote_client_logger_1.RemoteClientLogger.log(`pulled latest LFS files`); + console_1.assert(fs_1.default.existsSync(cloud_runner_state_1.CloudRunnerState.lfsDirectoryFull)); + yield cloud_runner_system_1.CloudRunnerSystem.Run(`ls -lh ${cloud_runner_state_1.CloudRunnerState.lfsDirectoryFull}/..`); + }); + } +} +exports.SetupCloudRunnerRepository = SetupCloudRunnerRepository; /***/ }), @@ -976,143 +976,143 @@ exports.SetupCloudRunnerRepository = SetupCloudRunnerRepository; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.AWSBaseStack = void 0; -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -const core = __importStar(__nccwpck_require__(42186)); -const fs = __importStar(__nccwpck_require__(57147)); -const path_1 = __importDefault(__nccwpck_require__(71017)); -const crypto = __nccwpck_require__(6113); -class AWSBaseStack { - constructor(baseStackName) { - this.baseStackName = baseStackName; - } - setupBaseStack(CF) { - var _a, _b, _c, _d, _e; - return __awaiter(this, void 0, void 0, function* () { - const baseStackName = this.baseStackName; - const baseStack = fs.readFileSync(path_1.default.join(__dirname, 'cloud-formations', 'base-setup.yml'), 'utf8'); - // Cloud Formation Input - const describeStackInput = { - StackName: baseStackName, - }; - const parametersWithoutHash = [ - { ParameterKey: 'EnvironmentName', ParameterValue: baseStackName }, - ]; - const parametersHash = crypto - .createHash('md5') - .update(baseStack + JSON.stringify(parametersWithoutHash)) - .digest('hex'); - const parameters = [ - ...parametersWithoutHash, - ...[{ ParameterKey: 'Version', ParameterValue: parametersHash }], - ]; - const updateInput = { - StackName: baseStackName, - TemplateBody: baseStack, - Parameters: parameters, - Capabilities: ['CAPABILITY_IAM'], - }; - const createStackInput = { - StackName: baseStackName, - TemplateBody: baseStack, - Parameters: parameters, - Capabilities: ['CAPABILITY_IAM'], - }; - const stacks = yield CF.listStacks({ - StackStatusFilter: ['UPDATE_COMPLETE', 'CREATE_COMPLETE', 'ROLLBACK_COMPLETE'], - }).promise(); - const stackNames = ((_a = stacks.StackSummaries) === null || _a === void 0 ? void 0 : _a.map((x) => x.StackName)) || []; - const stackExists = stackNames.includes(baseStackName) || false; - const describeStack = () => __awaiter(this, void 0, void 0, function* () { - return yield CF.describeStacks(describeStackInput).promise(); - }); - try { - if (!stackExists) { - cloud_runner_logger_1.default.log(`${baseStackName} stack does not exist (${JSON.stringify(stackNames)})`); - yield CF.createStack(createStackInput).promise(); - cloud_runner_logger_1.default.log(`created stack (version: ${parametersHash})`); - } - const CFState = yield describeStack(); - let stack = (_b = CFState.Stacks) === null || _b === void 0 ? void 0 : _b[0]; - if (!stack) { - throw new Error(`Base stack doesn't exist, even after creation, stackExists check: ${stackExists}`); - } - const stackVersion = (_d = (_c = stack.Parameters) === null || _c === void 0 ? void 0 : _c.find((x) => x.ParameterKey === 'Version')) === null || _d === void 0 ? void 0 : _d.ParameterValue; - if (stack.StackStatus === 'CREATE_IN_PROGRESS') { - yield CF.waitFor('stackCreateComplete', describeStackInput).promise(); - } - if (stackExists) { - cloud_runner_logger_1.default.log(`Base stack exists (version: ${stackVersion}, local version: ${parametersHash})`); - if (parametersHash !== stackVersion) { - cloud_runner_logger_1.default.log(`Attempting update of base stack`); - try { - yield CF.updateStack(updateInput).promise(); - } - catch (error) { - if (error['message'].includes('No updates are to be performed')) { - cloud_runner_logger_1.default.log(`No updates are to be performed`); - } - else { - cloud_runner_logger_1.default.log(`Update Failed (Stack name: ${baseStackName})`); - cloud_runner_logger_1.default.log(error['message']); - } - cloud_runner_logger_1.default.log(`Continuing...`); - } - } - else { - cloud_runner_logger_1.default.log(`No update required`); - } - stack = (_e = (yield describeStack()).Stacks) === null || _e === void 0 ? void 0 : _e[0]; - if (!stack) { - throw new Error(`Base stack doesn't exist, even after updating and creation, stackExists check: ${stackExists}`); - } - if (stack.StackStatus === 'UPDATE_IN_PROGRESS') { - yield CF.waitFor('stackUpdateComplete', describeStackInput).promise(); - } - } - cloud_runner_logger_1.default.log('base stack is now ready'); - } - catch (error) { - core.error(JSON.stringify(yield describeStack(), undefined, 4)); - throw error; - } - }); - } -} -exports.AWSBaseStack = AWSBaseStack; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.AWSBaseStack = void 0; +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +const core = __importStar(__nccwpck_require__(42186)); +const fs = __importStar(__nccwpck_require__(57147)); +const path_1 = __importDefault(__nccwpck_require__(71017)); +const crypto = __nccwpck_require__(6113); +class AWSBaseStack { + constructor(baseStackName) { + this.baseStackName = baseStackName; + } + setupBaseStack(CF) { + var _a, _b, _c, _d, _e; + return __awaiter(this, void 0, void 0, function* () { + const baseStackName = this.baseStackName; + const baseStack = fs.readFileSync(path_1.default.join(__dirname, 'cloud-formations', 'base-setup.yml'), 'utf8'); + // Cloud Formation Input + const describeStackInput = { + StackName: baseStackName, + }; + const parametersWithoutHash = [ + { ParameterKey: 'EnvironmentName', ParameterValue: baseStackName }, + ]; + const parametersHash = crypto + .createHash('md5') + .update(baseStack + JSON.stringify(parametersWithoutHash)) + .digest('hex'); + const parameters = [ + ...parametersWithoutHash, + ...[{ ParameterKey: 'Version', ParameterValue: parametersHash }], + ]; + const updateInput = { + StackName: baseStackName, + TemplateBody: baseStack, + Parameters: parameters, + Capabilities: ['CAPABILITY_IAM'], + }; + const createStackInput = { + StackName: baseStackName, + TemplateBody: baseStack, + Parameters: parameters, + Capabilities: ['CAPABILITY_IAM'], + }; + const stacks = yield CF.listStacks({ + StackStatusFilter: ['UPDATE_COMPLETE', 'CREATE_COMPLETE', 'ROLLBACK_COMPLETE'], + }).promise(); + const stackNames = ((_a = stacks.StackSummaries) === null || _a === void 0 ? void 0 : _a.map((x) => x.StackName)) || []; + const stackExists = stackNames.includes(baseStackName) || false; + const describeStack = () => __awaiter(this, void 0, void 0, function* () { + return yield CF.describeStacks(describeStackInput).promise(); + }); + try { + if (!stackExists) { + cloud_runner_logger_1.default.log(`${baseStackName} stack does not exist (${JSON.stringify(stackNames)})`); + yield CF.createStack(createStackInput).promise(); + cloud_runner_logger_1.default.log(`created stack (version: ${parametersHash})`); + } + const CFState = yield describeStack(); + let stack = (_b = CFState.Stacks) === null || _b === void 0 ? void 0 : _b[0]; + if (!stack) { + throw new Error(`Base stack doesn't exist, even after creation, stackExists check: ${stackExists}`); + } + const stackVersion = (_d = (_c = stack.Parameters) === null || _c === void 0 ? void 0 : _c.find((x) => x.ParameterKey === 'Version')) === null || _d === void 0 ? void 0 : _d.ParameterValue; + if (stack.StackStatus === 'CREATE_IN_PROGRESS') { + yield CF.waitFor('stackCreateComplete', describeStackInput).promise(); + } + if (stackExists) { + cloud_runner_logger_1.default.log(`Base stack exists (version: ${stackVersion}, local version: ${parametersHash})`); + if (parametersHash !== stackVersion) { + cloud_runner_logger_1.default.log(`Attempting update of base stack`); + try { + yield CF.updateStack(updateInput).promise(); + } + catch (error) { + if (error['message'].includes('No updates are to be performed')) { + cloud_runner_logger_1.default.log(`No updates are to be performed`); + } + else { + cloud_runner_logger_1.default.log(`Update Failed (Stack name: ${baseStackName})`); + cloud_runner_logger_1.default.log(error['message']); + } + cloud_runner_logger_1.default.log(`Continuing...`); + } + } + else { + cloud_runner_logger_1.default.log(`No update required`); + } + stack = (_e = (yield describeStack()).Stacks) === null || _e === void 0 ? void 0 : _e[0]; + if (!stack) { + throw new Error(`Base stack doesn't exist, even after updating and creation, stackExists check: ${stackExists}`); + } + if (stack.StackStatus === 'UPDATE_IN_PROGRESS') { + yield CF.waitFor('stackUpdateComplete', describeStackInput).promise(); + } + } + cloud_runner_logger_1.default.log('base stack is now ready'); + } + catch (error) { + core.error(JSON.stringify(yield describeStack(), undefined, 4)); + throw error; + } + }); + } +} +exports.AWSBaseStack = AWSBaseStack; /***/ }), @@ -1121,57 +1121,57 @@ exports.AWSBaseStack = AWSBaseStack; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.AWSError = void 0; -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -const core = __importStar(__nccwpck_require__(42186)); -const __1 = __nccwpck_require__(41359); -class AWSError { - static handleStackCreationFailure(error, CF, taskDefStackName) { - return __awaiter(this, void 0, void 0, function* () { - cloud_runner_logger_1.default.log('aws error: '); - core.error(JSON.stringify(error, undefined, 4)); - if (__1.Input.cloudRunnerTests) { - cloud_runner_logger_1.default.log('Getting events and resources for task stack'); - const events = (yield CF.describeStackEvents({ StackName: taskDefStackName }).promise()).StackEvents; - cloud_runner_logger_1.default.log(JSON.stringify(events, undefined, 4)); - } - }); - } -} -exports.AWSError = AWSError; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.AWSError = void 0; +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +const core = __importStar(__nccwpck_require__(42186)); +const __1 = __nccwpck_require__(41359); +class AWSError { + static handleStackCreationFailure(error, CF, taskDefStackName) { + return __awaiter(this, void 0, void 0, function* () { + cloud_runner_logger_1.default.log('aws error: '); + core.error(JSON.stringify(error, undefined, 4)); + if (__1.Input.cloudRunnerTests) { + cloud_runner_logger_1.default.log('Getting events and resources for task stack'); + const events = (yield CF.describeStackEvents({ StackName: taskDefStackName }).promise()).StackEvents; + cloud_runner_logger_1.default.log(JSON.stringify(events, undefined, 4)); + } + }); + } +} +exports.AWSError = AWSError; /***/ }), @@ -1180,122 +1180,122 @@ exports.AWSError = AWSError; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.AWSJobStack = void 0; -const aws_templates_1 = __nccwpck_require__(6436); -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -const aws_error_1 = __nccwpck_require__(83683); -class AWSJobStack { - constructor(baseStackName) { - this.baseStackName = baseStackName; - } - setupCloudFormations(CF, buildGuid, image, entrypoint, commands, mountdir, workingdir, secrets) { - return __awaiter(this, void 0, void 0, function* () { - const taskDefStackName = `${this.baseStackName}-${buildGuid}`; - let taskDefCloudFormation = aws_templates_1.AWSTemplates.readTaskCloudFormationTemplate(); - for (const secret of secrets) { - secret.ParameterKey = `${buildGuid.replace(/[^\dA-Za-z]/g, '')}${secret.ParameterKey.replace(/[^\dA-Za-z]/g, '')}`; - if (typeof secret.ParameterValue == 'number') { - secret.ParameterValue = `${secret.ParameterValue}`; - } - if (!secret.ParameterValue || secret.ParameterValue === '') { - secrets = secrets.filter((x) => x !== secret); - continue; - } - taskDefCloudFormation = aws_templates_1.AWSTemplates.insertAtTemplate(taskDefCloudFormation, 'p1 - input', aws_templates_1.AWSTemplates.getParameterTemplate(secret.ParameterKey)); - taskDefCloudFormation = aws_templates_1.AWSTemplates.insertAtTemplate(taskDefCloudFormation, 'p2 - secret', aws_templates_1.AWSTemplates.getSecretTemplate(`${secret.ParameterKey}`)); - taskDefCloudFormation = aws_templates_1.AWSTemplates.insertAtTemplate(taskDefCloudFormation, 'p3 - container def', aws_templates_1.AWSTemplates.getSecretDefinitionTemplate(secret.EnvironmentVariable, secret.ParameterKey)); - } - const secretsMappedToCloudFormationParameters = secrets.map((x) => { - return { ParameterKey: x.ParameterKey.replace(/[^\dA-Za-z]/g, ''), ParameterValue: x.ParameterValue }; - }); - const parameters = [ - { - ParameterKey: 'EnvironmentName', - ParameterValue: this.baseStackName, - }, - { - ParameterKey: 'ImageUrl', - ParameterValue: image, - }, - { - ParameterKey: 'ServiceName', - ParameterValue: taskDefStackName, - }, - { - ParameterKey: 'Command', - ParameterValue: 'echo "this template should be overwritten when running a task"', - }, - { - ParameterKey: 'EntryPoint', - ParameterValue: entrypoint.join(','), - }, - { - ParameterKey: 'WorkingDirectory', - ParameterValue: workingdir, - }, - { - ParameterKey: 'EFSMountDirectory', - ParameterValue: mountdir, - }, - ...secretsMappedToCloudFormationParameters, - ]; - let previousStackExists = true; - while (previousStackExists) { - previousStackExists = false; - const stacks = yield CF.listStacks().promise(); - if (!stacks.StackSummaries) { - throw new Error('Faild to get stacks'); - } - for (let index = 0; index < stacks.StackSummaries.length; index++) { - const element = stacks.StackSummaries[index]; - if (element.StackName === taskDefStackName && element.StackStatus !== 'DELETE_COMPLETE') { - previousStackExists = true; - cloud_runner_logger_1.default.log(`Previous stack still exists: ${JSON.stringify(element)}`); - } - } - } - try { - yield CF.createStack({ - StackName: taskDefStackName, - TemplateBody: taskDefCloudFormation, - Capabilities: ['CAPABILITY_IAM'], - Parameters: parameters, - }).promise(); - cloud_runner_logger_1.default.log('Creating cloud runner job'); - yield CF.waitFor('stackCreateComplete', { StackName: taskDefStackName }).promise(); - } - catch (error) { - yield aws_error_1.AWSError.handleStackCreationFailure(error, CF, taskDefStackName); - throw error; - } - const taskDefResources = (yield CF.describeStackResources({ - StackName: taskDefStackName, - }).promise()).StackResources; - const baseResources = (yield CF.describeStackResources({ StackName: this.baseStackName }).promise()).StackResources; - return { - taskDefStackName, - taskDefCloudFormation, - taskDefResources, - baseResources, - }; - }); - } -} -exports.AWSJobStack = AWSJobStack; + +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.AWSJobStack = void 0; +const aws_templates_1 = __nccwpck_require__(6436); +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +const aws_error_1 = __nccwpck_require__(83683); +class AWSJobStack { + constructor(baseStackName) { + this.baseStackName = baseStackName; + } + setupCloudFormations(CF, buildGuid, image, entrypoint, commands, mountdir, workingdir, secrets) { + return __awaiter(this, void 0, void 0, function* () { + const taskDefStackName = `${this.baseStackName}-${buildGuid}`; + let taskDefCloudFormation = aws_templates_1.AWSTemplates.readTaskCloudFormationTemplate(); + for (const secret of secrets) { + secret.ParameterKey = `${buildGuid.replace(/[^\dA-Za-z]/g, '')}${secret.ParameterKey.replace(/[^\dA-Za-z]/g, '')}`; + if (typeof secret.ParameterValue == 'number') { + secret.ParameterValue = `${secret.ParameterValue}`; + } + if (!secret.ParameterValue || secret.ParameterValue === '') { + secrets = secrets.filter((x) => x !== secret); + continue; + } + taskDefCloudFormation = aws_templates_1.AWSTemplates.insertAtTemplate(taskDefCloudFormation, 'p1 - input', aws_templates_1.AWSTemplates.getParameterTemplate(secret.ParameterKey)); + taskDefCloudFormation = aws_templates_1.AWSTemplates.insertAtTemplate(taskDefCloudFormation, 'p2 - secret', aws_templates_1.AWSTemplates.getSecretTemplate(`${secret.ParameterKey}`)); + taskDefCloudFormation = aws_templates_1.AWSTemplates.insertAtTemplate(taskDefCloudFormation, 'p3 - container def', aws_templates_1.AWSTemplates.getSecretDefinitionTemplate(secret.EnvironmentVariable, secret.ParameterKey)); + } + const secretsMappedToCloudFormationParameters = secrets.map((x) => { + return { ParameterKey: x.ParameterKey.replace(/[^\dA-Za-z]/g, ''), ParameterValue: x.ParameterValue }; + }); + const parameters = [ + { + ParameterKey: 'EnvironmentName', + ParameterValue: this.baseStackName, + }, + { + ParameterKey: 'ImageUrl', + ParameterValue: image, + }, + { + ParameterKey: 'ServiceName', + ParameterValue: taskDefStackName, + }, + { + ParameterKey: 'Command', + ParameterValue: 'echo "this template should be overwritten when running a task"', + }, + { + ParameterKey: 'EntryPoint', + ParameterValue: entrypoint.join(','), + }, + { + ParameterKey: 'WorkingDirectory', + ParameterValue: workingdir, + }, + { + ParameterKey: 'EFSMountDirectory', + ParameterValue: mountdir, + }, + ...secretsMappedToCloudFormationParameters, + ]; + let previousStackExists = true; + while (previousStackExists) { + previousStackExists = false; + const stacks = yield CF.listStacks().promise(); + if (!stacks.StackSummaries) { + throw new Error('Faild to get stacks'); + } + for (let index = 0; index < stacks.StackSummaries.length; index++) { + const element = stacks.StackSummaries[index]; + if (element.StackName === taskDefStackName && element.StackStatus !== 'DELETE_COMPLETE') { + previousStackExists = true; + cloud_runner_logger_1.default.log(`Previous stack still exists: ${JSON.stringify(element)}`); + } + } + } + try { + yield CF.createStack({ + StackName: taskDefStackName, + TemplateBody: taskDefCloudFormation, + Capabilities: ['CAPABILITY_IAM'], + Parameters: parameters, + }).promise(); + cloud_runner_logger_1.default.log('Creating cloud runner job'); + yield CF.waitFor('stackCreateComplete', { StackName: taskDefStackName }).promise(); + } + catch (error) { + yield aws_error_1.AWSError.handleStackCreationFailure(error, CF, taskDefStackName); + throw error; + } + const taskDefResources = (yield CF.describeStackResources({ + StackName: taskDefStackName, + }).promise()).StackResources; + const baseResources = (yield CF.describeStackResources({ StackName: this.baseStackName }).promise()).StackResources; + return { + taskDefStackName, + taskDefCloudFormation, + taskDefResources, + baseResources, + }; + }); + } +} +exports.AWSJobStack = AWSJobStack; /***/ }), @@ -1304,214 +1304,214 @@ exports.AWSJobStack = AWSJobStack; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const AWS = __importStar(__nccwpck_require__(71786)); -const core = __importStar(__nccwpck_require__(42186)); -const zlib = __importStar(__nccwpck_require__(59796)); -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -const __1 = __nccwpck_require__(41359); -const cloud_runner_state_1 = __nccwpck_require__(70912); -const cloud_runner_statics_1 = __nccwpck_require__(90828); -const cloud_runner_build_command_process_1 = __nccwpck_require__(71899); -class AWSTaskRunner { - static runTask(taskDef, ECS, CF, environment, buildGuid, commands) { - var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q; - return __awaiter(this, void 0, void 0, function* () { - const cluster = ((_b = (_a = taskDef.baseResources) === null || _a === void 0 ? void 0 : _a.find((x) => x.LogicalResourceId === 'ECSCluster')) === null || _b === void 0 ? void 0 : _b.PhysicalResourceId) || ''; - const taskDefinition = ((_d = (_c = taskDef.taskDefResources) === null || _c === void 0 ? void 0 : _c.find((x) => x.LogicalResourceId === 'TaskDefinition')) === null || _d === void 0 ? void 0 : _d.PhysicalResourceId) || ''; - const SubnetOne = ((_f = (_e = taskDef.baseResources) === null || _e === void 0 ? void 0 : _e.find((x) => x.LogicalResourceId === 'PublicSubnetOne')) === null || _f === void 0 ? void 0 : _f.PhysicalResourceId) || ''; - const SubnetTwo = ((_h = (_g = taskDef.baseResources) === null || _g === void 0 ? void 0 : _g.find((x) => x.LogicalResourceId === 'PublicSubnetTwo')) === null || _h === void 0 ? void 0 : _h.PhysicalResourceId) || ''; - const ContainerSecurityGroup = ((_k = (_j = taskDef.baseResources) === null || _j === void 0 ? void 0 : _j.find((x) => x.LogicalResourceId === 'ContainerSecurityGroup')) === null || _k === void 0 ? void 0 : _k.PhysicalResourceId) || ''; - const streamName = ((_m = (_l = taskDef.taskDefResources) === null || _l === void 0 ? void 0 : _l.find((x) => x.LogicalResourceId === 'KinesisStream')) === null || _m === void 0 ? void 0 : _m.PhysicalResourceId) || ''; - const task = yield ECS.runTask({ - cluster, - taskDefinition, - platformVersion: '1.4.0', - overrides: { - containerOverrides: [ - { - name: taskDef.taskDefStackName, - environment, - command: ['-c', cloud_runner_build_command_process_1.CloudRunnerBuildCommandProcessor.ProcessCommands(commands, cloud_runner_state_1.CloudRunnerState.buildParams)], - }, - ], - }, - launchType: 'FARGATE', - networkConfiguration: { - awsvpcConfiguration: { - subnets: [SubnetOne, SubnetTwo], - assignPublicIp: 'ENABLED', - securityGroups: [ContainerSecurityGroup], - }, - }, - }).promise(); - cloud_runner_logger_1.default.log('Cloud runner job is starting'); - const taskArn = ((_o = task.tasks) === null || _o === void 0 ? void 0 : _o[0].taskArn) || ''; - try { - yield ECS.waitFor('tasksRunning', { tasks: [taskArn], cluster }).promise(); - } - catch (error_) { - const error = error_; - yield new Promise((resolve) => setTimeout(resolve, 3000)); - cloud_runner_logger_1.default.log(`Cloud runner job has ended ${(_p = (yield AWSTaskRunner.describeTasks(ECS, cluster, taskArn)).containers) === null || _p === void 0 ? void 0 : _p[0].lastStatus}`); - core.setFailed(error); - core.error(error); - } - cloud_runner_logger_1.default.log(`Cloud runner job is running`); - const output = yield this.streamLogsUntilTaskStops(ECS, CF, taskDef, cluster, taskArn, streamName); - const exitCode = (_q = (yield AWSTaskRunner.describeTasks(ECS, cluster, taskArn)).containers) === null || _q === void 0 ? void 0 : _q[0].exitCode; - cloud_runner_logger_1.default.log(`Cloud runner job exit code ${exitCode}`); - if (exitCode !== 0 && exitCode !== undefined) { - core.error(`job failed with exit code ${exitCode} ${JSON.stringify(yield ECS.describeTasks({ tasks: [taskArn], cluster }).promise(), undefined, 4)}`); - throw new Error(`job failed with exit code ${exitCode}`); - } - else { - cloud_runner_logger_1.default.log(`Cloud runner job has finished successfully`); - return output; - } - }); - } - static describeTasks(ECS, clusterName, taskArn) { - var _a, _b; - return __awaiter(this, void 0, void 0, function* () { - const tasks = yield ECS.describeTasks({ - cluster: clusterName, - tasks: [taskArn], - }).promise(); - if ((_a = tasks.tasks) === null || _a === void 0 ? void 0 : _a[0]) { - return (_b = tasks.tasks) === null || _b === void 0 ? void 0 : _b[0]; - } - else { - throw new Error('No task found'); - } - }); - } - static streamLogsUntilTaskStops(ECS, CF, taskDef, clusterName, taskArn, kinesisStreamName) { - var _a; - return __awaiter(this, void 0, void 0, function* () { - const kinesis = new AWS.Kinesis(); - const stream = yield AWSTaskRunner.getLogStream(kinesis, kinesisStreamName); - let iterator = yield AWSTaskRunner.getLogIterator(kinesis, stream); - cloud_runner_logger_1.default.log(`Cloud runner job status is ${(_a = (yield AWSTaskRunner.describeTasks(ECS, clusterName, taskArn))) === null || _a === void 0 ? void 0 : _a.lastStatus}`); - const logBaseUrl = `https://${__1.Input.region}.console.aws.amazon.com/cloudwatch/home?region=${CF.config.region}#logsV2:log-groups/log-group/${taskDef.taskDefStackName}`; - cloud_runner_logger_1.default.log(`You can also see the logs at AWS Cloud Watch: ${logBaseUrl}`); - let shouldReadLogs = true; - let timestamp = 0; - let output = ''; - while (shouldReadLogs) { - yield new Promise((resolve) => setTimeout(resolve, 1500)); - const taskData = yield AWSTaskRunner.describeTasks(ECS, clusterName, taskArn); - ({ timestamp, shouldReadLogs } = AWSTaskRunner.checkStreamingShouldContinue(taskData, timestamp, shouldReadLogs)); - ({ iterator, shouldReadLogs, output } = yield AWSTaskRunner.handleLogStreamIteration(kinesis, iterator, shouldReadLogs, taskDef, output)); - } - return output; - }); - } - static handleLogStreamIteration(kinesis, iterator, shouldReadLogs, taskDef, output) { - return __awaiter(this, void 0, void 0, function* () { - const records = yield kinesis - .getRecords({ - ShardIterator: iterator, - }) - .promise(); - iterator = records.NextShardIterator || ''; - ({ shouldReadLogs, output } = AWSTaskRunner.logRecords(records, iterator, taskDef, shouldReadLogs, output)); - return { iterator, shouldReadLogs, output }; - }); - } - static checkStreamingShouldContinue(taskData, timestamp, shouldReadLogs) { - if ((taskData === null || taskData === void 0 ? void 0 : taskData.lastStatus) !== 'RUNNING') { - if (timestamp === 0) { - cloud_runner_logger_1.default.log('## Cloud runner job stopped, streaming end of logs'); - timestamp = Date.now(); - } - if (timestamp !== 0 && Date.now() - timestamp > 30000) { - cloud_runner_logger_1.default.log('## Cloud runner status is not RUNNING for 30 seconds, last query for logs'); - shouldReadLogs = false; - } - cloud_runner_logger_1.default.log(`## Status of job: ${taskData.lastStatus}`); - } - return { timestamp, shouldReadLogs }; - } - static logRecords(records, iterator, taskDef, shouldReadLogs, output) { - if (records.Records.length > 0 && iterator) { - for (let index = 0; index < records.Records.length; index++) { - const json = JSON.parse(zlib.gunzipSync(Buffer.from(records.Records[index].Data, 'base64')).toString('utf8')); - if (json.messageType === 'DATA_MESSAGE') { - for (let logEventsIndex = 0; logEventsIndex < json.logEvents.length; logEventsIndex++) { - let message = json.logEvents[logEventsIndex].message; - if (json.logEvents[logEventsIndex].message.includes(`---${cloud_runner_state_1.CloudRunnerState.buildParams.logId}`)) { - cloud_runner_logger_1.default.log('End of log transmission received'); - shouldReadLogs = false; - } - else if (message.includes('Rebuilding Library because the asset database could not be found!')) { - core.warning('LIBRARY NOT FOUND!'); - } - message = `[${cloud_runner_statics_1.CloudRunnerStatics.logPrefix}] ${message}`; - if (__1.Input.cloudRunnerTests) { - output += message; - } - cloud_runner_logger_1.default.log(message); - } - } - } - } - return { shouldReadLogs, output }; - } - static getLogStream(kinesis, kinesisStreamName) { - return __awaiter(this, void 0, void 0, function* () { - return yield kinesis - .describeStream({ - StreamName: kinesisStreamName, - }) - .promise(); - }); - } - static getLogIterator(kinesis, stream) { - return __awaiter(this, void 0, void 0, function* () { - return ((yield kinesis - .getShardIterator({ - ShardIteratorType: 'TRIM_HORIZON', - StreamName: stream.StreamDescription.StreamName, - ShardId: stream.StreamDescription.Shards[0].ShardId, - }) - .promise()).ShardIterator || ''); - }); - } -} -exports["default"] = AWSTaskRunner; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const AWS = __importStar(__nccwpck_require__(71786)); +const core = __importStar(__nccwpck_require__(42186)); +const zlib = __importStar(__nccwpck_require__(59796)); +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +const __1 = __nccwpck_require__(41359); +const cloud_runner_state_1 = __nccwpck_require__(70912); +const cloud_runner_statics_1 = __nccwpck_require__(90828); +const cloud_runner_build_command_process_1 = __nccwpck_require__(71899); +class AWSTaskRunner { + static runTask(taskDef, ECS, CF, environment, buildGuid, commands) { + var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q; + return __awaiter(this, void 0, void 0, function* () { + const cluster = ((_b = (_a = taskDef.baseResources) === null || _a === void 0 ? void 0 : _a.find((x) => x.LogicalResourceId === 'ECSCluster')) === null || _b === void 0 ? void 0 : _b.PhysicalResourceId) || ''; + const taskDefinition = ((_d = (_c = taskDef.taskDefResources) === null || _c === void 0 ? void 0 : _c.find((x) => x.LogicalResourceId === 'TaskDefinition')) === null || _d === void 0 ? void 0 : _d.PhysicalResourceId) || ''; + const SubnetOne = ((_f = (_e = taskDef.baseResources) === null || _e === void 0 ? void 0 : _e.find((x) => x.LogicalResourceId === 'PublicSubnetOne')) === null || _f === void 0 ? void 0 : _f.PhysicalResourceId) || ''; + const SubnetTwo = ((_h = (_g = taskDef.baseResources) === null || _g === void 0 ? void 0 : _g.find((x) => x.LogicalResourceId === 'PublicSubnetTwo')) === null || _h === void 0 ? void 0 : _h.PhysicalResourceId) || ''; + const ContainerSecurityGroup = ((_k = (_j = taskDef.baseResources) === null || _j === void 0 ? void 0 : _j.find((x) => x.LogicalResourceId === 'ContainerSecurityGroup')) === null || _k === void 0 ? void 0 : _k.PhysicalResourceId) || ''; + const streamName = ((_m = (_l = taskDef.taskDefResources) === null || _l === void 0 ? void 0 : _l.find((x) => x.LogicalResourceId === 'KinesisStream')) === null || _m === void 0 ? void 0 : _m.PhysicalResourceId) || ''; + const task = yield ECS.runTask({ + cluster, + taskDefinition, + platformVersion: '1.4.0', + overrides: { + containerOverrides: [ + { + name: taskDef.taskDefStackName, + environment, + command: ['-c', cloud_runner_build_command_process_1.CloudRunnerBuildCommandProcessor.ProcessCommands(commands, cloud_runner_state_1.CloudRunnerState.buildParams)], + }, + ], + }, + launchType: 'FARGATE', + networkConfiguration: { + awsvpcConfiguration: { + subnets: [SubnetOne, SubnetTwo], + assignPublicIp: 'ENABLED', + securityGroups: [ContainerSecurityGroup], + }, + }, + }).promise(); + cloud_runner_logger_1.default.log('Cloud runner job is starting'); + const taskArn = ((_o = task.tasks) === null || _o === void 0 ? void 0 : _o[0].taskArn) || ''; + try { + yield ECS.waitFor('tasksRunning', { tasks: [taskArn], cluster }).promise(); + } + catch (error_) { + const error = error_; + yield new Promise((resolve) => setTimeout(resolve, 3000)); + cloud_runner_logger_1.default.log(`Cloud runner job has ended ${(_p = (yield AWSTaskRunner.describeTasks(ECS, cluster, taskArn)).containers) === null || _p === void 0 ? void 0 : _p[0].lastStatus}`); + core.setFailed(error); + core.error(error); + } + cloud_runner_logger_1.default.log(`Cloud runner job is running`); + const output = yield this.streamLogsUntilTaskStops(ECS, CF, taskDef, cluster, taskArn, streamName); + const exitCode = (_q = (yield AWSTaskRunner.describeTasks(ECS, cluster, taskArn)).containers) === null || _q === void 0 ? void 0 : _q[0].exitCode; + cloud_runner_logger_1.default.log(`Cloud runner job exit code ${exitCode}`); + if (exitCode !== 0 && exitCode !== undefined) { + core.error(`job failed with exit code ${exitCode} ${JSON.stringify(yield ECS.describeTasks({ tasks: [taskArn], cluster }).promise(), undefined, 4)}`); + throw new Error(`job failed with exit code ${exitCode}`); + } + else { + cloud_runner_logger_1.default.log(`Cloud runner job has finished successfully`); + return output; + } + }); + } + static describeTasks(ECS, clusterName, taskArn) { + var _a, _b; + return __awaiter(this, void 0, void 0, function* () { + const tasks = yield ECS.describeTasks({ + cluster: clusterName, + tasks: [taskArn], + }).promise(); + if ((_a = tasks.tasks) === null || _a === void 0 ? void 0 : _a[0]) { + return (_b = tasks.tasks) === null || _b === void 0 ? void 0 : _b[0]; + } + else { + throw new Error('No task found'); + } + }); + } + static streamLogsUntilTaskStops(ECS, CF, taskDef, clusterName, taskArn, kinesisStreamName) { + var _a; + return __awaiter(this, void 0, void 0, function* () { + const kinesis = new AWS.Kinesis(); + const stream = yield AWSTaskRunner.getLogStream(kinesis, kinesisStreamName); + let iterator = yield AWSTaskRunner.getLogIterator(kinesis, stream); + cloud_runner_logger_1.default.log(`Cloud runner job status is ${(_a = (yield AWSTaskRunner.describeTasks(ECS, clusterName, taskArn))) === null || _a === void 0 ? void 0 : _a.lastStatus}`); + const logBaseUrl = `https://${__1.Input.region}.console.aws.amazon.com/cloudwatch/home?region=${CF.config.region}#logsV2:log-groups/log-group/${taskDef.taskDefStackName}`; + cloud_runner_logger_1.default.log(`You can also see the logs at AWS Cloud Watch: ${logBaseUrl}`); + let shouldReadLogs = true; + let timestamp = 0; + let output = ''; + while (shouldReadLogs) { + yield new Promise((resolve) => setTimeout(resolve, 1500)); + const taskData = yield AWSTaskRunner.describeTasks(ECS, clusterName, taskArn); + ({ timestamp, shouldReadLogs } = AWSTaskRunner.checkStreamingShouldContinue(taskData, timestamp, shouldReadLogs)); + ({ iterator, shouldReadLogs, output } = yield AWSTaskRunner.handleLogStreamIteration(kinesis, iterator, shouldReadLogs, taskDef, output)); + } + return output; + }); + } + static handleLogStreamIteration(kinesis, iterator, shouldReadLogs, taskDef, output) { + return __awaiter(this, void 0, void 0, function* () { + const records = yield kinesis + .getRecords({ + ShardIterator: iterator, + }) + .promise(); + iterator = records.NextShardIterator || ''; + ({ shouldReadLogs, output } = AWSTaskRunner.logRecords(records, iterator, taskDef, shouldReadLogs, output)); + return { iterator, shouldReadLogs, output }; + }); + } + static checkStreamingShouldContinue(taskData, timestamp, shouldReadLogs) { + if ((taskData === null || taskData === void 0 ? void 0 : taskData.lastStatus) !== 'RUNNING') { + if (timestamp === 0) { + cloud_runner_logger_1.default.log('## Cloud runner job stopped, streaming end of logs'); + timestamp = Date.now(); + } + if (timestamp !== 0 && Date.now() - timestamp > 30000) { + cloud_runner_logger_1.default.log('## Cloud runner status is not RUNNING for 30 seconds, last query for logs'); + shouldReadLogs = false; + } + cloud_runner_logger_1.default.log(`## Status of job: ${taskData.lastStatus}`); + } + return { timestamp, shouldReadLogs }; + } + static logRecords(records, iterator, taskDef, shouldReadLogs, output) { + if (records.Records.length > 0 && iterator) { + for (let index = 0; index < records.Records.length; index++) { + const json = JSON.parse(zlib.gunzipSync(Buffer.from(records.Records[index].Data, 'base64')).toString('utf8')); + if (json.messageType === 'DATA_MESSAGE') { + for (let logEventsIndex = 0; logEventsIndex < json.logEvents.length; logEventsIndex++) { + let message = json.logEvents[logEventsIndex].message; + if (json.logEvents[logEventsIndex].message.includes(`---${cloud_runner_state_1.CloudRunnerState.buildParams.logId}`)) { + cloud_runner_logger_1.default.log('End of log transmission received'); + shouldReadLogs = false; + } + else if (message.includes('Rebuilding Library because the asset database could not be found!')) { + core.warning('LIBRARY NOT FOUND!'); + } + message = `[${cloud_runner_statics_1.CloudRunnerStatics.logPrefix}] ${message}`; + if (__1.Input.cloudRunnerTests) { + output += message; + } + cloud_runner_logger_1.default.log(message); + } + } + } + } + return { shouldReadLogs, output }; + } + static getLogStream(kinesis, kinesisStreamName) { + return __awaiter(this, void 0, void 0, function* () { + return yield kinesis + .describeStream({ + StreamName: kinesisStreamName, + }) + .promise(); + }); + } + static getLogIterator(kinesis, stream) { + return __awaiter(this, void 0, void 0, function* () { + return ((yield kinesis + .getShardIterator({ + ShardIteratorType: 'TRIM_HORIZON', + StreamName: stream.StreamDescription.StreamName, + ShardId: stream.StreamDescription.Shards[0].ShardId, + }) + .promise()).ShardIterator || ''); + }); + } +} +exports["default"] = AWSTaskRunner; /***/ }), @@ -1520,62 +1520,62 @@ exports["default"] = AWSTaskRunner; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.AWSTemplates = void 0; -const fs = __importStar(__nccwpck_require__(57147)); -class AWSTemplates { - static getParameterTemplate(p1) { + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.AWSTemplates = void 0; +const fs = __importStar(__nccwpck_require__(57147)); +class AWSTemplates { + static getParameterTemplate(p1) { return ` ${p1}: Type: String Default: '' -`; - } - static getSecretTemplate(p1) { +`; + } + static getSecretTemplate(p1) { return ` ${p1}Secret: Type: AWS::SecretsManager::Secret Properties: Name: '${p1}' SecretString: !Ref ${p1} -`; - } - static getSecretDefinitionTemplate(p1, p2) { +`; + } + static getSecretDefinitionTemplate(p1, p2) { return ` - Name: '${p1}' ValueFrom: !Ref ${p2}Secret -`; - } - static insertAtTemplate(template, insertionKey, insertion) { - const index = template.search(insertionKey) + insertionKey.length + '\n'.length; - template = [template.slice(0, index), insertion, template.slice(index)].join(''); - return template; - } - static readTaskCloudFormationTemplate() { - return fs.readFileSync(`${__dirname}/cloud-formations/task-def-formation.yml`, 'utf8'); - } -} -exports.AWSTemplates = AWSTemplates; +`; + } + static insertAtTemplate(template, insertionKey, insertion) { + const index = template.search(insertionKey) + insertionKey.length + '\n'.length; + template = [template.slice(0, index), insertion, template.slice(index)].join(''); + return template; + } + static readTaskCloudFormationTemplate() { + return fs.readFileSync(`${__dirname}/cloud-formations/task-def-formation.yml`, 'utf8'); + } +} +exports.AWSTemplates = AWSTemplates; /***/ }), @@ -1584,114 +1584,114 @@ exports.AWSTemplates = AWSTemplates; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const SDK = __importStar(__nccwpck_require__(71786)); -const aws_task_runner_1 = __importDefault(__nccwpck_require__(74668)); -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -const aws_job_stack_1 = __nccwpck_require__(85819); -const aws_base_stack_1 = __nccwpck_require__(28730); -const __1 = __nccwpck_require__(41359); -class AWSBuildEnvironment { - constructor(buildParameters) { - this.baseStackName = buildParameters.awsBaseStackName; - } - cleanupSharedResources( - // eslint-disable-next-line no-unused-vars - buildGuid, - // eslint-disable-next-line no-unused-vars - buildParameters, - // eslint-disable-next-line no-unused-vars - branchName, - // eslint-disable-next-line no-unused-vars - defaultSecretsArray) { - return __awaiter(this, void 0, void 0, function* () { }); - } - setupSharedResources( - // eslint-disable-next-line no-unused-vars - buildGuid, - // eslint-disable-next-line no-unused-vars - buildParameters, - // eslint-disable-next-line no-unused-vars - branchName, - // eslint-disable-next-line no-unused-vars - defaultSecretsArray) { - return __awaiter(this, void 0, void 0, function* () { }); - } - runTask(buildGuid, image, commands, mountdir, workingdir, environment, secrets) { - return __awaiter(this, void 0, void 0, function* () { - process.env.AWS_REGION = __1.Input.region; - const ECS = new SDK.ECS(); - const CF = new SDK.CloudFormation(); - cloud_runner_logger_1.default.log(`AWS Region: ${CF.config.region}`); - const entrypoint = ['/bin/sh']; - const startTimeMs = Date.now(); - yield new aws_base_stack_1.AWSBaseStack(this.baseStackName).setupBaseStack(CF); - const taskDef = yield new aws_job_stack_1.AWSJobStack(this.baseStackName).setupCloudFormations(CF, buildGuid, image, entrypoint, commands, mountdir, workingdir, secrets); - let postRunTaskTimeMs; - let output = ''; - try { - const postSetupStacksTimeMs = Date.now(); - cloud_runner_logger_1.default.log(`Setup job time: ${Math.floor((postSetupStacksTimeMs - startTimeMs) / 1000)}s`); - output = yield aws_task_runner_1.default.runTask(taskDef, ECS, CF, environment, buildGuid, commands); - postRunTaskTimeMs = Date.now(); - cloud_runner_logger_1.default.log(`Run job time: ${Math.floor((postRunTaskTimeMs - postSetupStacksTimeMs) / 1000)}s`); - } - finally { - yield this.cleanupResources(CF, taskDef); - const postCleanupTimeMs = Date.now(); - if (postRunTaskTimeMs !== undefined) - cloud_runner_logger_1.default.log(`Cleanup job time: ${Math.floor((postCleanupTimeMs - postRunTaskTimeMs) / 1000)}s`); - } - return output; - }); - } - cleanupResources(CF, taskDef) { - return __awaiter(this, void 0, void 0, function* () { - cloud_runner_logger_1.default.log('Cleanup starting'); - yield CF.deleteStack({ - StackName: taskDef.taskDefStackName, - }).promise(); - yield CF.waitFor('stackDeleteComplete', { - StackName: taskDef.taskDefStackName, - }).promise(); - cloud_runner_logger_1.default.log(`Deleted Stack: ${taskDef.taskDefStackName}`); - cloud_runner_logger_1.default.log('Cleanup complete'); - }); - } -} -exports["default"] = AWSBuildEnvironment; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const SDK = __importStar(__nccwpck_require__(71786)); +const aws_task_runner_1 = __importDefault(__nccwpck_require__(74668)); +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +const aws_job_stack_1 = __nccwpck_require__(85819); +const aws_base_stack_1 = __nccwpck_require__(28730); +const __1 = __nccwpck_require__(41359); +class AWSBuildEnvironment { + constructor(buildParameters) { + this.baseStackName = buildParameters.awsBaseStackName; + } + cleanupSharedResources( + // eslint-disable-next-line no-unused-vars + buildGuid, + // eslint-disable-next-line no-unused-vars + buildParameters, + // eslint-disable-next-line no-unused-vars + branchName, + // eslint-disable-next-line no-unused-vars + defaultSecretsArray) { + return __awaiter(this, void 0, void 0, function* () { }); + } + setupSharedResources( + // eslint-disable-next-line no-unused-vars + buildGuid, + // eslint-disable-next-line no-unused-vars + buildParameters, + // eslint-disable-next-line no-unused-vars + branchName, + // eslint-disable-next-line no-unused-vars + defaultSecretsArray) { + return __awaiter(this, void 0, void 0, function* () { }); + } + runTask(buildGuid, image, commands, mountdir, workingdir, environment, secrets) { + return __awaiter(this, void 0, void 0, function* () { + process.env.AWS_REGION = __1.Input.region; + const ECS = new SDK.ECS(); + const CF = new SDK.CloudFormation(); + cloud_runner_logger_1.default.log(`AWS Region: ${CF.config.region}`); + const entrypoint = ['/bin/sh']; + const startTimeMs = Date.now(); + yield new aws_base_stack_1.AWSBaseStack(this.baseStackName).setupBaseStack(CF); + const taskDef = yield new aws_job_stack_1.AWSJobStack(this.baseStackName).setupCloudFormations(CF, buildGuid, image, entrypoint, commands, mountdir, workingdir, secrets); + let postRunTaskTimeMs; + let output = ''; + try { + const postSetupStacksTimeMs = Date.now(); + cloud_runner_logger_1.default.log(`Setup job time: ${Math.floor((postSetupStacksTimeMs - startTimeMs) / 1000)}s`); + output = yield aws_task_runner_1.default.runTask(taskDef, ECS, CF, environment, buildGuid, commands); + postRunTaskTimeMs = Date.now(); + cloud_runner_logger_1.default.log(`Run job time: ${Math.floor((postRunTaskTimeMs - postSetupStacksTimeMs) / 1000)}s`); + } + finally { + yield this.cleanupResources(CF, taskDef); + const postCleanupTimeMs = Date.now(); + if (postRunTaskTimeMs !== undefined) + cloud_runner_logger_1.default.log(`Cleanup job time: ${Math.floor((postCleanupTimeMs - postRunTaskTimeMs) / 1000)}s`); + } + return output; + }); + } + cleanupResources(CF, taskDef) { + return __awaiter(this, void 0, void 0, function* () { + cloud_runner_logger_1.default.log('Cleanup starting'); + yield CF.deleteStack({ + StackName: taskDef.taskDefStackName, + }).promise(); + yield CF.waitFor('stackDeleteComplete', { + StackName: taskDef.taskDefStackName, + }).promise(); + cloud_runner_logger_1.default.log(`Deleted Stack: ${taskDef.taskDefStackName}`); + cloud_runner_logger_1.default.log('Cleanup complete'); + }); + } +} +exports["default"] = AWSBuildEnvironment; /***/ }), @@ -1700,13 +1700,13 @@ exports["default"] = AWSBuildEnvironment; /***/ ((__unused_webpack_module, exports) => { "use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.CloudRunnerStatics = void 0; -class CloudRunnerStatics { -} -exports.CloudRunnerStatics = CloudRunnerStatics; -CloudRunnerStatics.logPrefix = `Cloud-Runner-System`; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.CloudRunnerStatics = void 0; +class CloudRunnerStatics { +} +exports.CloudRunnerStatics = CloudRunnerStatics; +CloudRunnerStatics.logPrefix = `Cloud-Runner-System`; /***/ }), @@ -1715,94 +1715,94 @@ CloudRunnerStatics.logPrefix = `Cloud-Runner-System`; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const aws_1 = __importDefault(__nccwpck_require__(37569)); -const cloud_runner_state_1 = __nccwpck_require__(70912); -const k8s_1 = __importDefault(__nccwpck_require__(25107)); -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -const cloud_runner_step_state_1 = __nccwpck_require__(64854); -const workflow_composition_root_1 = __nccwpck_require__(54204); -const cloud_runner_error_1 = __nccwpck_require__(91477); -const task_parameter_serializer_1 = __nccwpck_require__(35346); -const core = __importStar(__nccwpck_require__(42186)); -class CloudRunner { - static setup(buildParameters) { - cloud_runner_logger_1.default.setup(); - cloud_runner_state_1.CloudRunnerState.setup(buildParameters); - CloudRunner.setupBuildPlatform(); - const parameters = task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(); - for (const element of parameters) { - core.setOutput(element.name, element.value); - } - } - static setupBuildPlatform() { - switch (cloud_runner_state_1.CloudRunnerState.buildParams.cloudRunnerCluster) { - case 'k8s': - cloud_runner_logger_1.default.log('Cloud Runner platform selected Kubernetes'); - cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform = new k8s_1.default(cloud_runner_state_1.CloudRunnerState.buildParams); - break; - default: - case 'aws': - cloud_runner_logger_1.default.log('Cloud Runner platform selected AWS'); - cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform = new aws_1.default(cloud_runner_state_1.CloudRunnerState.buildParams); - break; - } - } - static run(buildParameters, baseImage) { - return __awaiter(this, void 0, void 0, function* () { - CloudRunner.setup(buildParameters); - try { - core.startGroup('Setup remote runner'); - yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.setupSharedResources(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, cloud_runner_state_1.CloudRunnerState.buildParams, cloud_runner_state_1.CloudRunnerState.branchName, cloud_runner_state_1.CloudRunnerState.defaultSecrets); - core.endGroup(); - const output = yield new workflow_composition_root_1.WorkflowCompositionRoot().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets)); - core.startGroup('Cleanup'); - yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.cleanupSharedResources(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, cloud_runner_state_1.CloudRunnerState.buildParams, cloud_runner_state_1.CloudRunnerState.branchName, cloud_runner_state_1.CloudRunnerState.defaultSecrets); - cloud_runner_logger_1.default.log(`Cleanup complete`); - core.endGroup(); - return output; - } - catch (error) { - core.endGroup(); - yield cloud_runner_error_1.CloudRunnerError.handleException(error); - throw error; - } - }); - } -} -exports["default"] = CloudRunner; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const aws_1 = __importDefault(__nccwpck_require__(37569)); +const cloud_runner_state_1 = __nccwpck_require__(70912); +const k8s_1 = __importDefault(__nccwpck_require__(25107)); +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +const cloud_runner_step_state_1 = __nccwpck_require__(64854); +const workflow_composition_root_1 = __nccwpck_require__(54204); +const cloud_runner_error_1 = __nccwpck_require__(91477); +const task_parameter_serializer_1 = __nccwpck_require__(35346); +const core = __importStar(__nccwpck_require__(42186)); +class CloudRunner { + static setup(buildParameters) { + cloud_runner_logger_1.default.setup(); + cloud_runner_state_1.CloudRunnerState.setup(buildParameters); + CloudRunner.setupBuildPlatform(); + const parameters = task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(); + for (const element of parameters) { + core.setOutput(element.name, element.value); + } + } + static setupBuildPlatform() { + switch (cloud_runner_state_1.CloudRunnerState.buildParams.cloudRunnerCluster) { + case 'k8s': + cloud_runner_logger_1.default.log('Cloud Runner platform selected Kubernetes'); + cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform = new k8s_1.default(cloud_runner_state_1.CloudRunnerState.buildParams); + break; + default: + case 'aws': + cloud_runner_logger_1.default.log('Cloud Runner platform selected AWS'); + cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform = new aws_1.default(cloud_runner_state_1.CloudRunnerState.buildParams); + break; + } + } + static run(buildParameters, baseImage) { + return __awaiter(this, void 0, void 0, function* () { + CloudRunner.setup(buildParameters); + try { + core.startGroup('Setup remote runner'); + yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.setupSharedResources(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, cloud_runner_state_1.CloudRunnerState.buildParams, cloud_runner_state_1.CloudRunnerState.branchName, cloud_runner_state_1.CloudRunnerState.defaultSecrets); + core.endGroup(); + const output = yield new workflow_composition_root_1.WorkflowCompositionRoot().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets)); + core.startGroup('Cleanup'); + yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.cleanupSharedResources(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, cloud_runner_state_1.CloudRunnerState.buildParams, cloud_runner_state_1.CloudRunnerState.branchName, cloud_runner_state_1.CloudRunnerState.defaultSecrets); + cloud_runner_logger_1.default.log(`Cleanup complete`); + core.endGroup(); + return output; + } + catch (error) { + core.endGroup(); + yield cloud_runner_error_1.CloudRunnerError.handleException(error); + throw error; + } + }); + } +} +exports["default"] = CloudRunner; /***/ }), @@ -1811,53 +1811,53 @@ exports["default"] = CloudRunner; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.CloudRunnerError = void 0; -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -const cloud_runner_state_1 = __nccwpck_require__(70912); -const core = __importStar(__nccwpck_require__(42186)); -class CloudRunnerError { - static handleException(error) { - return __awaiter(this, void 0, void 0, function* () { - cloud_runner_logger_1.default.error(JSON.stringify(error, undefined, 4)); - core.setFailed('Cloud Runner failed'); - yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.cleanupSharedResources(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, cloud_runner_state_1.CloudRunnerState.buildParams, cloud_runner_state_1.CloudRunnerState.branchName, cloud_runner_state_1.CloudRunnerState.defaultSecrets); - }); - } -} -exports.CloudRunnerError = CloudRunnerError; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.CloudRunnerError = void 0; +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +const cloud_runner_state_1 = __nccwpck_require__(70912); +const core = __importStar(__nccwpck_require__(42186)); +class CloudRunnerError { + static handleException(error) { + return __awaiter(this, void 0, void 0, function* () { + cloud_runner_logger_1.default.error(JSON.stringify(error, undefined, 4)); + core.setFailed('Cloud Runner failed'); + yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.cleanupSharedResources(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, cloud_runner_state_1.CloudRunnerState.buildParams, cloud_runner_state_1.CloudRunnerState.branchName, cloud_runner_state_1.CloudRunnerState.defaultSecrets); + }); + } +} +exports.CloudRunnerError = CloudRunnerError; /***/ }), @@ -1866,191 +1866,191 @@ exports.CloudRunnerError = CloudRunnerError; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const k8s = __importStar(__nccwpck_require__(89679)); -const __1 = __nccwpck_require__(41359); -const core = __importStar(__nccwpck_require__(42186)); -const kubernetes_storage_1 = __importDefault(__nccwpck_require__(43951)); -const kubernetes_task_runner_1 = __importDefault(__nccwpck_require__(7181)); -const kubernetes_secret_1 = __importDefault(__nccwpck_require__(71586)); -const async_wait_until_1 = __importDefault(__nccwpck_require__(41299)); -const kubernetes_job_spec_factory_1 = __importDefault(__nccwpck_require__(1739)); -const kubernetes_service_account_1 = __importDefault(__nccwpck_require__(42915)); -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -class Kubernetes { - constructor(buildParameters) { - this.buildGuid = ''; - this.pvcName = ''; - this.secretName = ''; - this.jobName = ''; - this.podName = ''; - this.containerName = ''; - this.cleanupCronJobName = ''; - this.serviceAccountName = ''; - this.kubeConfig = new k8s.KubeConfig(); - this.kubeConfig.loadFromDefault(); - this.kubeClient = this.kubeConfig.makeApiClient(k8s.CoreV1Api); - this.kubeClientBatch = this.kubeConfig.makeApiClient(k8s.BatchV1Api); - cloud_runner_logger_1.default.log('Loaded default Kubernetes configuration for this environment'); - this.namespace = 'default'; - this.buildParameters = buildParameters; - } - setupSharedResources(buildGuid, buildParameters, - // eslint-disable-next-line no-unused-vars - branchName, - // eslint-disable-next-line no-unused-vars - defaultSecretsArray) { - return __awaiter(this, void 0, void 0, function* () { - try { - this.pvcName = `unity-builder-pvc-${buildGuid}`; - this.cleanupCronJobName = `unity-builder-cronjob-${buildGuid}`; - this.serviceAccountName = `service-account-${buildGuid}`; - yield kubernetes_storage_1.default.createPersistentVolumeClaim(buildParameters, this.pvcName, this.kubeClient, this.namespace); - yield kubernetes_service_account_1.default.createServiceAccount(this.serviceAccountName, this.namespace, this.kubeClient); - } - catch (error) { - throw error; - } - }); - } - runTask(buildGuid, image, commands, mountdir, workingdir, environment, secrets) { - return __awaiter(this, void 0, void 0, function* () { - try { - // setup - this.buildGuid = buildGuid; - this.secretName = `build-credentials-${buildGuid}`; - this.jobName = `unity-builder-job-${buildGuid}`; - this.containerName = `main`; - yield kubernetes_secret_1.default.createSecret(secrets, this.secretName, this.namespace, this.kubeClient); - const jobSpec = kubernetes_job_spec_factory_1.default.getJobSpec(commands, image, mountdir, workingdir, environment, secrets, this.buildGuid, this.buildParameters, this.secretName, this.pvcName, this.jobName, k8s); - //run - const jobResult = yield this.kubeClientBatch.createNamespacedJob(this.namespace, jobSpec); - cloud_runner_logger_1.default.log(`Creating build job ${JSON.stringify(jobResult.body.metadata, undefined, 4)}`); - yield new Promise((promise) => setTimeout(promise, 5000)); - cloud_runner_logger_1.default.log('Job created'); - this.setPodNameAndContainerName(yield Kubernetes.findPodFromJob(this.kubeClient, this.jobName, this.namespace)); - cloud_runner_logger_1.default.log('Watching pod until running'); - let output = ''; - // eslint-disable-next-line no-constant-condition - while (true) { - try { - yield kubernetes_task_runner_1.default.watchUntilPodRunning(this.kubeClient, this.podName, this.namespace); - cloud_runner_logger_1.default.log('Pod running, streaming logs'); - output = yield kubernetes_task_runner_1.default.runTask(this.kubeConfig, this.kubeClient, this.jobName, this.podName, 'main', this.namespace, cloud_runner_logger_1.default.log); - break; - } - catch (error) { - if (error.message.includes(`HTTP`)) { - continue; - } - else { - throw error; - } - } - } - yield this.cleanupTaskResources(); - return output; - } - catch (error) { - cloud_runner_logger_1.default.log('Running job failed'); - core.error(JSON.stringify(error, undefined, 4)); - yield this.cleanupTaskResources(); - throw error; - } - }); - } - setPodNameAndContainerName(pod) { - var _a, _b, _c; - this.podName = ((_a = pod.metadata) === null || _a === void 0 ? void 0 : _a.name) || ''; - this.containerName = ((_c = (_b = pod.status) === null || _b === void 0 ? void 0 : _b.containerStatuses) === null || _c === void 0 ? void 0 : _c[0].name) || ''; - } - cleanupTaskResources() { - return __awaiter(this, void 0, void 0, function* () { - cloud_runner_logger_1.default.log('cleaning up'); - try { - yield this.kubeClientBatch.deleteNamespacedJob(this.jobName, this.namespace); - yield this.kubeClient.deleteNamespacedPod(this.podName, this.namespace); - yield this.kubeClient.deleteNamespacedSecret(this.secretName, this.namespace); - yield new Promise((promise) => setTimeout(promise, 5000)); - } - catch (error) { - cloud_runner_logger_1.default.log('Failed to cleanup, error:'); - core.error(JSON.stringify(error, undefined, 4)); - cloud_runner_logger_1.default.log('Abandoning cleanup, build error:'); - throw error; - } - try { - yield async_wait_until_1.default(() => __awaiter(this, void 0, void 0, function* () { - var _b; - const jobBody = (yield this.kubeClientBatch.readNamespacedJob(this.jobName, this.namespace)).body; - const podBody = (yield this.kubeClient.readNamespacedPod(this.podName, this.namespace)).body; - return (jobBody === null || ((_b = jobBody.status) === null || _b === void 0 ? void 0 : _b.active) === 0) && podBody === null; - }), { - timeout: 500000, - intervalBetweenAttempts: 15000, - }); - // eslint-disable-next-line no-empty - } - catch (_a) { } - }); - } - cleanupSharedResources(buildGuid, buildParameters, - // eslint-disable-next-line no-unused-vars - branchName, - // eslint-disable-next-line no-unused-vars - defaultSecretsArray) { - return __awaiter(this, void 0, void 0, function* () { - cloud_runner_logger_1.default.log(`deleting PVC`); - yield this.kubeClient.deleteNamespacedPersistentVolumeClaim(this.pvcName, this.namespace); - yield __1.Output.setBuildVersion(buildParameters.buildVersion); - // eslint-disable-next-line unicorn/no-process-exit - process.exit(); - }); - } - static findPodFromJob(kubeClient, jobName, namespace) { - return __awaiter(this, void 0, void 0, function* () { - const namespacedPods = yield kubeClient.listNamespacedPod(namespace); - const pod = namespacedPods.body.items.find((x) => { var _a, _b; return ((_b = (_a = x.metadata) === null || _a === void 0 ? void 0 : _a.labels) === null || _b === void 0 ? void 0 : _b['job-name']) === jobName; }); - if (pod === undefined) { - throw new Error("pod with job-name label doesn't exist"); - } - return pod; - }); - } -} -exports["default"] = Kubernetes; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const k8s = __importStar(__nccwpck_require__(89679)); +const __1 = __nccwpck_require__(41359); +const core = __importStar(__nccwpck_require__(42186)); +const kubernetes_storage_1 = __importDefault(__nccwpck_require__(43951)); +const kubernetes_task_runner_1 = __importDefault(__nccwpck_require__(7181)); +const kubernetes_secret_1 = __importDefault(__nccwpck_require__(71586)); +const async_wait_until_1 = __importDefault(__nccwpck_require__(41299)); +const kubernetes_job_spec_factory_1 = __importDefault(__nccwpck_require__(1739)); +const kubernetes_service_account_1 = __importDefault(__nccwpck_require__(42915)); +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +class Kubernetes { + constructor(buildParameters) { + this.buildGuid = ''; + this.pvcName = ''; + this.secretName = ''; + this.jobName = ''; + this.podName = ''; + this.containerName = ''; + this.cleanupCronJobName = ''; + this.serviceAccountName = ''; + this.kubeConfig = new k8s.KubeConfig(); + this.kubeConfig.loadFromDefault(); + this.kubeClient = this.kubeConfig.makeApiClient(k8s.CoreV1Api); + this.kubeClientBatch = this.kubeConfig.makeApiClient(k8s.BatchV1Api); + cloud_runner_logger_1.default.log('Loaded default Kubernetes configuration for this environment'); + this.namespace = 'default'; + this.buildParameters = buildParameters; + } + setupSharedResources(buildGuid, buildParameters, + // eslint-disable-next-line no-unused-vars + branchName, + // eslint-disable-next-line no-unused-vars + defaultSecretsArray) { + return __awaiter(this, void 0, void 0, function* () { + try { + this.pvcName = `unity-builder-pvc-${buildGuid}`; + this.cleanupCronJobName = `unity-builder-cronjob-${buildGuid}`; + this.serviceAccountName = `service-account-${buildGuid}`; + yield kubernetes_storage_1.default.createPersistentVolumeClaim(buildParameters, this.pvcName, this.kubeClient, this.namespace); + yield kubernetes_service_account_1.default.createServiceAccount(this.serviceAccountName, this.namespace, this.kubeClient); + } + catch (error) { + throw error; + } + }); + } + runTask(buildGuid, image, commands, mountdir, workingdir, environment, secrets) { + return __awaiter(this, void 0, void 0, function* () { + try { + // setup + this.buildGuid = buildGuid; + this.secretName = `build-credentials-${buildGuid}`; + this.jobName = `unity-builder-job-${buildGuid}`; + this.containerName = `main`; + yield kubernetes_secret_1.default.createSecret(secrets, this.secretName, this.namespace, this.kubeClient); + const jobSpec = kubernetes_job_spec_factory_1.default.getJobSpec(commands, image, mountdir, workingdir, environment, secrets, this.buildGuid, this.buildParameters, this.secretName, this.pvcName, this.jobName, k8s); + //run + const jobResult = yield this.kubeClientBatch.createNamespacedJob(this.namespace, jobSpec); + cloud_runner_logger_1.default.log(`Creating build job ${JSON.stringify(jobResult.body.metadata, undefined, 4)}`); + yield new Promise((promise) => setTimeout(promise, 5000)); + cloud_runner_logger_1.default.log('Job created'); + this.setPodNameAndContainerName(yield Kubernetes.findPodFromJob(this.kubeClient, this.jobName, this.namespace)); + cloud_runner_logger_1.default.log('Watching pod until running'); + let output = ''; + // eslint-disable-next-line no-constant-condition + while (true) { + try { + yield kubernetes_task_runner_1.default.watchUntilPodRunning(this.kubeClient, this.podName, this.namespace); + cloud_runner_logger_1.default.log('Pod running, streaming logs'); + output = yield kubernetes_task_runner_1.default.runTask(this.kubeConfig, this.kubeClient, this.jobName, this.podName, 'main', this.namespace, cloud_runner_logger_1.default.log); + break; + } + catch (error) { + if (error.message.includes(`HTTP`)) { + continue; + } + else { + throw error; + } + } + } + yield this.cleanupTaskResources(); + return output; + } + catch (error) { + cloud_runner_logger_1.default.log('Running job failed'); + core.error(JSON.stringify(error, undefined, 4)); + yield this.cleanupTaskResources(); + throw error; + } + }); + } + setPodNameAndContainerName(pod) { + var _a, _b, _c; + this.podName = ((_a = pod.metadata) === null || _a === void 0 ? void 0 : _a.name) || ''; + this.containerName = ((_c = (_b = pod.status) === null || _b === void 0 ? void 0 : _b.containerStatuses) === null || _c === void 0 ? void 0 : _c[0].name) || ''; + } + cleanupTaskResources() { + return __awaiter(this, void 0, void 0, function* () { + cloud_runner_logger_1.default.log('cleaning up'); + try { + yield this.kubeClientBatch.deleteNamespacedJob(this.jobName, this.namespace); + yield this.kubeClient.deleteNamespacedPod(this.podName, this.namespace); + yield this.kubeClient.deleteNamespacedSecret(this.secretName, this.namespace); + yield new Promise((promise) => setTimeout(promise, 5000)); + } + catch (error) { + cloud_runner_logger_1.default.log('Failed to cleanup, error:'); + core.error(JSON.stringify(error, undefined, 4)); + cloud_runner_logger_1.default.log('Abandoning cleanup, build error:'); + throw error; + } + try { + yield async_wait_until_1.default(() => __awaiter(this, void 0, void 0, function* () { + var _b; + const jobBody = (yield this.kubeClientBatch.readNamespacedJob(this.jobName, this.namespace)).body; + const podBody = (yield this.kubeClient.readNamespacedPod(this.podName, this.namespace)).body; + return (jobBody === null || ((_b = jobBody.status) === null || _b === void 0 ? void 0 : _b.active) === 0) && podBody === null; + }), { + timeout: 500000, + intervalBetweenAttempts: 15000, + }); + // eslint-disable-next-line no-empty + } + catch (_a) { } + }); + } + cleanupSharedResources(buildGuid, buildParameters, + // eslint-disable-next-line no-unused-vars + branchName, + // eslint-disable-next-line no-unused-vars + defaultSecretsArray) { + return __awaiter(this, void 0, void 0, function* () { + cloud_runner_logger_1.default.log(`deleting PVC`); + yield this.kubeClient.deleteNamespacedPersistentVolumeClaim(this.pvcName, this.namespace); + yield __1.Output.setBuildVersion(buildParameters.buildVersion); + // eslint-disable-next-line unicorn/no-process-exit + process.exit(); + }); + } + static findPodFromJob(kubeClient, jobName, namespace) { + return __awaiter(this, void 0, void 0, function* () { + const namespacedPods = yield kubeClient.listNamespacedPod(namespace); + const pod = namespacedPods.body.items.find((x) => { var _a, _b; return ((_b = (_a = x.metadata) === null || _a === void 0 ? void 0 : _a.labels) === null || _b === void 0 ? void 0 : _b['job-name']) === jobName; }); + if (pod === undefined) { + throw new Error("pod with job-name label doesn't exist"); + } + return pod; + }); + } +} +exports["default"] = Kubernetes; /***/ }), @@ -2059,149 +2059,149 @@ exports["default"] = Kubernetes; /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -const client_node_1 = __nccwpck_require__(89679); -const cloud_runner_build_command_process_1 = __nccwpck_require__(71899); -const cloud_runner_state_1 = __nccwpck_require__(70912); -class KubernetesJobSpecFactory { - static getJobSpec(command, image, mountdir, workingDirectory, environment, secrets, buildGuid, buildParameters, secretName, pvcName, jobName, k8s) { - environment.push(...[ - { - name: 'GITHUB_SHA', - value: buildGuid, - }, - { - name: 'GITHUB_WORKSPACE', - value: '/data/repo', - }, - { - name: 'PROJECT_PATH', - value: buildParameters.projectPath, - }, - { - name: 'BUILD_PATH', - value: buildParameters.buildPath, - }, - { - name: 'BUILD_FILE', - value: buildParameters.buildFile, - }, - { - name: 'BUILD_NAME', - value: buildParameters.buildName, - }, - { - name: 'BUILD_METHOD', - value: buildParameters.buildMethod, - }, - { - name: 'CUSTOM_PARAMETERS', - value: buildParameters.customParameters, - }, - { - name: 'CHOWN_FILES_TO', - value: buildParameters.chownFilesTo, - }, - { - name: 'BUILD_TARGET', - value: buildParameters.platform, - }, - { - name: 'ANDROID_VERSION_CODE', - value: buildParameters.androidVersionCode.toString(), - }, - { - name: 'ANDROID_KEYSTORE_NAME', - value: buildParameters.androidKeystoreName, - }, - { - name: 'ANDROID_KEYALIAS_NAME', - value: buildParameters.androidKeyaliasName, - }, - ]); - const job = new k8s.V1Job(); - job.apiVersion = 'batch/v1'; - job.kind = 'Job'; - job.metadata = { - name: jobName, - labels: { - app: 'unity-builder', - buildGuid, - }, - }; - job.spec = { - backoffLimit: 0, - template: { - spec: { - volumes: [ - { - name: 'build-mount', - persistentVolumeClaim: { - claimName: pvcName, - }, - }, - ], - containers: [ - { - name: 'main', - image, - command: ['/bin/sh'], - args: ['-c', cloud_runner_build_command_process_1.CloudRunnerBuildCommandProcessor.ProcessCommands(command, cloud_runner_state_1.CloudRunnerState.buildParams)], - workingDir: `${workingDirectory}`, - resources: { - requests: { - memory: buildParameters.cloudRunnerMemory, - cpu: buildParameters.cloudRunnerCpu, - }, - }, - env: [ - ...environment.map((x) => { - const environmentVariable = new client_node_1.V1EnvVar(); - environmentVariable.name = x.name; - environmentVariable.value = x.value; - return environmentVariable; - }), - ...secrets.map((x) => { - const secret = new client_node_1.V1EnvVarSource(); - secret.secretKeyRef = new client_node_1.V1SecretKeySelector(); - secret.secretKeyRef.key = x.ParameterKey; - secret.secretKeyRef.name = secretName; - const environmentVariable = new client_node_1.V1EnvVar(); - environmentVariable.name = x.EnvironmentVariable; - environmentVariable.valueFrom = secret; - return environmentVariable; - }), - ], - volumeMounts: [ - { - name: 'build-mount', - mountPath: `/${mountdir}`, - }, - ], - lifecycle: { - preStop: { - exec: { - command: [ - 'bin/bash', - '-c', + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const client_node_1 = __nccwpck_require__(89679); +const cloud_runner_build_command_process_1 = __nccwpck_require__(71899); +const cloud_runner_state_1 = __nccwpck_require__(70912); +class KubernetesJobSpecFactory { + static getJobSpec(command, image, mountdir, workingDirectory, environment, secrets, buildGuid, buildParameters, secretName, pvcName, jobName, k8s) { + environment.push(...[ + { + name: 'GITHUB_SHA', + value: buildGuid, + }, + { + name: 'GITHUB_WORKSPACE', + value: '/data/repo', + }, + { + name: 'PROJECT_PATH', + value: buildParameters.projectPath, + }, + { + name: 'BUILD_PATH', + value: buildParameters.buildPath, + }, + { + name: 'BUILD_FILE', + value: buildParameters.buildFile, + }, + { + name: 'BUILD_NAME', + value: buildParameters.buildName, + }, + { + name: 'BUILD_METHOD', + value: buildParameters.buildMethod, + }, + { + name: 'CUSTOM_PARAMETERS', + value: buildParameters.customParameters, + }, + { + name: 'CHOWN_FILES_TO', + value: buildParameters.chownFilesTo, + }, + { + name: 'BUILD_TARGET', + value: buildParameters.platform, + }, + { + name: 'ANDROID_VERSION_CODE', + value: buildParameters.androidVersionCode.toString(), + }, + { + name: 'ANDROID_KEYSTORE_NAME', + value: buildParameters.androidKeystoreName, + }, + { + name: 'ANDROID_KEYALIAS_NAME', + value: buildParameters.androidKeyaliasName, + }, + ]); + const job = new k8s.V1Job(); + job.apiVersion = 'batch/v1'; + job.kind = 'Job'; + job.metadata = { + name: jobName, + labels: { + app: 'unity-builder', + buildGuid, + }, + }; + job.spec = { + backoffLimit: 0, + template: { + spec: { + volumes: [ + { + name: 'build-mount', + persistentVolumeClaim: { + claimName: pvcName, + }, + }, + ], + containers: [ + { + name: 'main', + image, + command: ['/bin/sh'], + args: ['-c', cloud_runner_build_command_process_1.CloudRunnerBuildCommandProcessor.ProcessCommands(command, cloud_runner_state_1.CloudRunnerState.buildParams)], + workingDir: `${workingDirectory}`, + resources: { + requests: { + memory: buildParameters.cloudRunnerMemory, + cpu: buildParameters.cloudRunnerCpu, + }, + }, + env: [ + ...environment.map((x) => { + const environmentVariable = new client_node_1.V1EnvVar(); + environmentVariable.name = x.name; + environmentVariable.value = x.value; + return environmentVariable; + }), + ...secrets.map((x) => { + const secret = new client_node_1.V1EnvVarSource(); + secret.secretKeyRef = new client_node_1.V1SecretKeySelector(); + secret.secretKeyRef.key = x.ParameterKey; + secret.secretKeyRef.name = secretName; + const environmentVariable = new client_node_1.V1EnvVar(); + environmentVariable.name = x.EnvironmentVariable; + environmentVariable.valueFrom = secret; + return environmentVariable; + }), + ], + volumeMounts: [ + { + name: 'build-mount', + mountPath: `/${mountdir}`, + }, + ], + lifecycle: { + preStop: { + exec: { + command: [ + 'bin/bash', + '-c', `cd /data/builder/action/steps; chmod +x /return_license.sh; - /return_license.sh;`, - ], - }, - }, - }, - }, - ], - restartPolicy: 'Never', - }, - }, - }; - return job; - } -} -exports["default"] = KubernetesJobSpecFactory; + /return_license.sh;`, + ], + }, + }, + }, + }, + ], + restartPolicy: 'Never', + }, + }, + }; + return job; + } +} +exports["default"] = KubernetesJobSpecFactory; /***/ }), @@ -2210,57 +2210,57 @@ exports["default"] = KubernetesJobSpecFactory; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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 })); -const k8s = __importStar(__nccwpck_require__(89679)); -const base64 = __nccwpck_require__(85848); -class KubernetesSecret { - static createSecret(secrets, secretName, namespace, kubeClient) { - return __awaiter(this, void 0, void 0, function* () { - const secret = new k8s.V1Secret(); - secret.apiVersion = 'v1'; - secret.kind = 'Secret'; - secret.type = 'Opaque'; - secret.metadata = { - name: secretName, - }; - secret.data = {}; - for (const buildSecret of secrets) { - secret.data[buildSecret.ParameterKey] = base64.encode(buildSecret.ParameterValue); - } - return kubeClient.createNamespacedSecret(namespace, secret); - }); - } -} -exports["default"] = KubernetesSecret; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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 })); +const k8s = __importStar(__nccwpck_require__(89679)); +const base64 = __nccwpck_require__(85848); +class KubernetesSecret { + static createSecret(secrets, secretName, namespace, kubeClient) { + return __awaiter(this, void 0, void 0, function* () { + const secret = new k8s.V1Secret(); + secret.apiVersion = 'v1'; + secret.kind = 'Secret'; + secret.type = 'Opaque'; + secret.metadata = { + name: secretName, + }; + secret.data = {}; + for (const buildSecret of secrets) { + secret.data[buildSecret.ParameterKey] = base64.encode(buildSecret.ParameterValue); + } + return kubeClient.createNamespacedSecret(namespace, secret); + }); + } +} +exports["default"] = KubernetesSecret; /***/ }), @@ -2269,52 +2269,52 @@ exports["default"] = KubernetesSecret; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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 })); -const k8s = __importStar(__nccwpck_require__(89679)); -class KubernetesServiceAccount { - static createServiceAccount(serviceAccountName, namespace, kubeClient) { - return __awaiter(this, void 0, void 0, function* () { - const serviceAccount = new k8s.V1ServiceAccount(); - serviceAccount.apiVersion = 'v1'; - serviceAccount.kind = 'ServiceAccount'; - serviceAccount.metadata = { - name: serviceAccountName, - }; - serviceAccount.automountServiceAccountToken = false; - return kubeClient.createNamespacedServiceAccount(namespace, serviceAccount); - }); - } -} -exports["default"] = KubernetesServiceAccount; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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 })); +const k8s = __importStar(__nccwpck_require__(89679)); +class KubernetesServiceAccount { + static createServiceAccount(serviceAccountName, namespace, kubeClient) { + return __awaiter(this, void 0, void 0, function* () { + const serviceAccount = new k8s.V1ServiceAccount(); + serviceAccount.apiVersion = 'v1'; + serviceAccount.kind = 'ServiceAccount'; + serviceAccount.metadata = { + name: serviceAccountName, + }; + serviceAccount.automountServiceAccountToken = false; + return kubeClient.createNamespacedServiceAccount(namespace, serviceAccount); + }); + } +} +exports["default"] = KubernetesServiceAccount; /***/ }), @@ -2323,134 +2323,134 @@ exports["default"] = KubernetesServiceAccount; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const async_wait_until_1 = __importDefault(__nccwpck_require__(41299)); -const core = __importStar(__nccwpck_require__(42186)); -const k8s = __importStar(__nccwpck_require__(89679)); -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -const yaml_1 = __importDefault(__nccwpck_require__(44603)); -class KubernetesStorage { - static createPersistentVolumeClaim(buildParameters, pvcName, kubeClient, namespace) { - return __awaiter(this, void 0, void 0, function* () { - if (buildParameters.kubeVolume) { - cloud_runner_logger_1.default.log(buildParameters.kubeVolume); - pvcName = buildParameters.kubeVolume; - return; - } - const pvcList = (yield kubeClient.listNamespacedPersistentVolumeClaim(namespace)).body.items.map((x) => { var _a; return (_a = x.metadata) === null || _a === void 0 ? void 0 : _a.name; }); - cloud_runner_logger_1.default.log(`Current PVCs in namespace ${namespace}`); - cloud_runner_logger_1.default.log(JSON.stringify(pvcList, undefined, 4)); - if (pvcList.includes(pvcName)) { - cloud_runner_logger_1.default.log(`pvc ${pvcName} already exists`); - core.setOutput('volume', pvcName); - return; - } - cloud_runner_logger_1.default.log(`Creating PVC ${pvcName} (does not exist)`); - const result = yield KubernetesStorage.createPVC(pvcName, buildParameters, kubeClient, namespace); - yield KubernetesStorage.handleResult(result, kubeClient, namespace, pvcName); - }); - } - static getPVCPhase(kubeClient, name, namespace) { - var _a; - return __awaiter(this, void 0, void 0, function* () { - try { - return (_a = (yield kubeClient.readNamespacedPersistentVolumeClaim(name, namespace)).body.status) === null || _a === void 0 ? void 0 : _a.phase; - } - catch (error) { - core.error('Failed to get PVC phase'); - core.error(JSON.stringify(error, undefined, 4)); - throw error; - } - }); - } - static watchUntilPVCNotPending(kubeClient, name, namespace) { - return __awaiter(this, void 0, void 0, function* () { - try { - cloud_runner_logger_1.default.log(`watch Until PVC Not Pending ${name} ${namespace}`); - cloud_runner_logger_1.default.log(`${yield this.getPVCPhase(kubeClient, name, namespace)}`); - yield async_wait_until_1.default(() => __awaiter(this, void 0, void 0, function* () { - return (yield this.getPVCPhase(kubeClient, name, namespace)) !== 'Pending'; - }), { - timeout: 500000, - intervalBetweenAttempts: 15000, - }); - } - catch (error) { - core.error('Failed to watch PVC'); - core.error(error.toString()); - core.error(`PVC Body: ${JSON.stringify((yield kubeClient.readNamespacedPersistentVolumeClaim(name, namespace)).body, undefined, 4)}`); - throw error; - } - }); - } - static createPVC(pvcName, buildParameters, kubeClient, namespace) { - return __awaiter(this, void 0, void 0, function* () { - const pvc = new k8s.V1PersistentVolumeClaim(); - pvc.apiVersion = 'v1'; - pvc.kind = 'PersistentVolumeClaim'; - pvc.metadata = { - name: pvcName, - }; - pvc.spec = { - accessModes: ['ReadWriteOnce'], - storageClassName: process.env.K8s_STORAGE_CLASS || 'standard', - resources: { - requests: { - storage: buildParameters.kubeVolumeSize, - }, - }, - }; - if (process.env.K8s_STORAGE_PVC_SPEC) { - yaml_1.default.parse(process.env.K8s_STORAGE_PVC_SPEC); - } - const result = yield kubeClient.createNamespacedPersistentVolumeClaim(namespace, pvc); - return result; - }); - } - static handleResult(result, kubeClient, namespace, pvcName) { - var _a; - return __awaiter(this, void 0, void 0, function* () { - const name = ((_a = result.body.metadata) === null || _a === void 0 ? void 0 : _a.name) || ''; - cloud_runner_logger_1.default.log(`PVC ${name} created`); - yield this.watchUntilPVCNotPending(kubeClient, name, namespace); - cloud_runner_logger_1.default.log(`PVC ${name} is ready and not pending`); - core.setOutput('volume', pvcName); - }); - } -} -exports["default"] = KubernetesStorage; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const async_wait_until_1 = __importDefault(__nccwpck_require__(41299)); +const core = __importStar(__nccwpck_require__(42186)); +const k8s = __importStar(__nccwpck_require__(89679)); +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +const yaml_1 = __importDefault(__nccwpck_require__(44603)); +class KubernetesStorage { + static createPersistentVolumeClaim(buildParameters, pvcName, kubeClient, namespace) { + return __awaiter(this, void 0, void 0, function* () { + if (buildParameters.kubeVolume) { + cloud_runner_logger_1.default.log(buildParameters.kubeVolume); + pvcName = buildParameters.kubeVolume; + return; + } + const pvcList = (yield kubeClient.listNamespacedPersistentVolumeClaim(namespace)).body.items.map((x) => { var _a; return (_a = x.metadata) === null || _a === void 0 ? void 0 : _a.name; }); + cloud_runner_logger_1.default.log(`Current PVCs in namespace ${namespace}`); + cloud_runner_logger_1.default.log(JSON.stringify(pvcList, undefined, 4)); + if (pvcList.includes(pvcName)) { + cloud_runner_logger_1.default.log(`pvc ${pvcName} already exists`); + core.setOutput('volume', pvcName); + return; + } + cloud_runner_logger_1.default.log(`Creating PVC ${pvcName} (does not exist)`); + const result = yield KubernetesStorage.createPVC(pvcName, buildParameters, kubeClient, namespace); + yield KubernetesStorage.handleResult(result, kubeClient, namespace, pvcName); + }); + } + static getPVCPhase(kubeClient, name, namespace) { + var _a; + return __awaiter(this, void 0, void 0, function* () { + try { + return (_a = (yield kubeClient.readNamespacedPersistentVolumeClaim(name, namespace)).body.status) === null || _a === void 0 ? void 0 : _a.phase; + } + catch (error) { + core.error('Failed to get PVC phase'); + core.error(JSON.stringify(error, undefined, 4)); + throw error; + } + }); + } + static watchUntilPVCNotPending(kubeClient, name, namespace) { + return __awaiter(this, void 0, void 0, function* () { + try { + cloud_runner_logger_1.default.log(`watch Until PVC Not Pending ${name} ${namespace}`); + cloud_runner_logger_1.default.log(`${yield this.getPVCPhase(kubeClient, name, namespace)}`); + yield async_wait_until_1.default(() => __awaiter(this, void 0, void 0, function* () { + return (yield this.getPVCPhase(kubeClient, name, namespace)) !== 'Pending'; + }), { + timeout: 500000, + intervalBetweenAttempts: 15000, + }); + } + catch (error) { + core.error('Failed to watch PVC'); + core.error(error.toString()); + core.error(`PVC Body: ${JSON.stringify((yield kubeClient.readNamespacedPersistentVolumeClaim(name, namespace)).body, undefined, 4)}`); + throw error; + } + }); + } + static createPVC(pvcName, buildParameters, kubeClient, namespace) { + return __awaiter(this, void 0, void 0, function* () { + const pvc = new k8s.V1PersistentVolumeClaim(); + pvc.apiVersion = 'v1'; + pvc.kind = 'PersistentVolumeClaim'; + pvc.metadata = { + name: pvcName, + }; + pvc.spec = { + accessModes: ['ReadWriteOnce'], + storageClassName: process.env.K8s_STORAGE_CLASS || 'standard', + resources: { + requests: { + storage: buildParameters.kubeVolumeSize, + }, + }, + }; + if (process.env.K8s_STORAGE_PVC_SPEC) { + yaml_1.default.parse(process.env.K8s_STORAGE_PVC_SPEC); + } + const result = yield kubeClient.createNamespacedPersistentVolumeClaim(namespace, pvc); + return result; + }); + } + static handleResult(result, kubeClient, namespace, pvcName) { + var _a; + return __awaiter(this, void 0, void 0, function* () { + const name = ((_a = result.body.metadata) === null || _a === void 0 ? void 0 : _a.name) || ''; + cloud_runner_logger_1.default.log(`PVC ${name} created`); + yield this.watchUntilPVCNotPending(kubeClient, name, namespace); + cloud_runner_logger_1.default.log(`PVC ${name} is ready and not pending`); + core.setOutput('volume', pvcName); + }); + } +} +exports["default"] = KubernetesStorage; /***/ }), @@ -2459,124 +2459,124 @@ exports["default"] = KubernetesStorage; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const client_node_1 = __nccwpck_require__(89679); -const stream_1 = __nccwpck_require__(12781); -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -const core = __importStar(__nccwpck_require__(42186)); -const cloud_runner_statics_1 = __nccwpck_require__(90828); -const async_wait_until_1 = __importDefault(__nccwpck_require__(41299)); -const __1 = __nccwpck_require__(41359); -class KubernetesTaskRunner { - static runTask(kubeConfig, kubeClient, jobName, podName, containerName, namespace, logCallback) { - return __awaiter(this, void 0, void 0, function* () { - cloud_runner_logger_1.default.log(`Streaming logs from pod: ${podName} container: ${containerName} namespace: ${namespace}`); - const stream = new stream_1.Writable(); - let output = ''; - let didStreamAnyLogs = false; - stream._write = (chunk, encoding, next) => { - didStreamAnyLogs = true; - let message = chunk.toString().trimRight(`\n`); - message = `[${cloud_runner_statics_1.CloudRunnerStatics.logPrefix}] ${message}`; - if (__1.Input.cloudRunnerTests) { - output += message; - } - logCallback(message); - next(); - }; - const logOptions = { - follow: true, - pretty: false, - previous: false, - }; - try { - const resultError = yield new Promise((resolve) => new client_node_1.Log(kubeConfig).log(namespace, podName, containerName, stream, resolve, logOptions)); - stream.destroy(); - if (resultError) { - throw resultError; - } - if (!didStreamAnyLogs) { - core.error('Failed to stream any logs, listing namespace events, check for an error with the container'); - core.error(JSON.stringify({ - events: (yield kubeClient.listNamespacedEvent(namespace)).body.items - .filter((x) => { - return x.involvedObject.name === podName || x.involvedObject.name === jobName; - }) - .map((x) => { - return { - type: x.involvedObject.kind, - name: x.involvedObject.name, - message: x.message, - }; - }), - }, undefined, 4)); - throw new Error(`No logs streamed from k8s`); - } - } - catch (error) { - if (stream) { - stream.destroy(); - } - throw error; - } - cloud_runner_logger_1.default.log('end of log stream'); - return output; - }); - } - static watchUntilPodRunning(kubeClient, podName, namespace) { - return __awaiter(this, void 0, void 0, function* () { - let success = false; - cloud_runner_logger_1.default.log(`Watching ${podName} ${namespace}`); - yield async_wait_until_1.default(() => __awaiter(this, void 0, void 0, function* () { - var _a, _b, _c, _d, _e, _f; - const status = yield kubeClient.readNamespacedPodStatus(podName, namespace); - const phase = (_a = status === null || status === void 0 ? void 0 : status.body.status) === null || _a === void 0 ? void 0 : _a.phase; - success = phase === 'Running'; - cloud_runner_logger_1.default.log(`${(_b = status.body.status) === null || _b === void 0 ? void 0 : _b.phase} ${((_d = (_c = status.body.status) === null || _c === void 0 ? void 0 : _c.conditions) === null || _d === void 0 ? void 0 : _d[0].reason) || ''} ${((_f = (_e = status.body.status) === null || _e === void 0 ? void 0 : _e.conditions) === null || _f === void 0 ? void 0 : _f[0].message) || ''}`); - if (success || phase !== 'Pending') - return true; - return false; - }), { - timeout: 2000000, - intervalBetweenAttempts: 15000, - }); - return success; - }); - } -} -exports["default"] = KubernetesTaskRunner; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const client_node_1 = __nccwpck_require__(89679); +const stream_1 = __nccwpck_require__(12781); +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +const core = __importStar(__nccwpck_require__(42186)); +const cloud_runner_statics_1 = __nccwpck_require__(90828); +const async_wait_until_1 = __importDefault(__nccwpck_require__(41299)); +const __1 = __nccwpck_require__(41359); +class KubernetesTaskRunner { + static runTask(kubeConfig, kubeClient, jobName, podName, containerName, namespace, logCallback) { + return __awaiter(this, void 0, void 0, function* () { + cloud_runner_logger_1.default.log(`Streaming logs from pod: ${podName} container: ${containerName} namespace: ${namespace}`); + const stream = new stream_1.Writable(); + let output = ''; + let didStreamAnyLogs = false; + stream._write = (chunk, encoding, next) => { + didStreamAnyLogs = true; + let message = chunk.toString().trimRight(`\n`); + message = `[${cloud_runner_statics_1.CloudRunnerStatics.logPrefix}] ${message}`; + if (__1.Input.cloudRunnerTests) { + output += message; + } + logCallback(message); + next(); + }; + const logOptions = { + follow: true, + pretty: false, + previous: false, + }; + try { + const resultError = yield new Promise((resolve) => new client_node_1.Log(kubeConfig).log(namespace, podName, containerName, stream, resolve, logOptions)); + stream.destroy(); + if (resultError) { + throw resultError; + } + if (!didStreamAnyLogs) { + core.error('Failed to stream any logs, listing namespace events, check for an error with the container'); + core.error(JSON.stringify({ + events: (yield kubeClient.listNamespacedEvent(namespace)).body.items + .filter((x) => { + return x.involvedObject.name === podName || x.involvedObject.name === jobName; + }) + .map((x) => { + return { + type: x.involvedObject.kind, + name: x.involvedObject.name, + message: x.message, + }; + }), + }, undefined, 4)); + throw new Error(`No logs streamed from k8s`); + } + } + catch (error) { + if (stream) { + stream.destroy(); + } + throw error; + } + cloud_runner_logger_1.default.log('end of log stream'); + return output; + }); + } + static watchUntilPodRunning(kubeClient, podName, namespace) { + return __awaiter(this, void 0, void 0, function* () { + let success = false; + cloud_runner_logger_1.default.log(`Watching ${podName} ${namespace}`); + yield async_wait_until_1.default(() => __awaiter(this, void 0, void 0, function* () { + var _a, _b, _c, _d, _e, _f; + const status = yield kubeClient.readNamespacedPodStatus(podName, namespace); + const phase = (_a = status === null || status === void 0 ? void 0 : status.body.status) === null || _a === void 0 ? void 0 : _a.phase; + success = phase === 'Running'; + cloud_runner_logger_1.default.log(`${(_b = status.body.status) === null || _b === void 0 ? void 0 : _b.phase} ${((_d = (_c = status.body.status) === null || _c === void 0 ? void 0 : _c.conditions) === null || _d === void 0 ? void 0 : _d[0].reason) || ''} ${((_f = (_e = status.body.status) === null || _e === void 0 ? void 0 : _e.conditions) === null || _f === void 0 ? void 0 : _f[0].message) || ''}`); + if (success || phase !== 'Pending') + return true; + return false; + }), { + timeout: 2000000, + intervalBetweenAttempts: 15000, + }); + return success; + }); + } +} +exports["default"] = KubernetesTaskRunner; /***/ }), @@ -2585,17 +2585,17 @@ exports["default"] = KubernetesTaskRunner; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.Hook = exports.CloudRunnerBuildCommandProcessor = void 0; -const __1 = __nccwpck_require__(41359); -const yaml_1 = __importDefault(__nccwpck_require__(44603)); -class CloudRunnerBuildCommandProcessor { - static ProcessCommands(commands, buildParameters) { - const hooks = CloudRunnerBuildCommandProcessor.getHooks().filter((x) => x.step.includes(`all`)); + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.Hook = exports.CloudRunnerBuildCommandProcessor = void 0; +const __1 = __nccwpck_require__(41359); +const yaml_1 = __importDefault(__nccwpck_require__(44603)); +class CloudRunnerBuildCommandProcessor { + static ProcessCommands(commands, buildParameters) { + const hooks = CloudRunnerBuildCommandProcessor.getHooks().filter((x) => x.step.includes(`all`)); return `echo "---" echo "start cloud runner init" ${__1.Input.cloudRunnerTests ? '' : '#'} printenv @@ -2605,29 +2605,29 @@ class CloudRunnerBuildCommandProcessor { ${hooks.filter((x) => x.hook.includes(`after`)).map((x) => x.commands) || ' '} echo "end of cloud runner job ---${buildParameters.logId}" - `; - } - static getHooks() { - const experimentHooks = process.env.EXPERIMENTAL_HOOKS; - let output = new Array(); - if (experimentHooks && experimentHooks !== '') { - try { - output = yaml_1.default.parse(experimentHooks); - } - catch (error) { - throw error; - } - } - return output.filter((x) => x.step !== undefined && x.hook !== undefined && x.hook.length > 0); - } -} -exports.CloudRunnerBuildCommandProcessor = CloudRunnerBuildCommandProcessor; -class Hook { - constructor() { - this.secrets = new Array(); - } -} -exports.Hook = Hook; + `; + } + static getHooks() { + const experimentHooks = process.env.EXPERIMENTAL_HOOKS; + let output = new Array(); + if (experimentHooks && experimentHooks !== '') { + try { + output = yaml_1.default.parse(experimentHooks); + } + catch (error) { + throw error; + } + } + return output.filter((x) => x.step !== undefined && x.hook !== undefined && x.hook.length > 0); + } +} +exports.CloudRunnerBuildCommandProcessor = CloudRunnerBuildCommandProcessor; +class Hook { + constructor() { + this.secrets = new Array(); + } +} +exports.Hook = Hook; /***/ }), @@ -2636,12 +2636,12 @@ exports.Hook = Hook; /***/ ((__unused_webpack_module, exports) => { "use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -class CloudRunnerConstants { -} -CloudRunnerConstants.alphabet = '0123456789abcdefghijklmnopqrstuvwxyz'; -exports["default"] = CloudRunnerConstants; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +class CloudRunnerConstants { +} +CloudRunnerConstants.alphabet = '0123456789abcdefghijklmnopqrstuvwxyz'; +exports["default"] = CloudRunnerConstants; /***/ }), @@ -2650,58 +2650,58 @@ exports["default"] = CloudRunnerConstants; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const core = __importStar(__nccwpck_require__(42186)); -class CloudRunnerLogger { - static setup() { - this.timestamp = this.createTimestamp(); - this.globalTimestamp = this.timestamp; - } - static log(message) { - core.info(message); - } - static logWarning(message) { - core.warning(message); - } - static logLine(message) { - core.info(`${message}\n`); - } - static error(message) { - core.error(message); - } - static logWithTime(message) { - const newTimestamp = this.createTimestamp(); - core.info(`${message} (Since previous: ${this.calculateTimeDiff(newTimestamp, this.timestamp)}, Total time: ${this.calculateTimeDiff(newTimestamp, this.globalTimestamp)})`); - this.timestamp = newTimestamp; - } - static calculateTimeDiff(x, y) { - return Math.floor((x - y) / 1000); - } - static createTimestamp() { - return Date.now(); - } -} -exports["default"] = CloudRunnerLogger; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const core = __importStar(__nccwpck_require__(42186)); +class CloudRunnerLogger { + static setup() { + this.timestamp = this.createTimestamp(); + this.globalTimestamp = this.timestamp; + } + static log(message) { + core.info(message); + } + static logWarning(message) { + core.warning(message); + } + static logLine(message) { + core.info(`${message}\n`); + } + static error(message) { + core.error(message); + } + static logWithTime(message) { + const newTimestamp = this.createTimestamp(); + core.info(`${message} (Since previous: ${this.calculateTimeDiff(newTimestamp, this.timestamp)}, Total time: ${this.calculateTimeDiff(newTimestamp, this.globalTimestamp)})`); + this.timestamp = newTimestamp; + } + static calculateTimeDiff(x, y) { + return Math.floor((x - y) / 1000); + } + static createTimestamp() { + return Date.now(); + } +} +exports["default"] = CloudRunnerLogger; /***/ }), @@ -2710,20 +2710,20 @@ exports["default"] = CloudRunnerLogger; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const nanoid_1 = __nccwpck_require__(17592); -const cloud_runner_constants_1 = __importDefault(__nccwpck_require__(91311)); -class CloudRunnerNamespace { - static generateBuildName(runNumber, platform) { - const nanoid = nanoid_1.customAlphabet(cloud_runner_constants_1.default.alphabet, 4); - return `${runNumber}-${platform.toLowerCase().replace('standalone', '')}-${nanoid()}`; - } -} -exports["default"] = CloudRunnerNamespace; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const nanoid_1 = __nccwpck_require__(17592); +const cloud_runner_constants_1 = __importDefault(__nccwpck_require__(91311)); +class CloudRunnerNamespace { + static generateBuildName(runNumber, platform) { + const nanoid = nanoid_1.customAlphabet(cloud_runner_constants_1.default.alphabet, 4); + return `${runNumber}-${platform.toLowerCase().replace('standalone', '')}-${nanoid()}`; + } +} +exports["default"] = CloudRunnerNamespace; /***/ }), @@ -2732,88 +2732,88 @@ exports["default"] = CloudRunnerNamespace; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.TaskParameterSerializer = void 0; -const __1 = __nccwpck_require__(41359); -const image_environment_factory_1 = __importDefault(__nccwpck_require__(25145)); -const cloud_runner_state_1 = __nccwpck_require__(70912); -const cloud_runner_build_command_process_1 = __nccwpck_require__(71899); -class TaskParameterSerializer { - static readBuildEnvironmentVariables() { - TaskParameterSerializer.setupDefaultSecrets(); - return [ - { - name: 'ContainerMemory', - value: cloud_runner_state_1.CloudRunnerState.buildParams.cloudRunnerMemory, - }, - { - name: 'ContainerCpu', - value: cloud_runner_state_1.CloudRunnerState.buildParams.cloudRunnerCpu, - }, - { - name: 'BUILD_TARGET', - value: cloud_runner_state_1.CloudRunnerState.buildParams.platform, - }, - ...TaskParameterSerializer.serializeBuildParamsAndInput, - ]; - } - static get serializeBuildParamsAndInput() { - let array = new Array(); - array = TaskParameterSerializer.readBuildParameters(array); - array = TaskParameterSerializer.readInput(array); - const configurableHooks = cloud_runner_build_command_process_1.CloudRunnerBuildCommandProcessor.getHooks(); - const secrets = configurableHooks.map((x) => x.secrets).filter((x) => x !== undefined && x.length > 0); - if (secrets.length > 0) { - // eslint-disable-next-line unicorn/no-array-reduce - array.push(secrets.reduce((x, y) => [...x, ...y])); - } - array = array.filter((x) => x.value !== undefined && x.name !== '0' && x.value !== '' && x.name !== 'prototype' && x.name !== 'length'); - array = array.map((x) => { - x.name = __1.Input.ToEnvVarFormat(x.name); - x.value = `${x.value}`; - return x; - }); - return array; - } - static readBuildParameters(array) { - const keys = Object.keys(cloud_runner_state_1.CloudRunnerState.buildParams); - for (const element of keys) { - array.push({ - name: element, - value: cloud_runner_state_1.CloudRunnerState.buildParams[element], - }); - } - array.push({ name: 'buildParameters', value: JSON.stringify(cloud_runner_state_1.CloudRunnerState.buildParams) }); - return array; - } - static readInput(array) { - const input = Object.getOwnPropertyNames(__1.Input); - for (const element of input) { - if (typeof __1.Input[element] !== 'function' && array.filter((x) => x.name === element).length === 0) { - array.push({ - name: element, - value: `${__1.Input[element]}`, - }); - } - } - return array; - } - static setupDefaultSecrets() { - if (cloud_runner_state_1.CloudRunnerState.defaultSecrets === undefined) - cloud_runner_state_1.CloudRunnerState.defaultSecrets = image_environment_factory_1.default.getEnvironmentVariables(cloud_runner_state_1.CloudRunnerState.buildParams).map((x) => { - return { - ParameterKey: x.name, - EnvironmentVariable: x.name, - ParameterValue: x.value, - }; - }); - } -} -exports.TaskParameterSerializer = TaskParameterSerializer; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.TaskParameterSerializer = void 0; +const __1 = __nccwpck_require__(41359); +const image_environment_factory_1 = __importDefault(__nccwpck_require__(25145)); +const cloud_runner_state_1 = __nccwpck_require__(70912); +const cloud_runner_build_command_process_1 = __nccwpck_require__(71899); +class TaskParameterSerializer { + static readBuildEnvironmentVariables() { + TaskParameterSerializer.setupDefaultSecrets(); + return [ + { + name: 'ContainerMemory', + value: cloud_runner_state_1.CloudRunnerState.buildParams.cloudRunnerMemory, + }, + { + name: 'ContainerCpu', + value: cloud_runner_state_1.CloudRunnerState.buildParams.cloudRunnerCpu, + }, + { + name: 'BUILD_TARGET', + value: cloud_runner_state_1.CloudRunnerState.buildParams.platform, + }, + ...TaskParameterSerializer.serializeBuildParamsAndInput, + ]; + } + static get serializeBuildParamsAndInput() { + let array = new Array(); + array = TaskParameterSerializer.readBuildParameters(array); + array = TaskParameterSerializer.readInput(array); + const configurableHooks = cloud_runner_build_command_process_1.CloudRunnerBuildCommandProcessor.getHooks(); + const secrets = configurableHooks.map((x) => x.secrets).filter((x) => x !== undefined && x.length > 0); + if (secrets.length > 0) { + // eslint-disable-next-line unicorn/no-array-reduce + array.push(secrets.reduce((x, y) => [...x, ...y])); + } + array = array.filter((x) => x.value !== undefined && x.name !== '0' && x.value !== '' && x.name !== 'prototype' && x.name !== 'length'); + array = array.map((x) => { + x.name = __1.Input.ToEnvVarFormat(x.name); + x.value = `${x.value}`; + return x; + }); + return array; + } + static readBuildParameters(array) { + const keys = Object.keys(cloud_runner_state_1.CloudRunnerState.buildParams); + for (const element of keys) { + array.push({ + name: element, + value: cloud_runner_state_1.CloudRunnerState.buildParams[element], + }); + } + array.push({ name: 'buildParameters', value: JSON.stringify(cloud_runner_state_1.CloudRunnerState.buildParams) }); + return array; + } + static readInput(array) { + const input = Object.getOwnPropertyNames(__1.Input); + for (const element of input) { + if (typeof __1.Input[element] !== 'function' && array.filter((x) => x.name === element).length === 0) { + array.push({ + name: element, + value: `${__1.Input[element]}`, + }); + } + } + return array; + } + static setupDefaultSecrets() { + if (cloud_runner_state_1.CloudRunnerState.defaultSecrets === undefined) + cloud_runner_state_1.CloudRunnerState.defaultSecrets = image_environment_factory_1.default.getEnvironmentVariables(cloud_runner_state_1.CloudRunnerState.buildParams).map((x) => { + return { + ParameterKey: x.name, + EnvironmentVariable: x.name, + ParameterValue: x.value, + }; + }); + } +} +exports.TaskParameterSerializer = TaskParameterSerializer; /***/ }), @@ -2822,66 +2822,66 @@ exports.TaskParameterSerializer = TaskParameterSerializer; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.CloudRunnerState = void 0; -const path_1 = __importDefault(__nccwpck_require__(71017)); -class CloudRunnerState { - // only the following paths that do not start a path.join with another "Full" suffixed property need to start with an absolute / - static get buildPathFull() { - return path_1.default.join(`/`, CloudRunnerState.buildVolumeFolder, CloudRunnerState.buildParams.buildGuid); - } - static get cacheFolderFull() { - return path_1.default.join('/', CloudRunnerState.buildVolumeFolder, CloudRunnerState.cacheFolder, CloudRunnerState.branchName); - } - static setup(buildParameters) { - CloudRunnerState.buildParams = buildParameters; - } - static get branchName() { - return CloudRunnerState.buildParams.branch; - } - static get builderPathFull() { - return path_1.default.join(CloudRunnerState.buildPathFull, `builder`); - } - static get repoPathFull() { - return path_1.default.join(CloudRunnerState.buildPathFull, CloudRunnerState.repositoryFolder); - } - static get projectPathFull() { - return path_1.default.join(CloudRunnerState.repoPathFull, CloudRunnerState.buildParams.projectPath); - } - static get libraryFolderFull() { - return path_1.default.join(CloudRunnerState.projectPathFull, `Library`); - } - static get lfsDirectoryFull() { - return path_1.default.join(CloudRunnerState.repoPathFull, `.git`, `lfs`); - } - static get purgeRemoteCaching() { - return process.env.PURGE_REMOTE_BUILDER_CACHE !== undefined; - } - static get lfsCacheFolderFull() { - return path_1.default.join(CloudRunnerState.cacheFolderFull, `lfs`); - } - static get libraryCacheFolderFull() { - return path_1.default.join(CloudRunnerState.cacheFolderFull, `Library`); - } - static get unityBuilderRepoUrl() { - return `https://${CloudRunnerState.buildParams.githubToken}@github.com/game-ci/unity-builder.git`; - } - static get targetBuildRepoUrl() { - return `https://${CloudRunnerState.buildParams.githubToken}@github.com/${CloudRunnerState.buildParams.githubRepo}.git`; - } - static get buildVolumeFolder() { - return 'data'; - } - static get cacheFolder() { - return 'cache'; - } -} -exports.CloudRunnerState = CloudRunnerState; -CloudRunnerState.repositoryFolder = 'repo'; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.CloudRunnerState = void 0; +const path_1 = __importDefault(__nccwpck_require__(71017)); +class CloudRunnerState { + // only the following paths that do not start a path.join with another "Full" suffixed property need to start with an absolute / + static get buildPathFull() { + return path_1.default.join(`/`, CloudRunnerState.buildVolumeFolder, CloudRunnerState.buildParams.buildGuid); + } + static get cacheFolderFull() { + return path_1.default.join('/', CloudRunnerState.buildVolumeFolder, CloudRunnerState.cacheFolder, CloudRunnerState.branchName); + } + static setup(buildParameters) { + CloudRunnerState.buildParams = buildParameters; + } + static get branchName() { + return CloudRunnerState.buildParams.branch; + } + static get builderPathFull() { + return path_1.default.join(CloudRunnerState.buildPathFull, `builder`); + } + static get repoPathFull() { + return path_1.default.join(CloudRunnerState.buildPathFull, CloudRunnerState.repositoryFolder); + } + static get projectPathFull() { + return path_1.default.join(CloudRunnerState.repoPathFull, CloudRunnerState.buildParams.projectPath); + } + static get libraryFolderFull() { + return path_1.default.join(CloudRunnerState.projectPathFull, `Library`); + } + static get lfsDirectoryFull() { + return path_1.default.join(CloudRunnerState.repoPathFull, `.git`, `lfs`); + } + static get purgeRemoteCaching() { + return process.env.PURGE_REMOTE_BUILDER_CACHE !== undefined; + } + static get lfsCacheFolderFull() { + return path_1.default.join(CloudRunnerState.cacheFolderFull, `lfs`); + } + static get libraryCacheFolderFull() { + return path_1.default.join(CloudRunnerState.cacheFolderFull, `Library`); + } + static get unityBuilderRepoUrl() { + return `https://${CloudRunnerState.buildParams.githubToken}@github.com/game-ci/unity-builder.git`; + } + static get targetBuildRepoUrl() { + return `https://${CloudRunnerState.buildParams.githubToken}@github.com/${CloudRunnerState.buildParams.githubRepo}.git`; + } + static get buildVolumeFolder() { + return 'data'; + } + static get cacheFolder() { + return 'cache'; + } +} +exports.CloudRunnerState = CloudRunnerState; +CloudRunnerState.repositoryFolder = 'repo'; /***/ }), @@ -2890,17 +2890,17 @@ CloudRunnerState.repositoryFolder = 'repo'; /***/ ((__unused_webpack_module, exports) => { "use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.CloudRunnerStepState = void 0; -class CloudRunnerStepState { - constructor(image, environmentVariables, secrets) { - this.image = image; - this.environment = environmentVariables; - this.secrets = secrets; - } -} -exports.CloudRunnerStepState = CloudRunnerStepState; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.CloudRunnerStepState = void 0; +class CloudRunnerStepState { + constructor(image, environmentVariables, secrets) { + this.image = image; + this.environment = environmentVariables; + this.secrets = secrets; + } +} +exports.CloudRunnerStepState = CloudRunnerStepState; /***/ }), @@ -2909,47 +2909,47 @@ exports.CloudRunnerStepState = CloudRunnerStepState; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.BuildStep = void 0; -const path_1 = __importDefault(__nccwpck_require__(71017)); -const __1 = __nccwpck_require__(41359); -const cloud_runner_build_command_process_1 = __nccwpck_require__(71899); -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -const cloud_runner_state_1 = __nccwpck_require__(70912); -class BuildStep { - run(cloudRunnerStepState) { - return __awaiter(this, void 0, void 0, function* () { - return yield BuildStep.BuildStep(cloudRunnerStepState.image, cloudRunnerStepState.environment, cloudRunnerStepState.secrets); - }); - } - static BuildStep(image, environmentVariables, secrets) { - return __awaiter(this, void 0, void 0, function* () { - cloud_runner_logger_1.default.logLine(` `); - cloud_runner_logger_1.default.logLine('Starting part 2/2 (build unity project)'); - const hooks = cloud_runner_build_command_process_1.CloudRunnerBuildCommandProcessor.getHooks().filter((x) => x.step.includes(`setup`)); + +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.BuildStep = void 0; +const path_1 = __importDefault(__nccwpck_require__(71017)); +const __1 = __nccwpck_require__(41359); +const cloud_runner_build_command_process_1 = __nccwpck_require__(71899); +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +const cloud_runner_state_1 = __nccwpck_require__(70912); +class BuildStep { + run(cloudRunnerStepState) { + return __awaiter(this, void 0, void 0, function* () { + return yield BuildStep.BuildStep(cloudRunnerStepState.image, cloudRunnerStepState.environment, cloudRunnerStepState.secrets); + }); + } + static BuildStep(image, environmentVariables, secrets) { + return __awaiter(this, void 0, void 0, function* () { + cloud_runner_logger_1.default.logLine(` `); + cloud_runner_logger_1.default.logLine('Starting part 2/2 (build unity project)'); + const hooks = cloud_runner_build_command_process_1.CloudRunnerBuildCommandProcessor.getHooks().filter((x) => x.step.includes(`setup`)); return yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.runTask(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, image, `${hooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '} export GITHUB_WORKSPACE="${cloud_runner_state_1.CloudRunnerState.repoPathFull}" - cp -r "${path_1.default - .join(cloud_runner_state_1.CloudRunnerState.builderPathFull, 'dist', 'default-build-script') + cp -r "${path_1.default + .join(cloud_runner_state_1.CloudRunnerState.builderPathFull, 'dist', 'default-build-script') .replace(/\\/g, `/`)}" "/UnityBuilderAction" - cp -r "${path_1.default - .join(cloud_runner_state_1.CloudRunnerState.builderPathFull, 'dist', 'platforms', 'ubuntu', 'entrypoint.sh') + cp -r "${path_1.default + .join(cloud_runner_state_1.CloudRunnerState.builderPathFull, 'dist', 'platforms', 'ubuntu', 'entrypoint.sh') .replace(/\\/g, `/`)}" "/entrypoint.sh" - cp -r "${path_1.default - .join(cloud_runner_state_1.CloudRunnerState.builderPathFull, 'dist', 'platforms', 'ubuntu', 'steps') + cp -r "${path_1.default + .join(cloud_runner_state_1.CloudRunnerState.builderPathFull, 'dist', 'platforms', 'ubuntu', 'steps') .replace(/\\/g, `/`)}" "/steps" chmod -R +x "/entrypoint.sh" chmod -R +x "/steps" @@ -2966,16 +2966,16 @@ class BuildStep { ${__1.Input.cloudRunnerTests ? '' : '#'} tree -lh "${cloud_runner_state_1.CloudRunnerState.cacheFolderFull.replace(/\\/g, `/`)}" mv "build-${cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid}.zip" "${cloud_runner_state_1.CloudRunnerState.cacheFolderFull.replace(/\\/g, `/`)}" chmod +x ${path_1.default.join(cloud_runner_state_1.CloudRunnerState.builderPathFull, 'dist', `index.js`).replace(/\\/g, `/`)} - node ${path_1.default - .join(cloud_runner_state_1.CloudRunnerState.builderPathFull, 'dist', `index.js`) + node ${path_1.default + .join(cloud_runner_state_1.CloudRunnerState.builderPathFull, 'dist', `index.js`) .replace(/\\/g, `/`)} -m cache-push "Library" "lib-${cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid}.zip" "${cloud_runner_state_1.CloudRunnerState.cacheFolderFull.replace(/\\/g, `/`)}/Library" ${__1.Input.cloudRunnerTests ? '' : '#'} tree -lh "${cloud_runner_state_1.CloudRunnerState.cacheFolderFull}" ${hooks.filter((x) => x.hook.includes(`after`)).map((x) => x.commands) || ' '} - `, `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}`, `/${cloud_runner_state_1.CloudRunnerState.projectPathFull}`, environmentVariables, secrets); - }); - } -} -exports.BuildStep = BuildStep; + `, `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}`, `/${cloud_runner_state_1.CloudRunnerState.projectPathFull}`, environmentVariables, secrets); + }); + } +} +exports.BuildStep = BuildStep; /***/ }), @@ -2984,48 +2984,48 @@ exports.BuildStep = BuildStep; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.SetupStep = void 0; -const path_1 = __importDefault(__nccwpck_require__(71017)); -const __1 = __nccwpck_require__(41359); -const cloud_runner_build_command_process_1 = __nccwpck_require__(71899); -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -const cloud_runner_state_1 = __nccwpck_require__(70912); -class SetupStep { - run(cloudRunnerStepState) { - return __awaiter(this, void 0, void 0, function* () { - try { - return yield SetupStep.downloadRepository(cloudRunnerStepState.image, cloudRunnerStepState.environment, cloudRunnerStepState.secrets); - } - catch (error) { - throw error; - } - }); - } - static getCloudRunnerBranch() { - var _a; - return ((_a = process.env.CLOUD_RUNNER_BRANCH) === null || _a === void 0 ? void 0 : _a.includes('/')) ? process.env.CLOUD_RUNNER_BRANCH.split('/').reverse()[0] - : process.env.CLOUD_RUNNER_BRANCH; - } - static downloadRepository(image, environmentVariables, secrets) { - return __awaiter(this, void 0, void 0, function* () { - try { - cloud_runner_logger_1.default.log(` `); - cloud_runner_logger_1.default.logLine('Starting step 1/2 (setup game files from repository)'); - const hooks = cloud_runner_build_command_process_1.CloudRunnerBuildCommandProcessor.getHooks().filter((x) => x.step.includes(`setup`)); + +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SetupStep = void 0; +const path_1 = __importDefault(__nccwpck_require__(71017)); +const __1 = __nccwpck_require__(41359); +const cloud_runner_build_command_process_1 = __nccwpck_require__(71899); +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +const cloud_runner_state_1 = __nccwpck_require__(70912); +class SetupStep { + run(cloudRunnerStepState) { + return __awaiter(this, void 0, void 0, function* () { + try { + return yield SetupStep.downloadRepository(cloudRunnerStepState.image, cloudRunnerStepState.environment, cloudRunnerStepState.secrets); + } + catch (error) { + throw error; + } + }); + } + static getCloudRunnerBranch() { + var _a; + return ((_a = process.env.CLOUD_RUNNER_BRANCH) === null || _a === void 0 ? void 0 : _a.includes('/')) ? process.env.CLOUD_RUNNER_BRANCH.split('/').reverse()[0] + : process.env.CLOUD_RUNNER_BRANCH; + } + static downloadRepository(image, environmentVariables, secrets) { + return __awaiter(this, void 0, void 0, function* () { + try { + cloud_runner_logger_1.default.log(` `); + cloud_runner_logger_1.default.logLine('Starting step 1/2 (setup game files from repository)'); + const hooks = cloud_runner_build_command_process_1.CloudRunnerBuildCommandProcessor.getHooks().filter((x) => x.step.includes(`setup`)); return yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.runTask(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, image, `apk update -q apk add git-lfs jq tree zip unzip nodejs -q ${hooks.filter((x) => x.hook.includes(`before`)).map((x) => x.commands) || ' '} @@ -3036,16 +3036,16 @@ class SetupStep { chmod +x ${path_1.default.join(cloud_runner_state_1.CloudRunnerState.builderPathFull, 'dist', `index.js`).replace(/\\/g, `/`)} node ${path_1.default.join(cloud_runner_state_1.CloudRunnerState.builderPathFull, 'dist', `index.js`).replace(/\\/g, `/`)} -m remote-cli ${hooks.filter((x) => x.hook.includes(`after`)).map((x) => x.commands) || ' '} - `, `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}`, `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}/`, environmentVariables, secrets); - } - catch (error) { - cloud_runner_logger_1.default.logLine(`Failed download repository step 1/2`); - throw error; - } - }); - } -} -exports.SetupStep = SetupStep; + `, `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}`, `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}/`, environmentVariables, secrets); + } + catch (error) { + cloud_runner_logger_1.default.logLine(`Failed download repository step 1/2`); + throw error; + } + }); + } +} +exports.SetupStep = SetupStep; /***/ }), @@ -3054,94 +3054,94 @@ exports.SetupStep = SetupStep; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.BuildAutomationWorkflow = void 0; -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -const task_parameter_serializer_1 = __nccwpck_require__(35346); -const cloud_runner_state_1 = __nccwpck_require__(70912); -const cloud_runner_step_state_1 = __nccwpck_require__(64854); -const build_step_1 = __nccwpck_require__(91491); -const setup_step_1 = __nccwpck_require__(58923); -const custom_workflow_1 = __nccwpck_require__(3786); -const core = __importStar(__nccwpck_require__(42186)); -class BuildAutomationWorkflow { - run(cloudRunnerStepState) { - return __awaiter(this, void 0, void 0, function* () { - try { - return yield BuildAutomationWorkflow.standardBuildAutomation(cloudRunnerStepState.image); - } - catch (error) { - throw error; - } - }); - } - static standardBuildAutomation(baseImage) { - return __awaiter(this, void 0, void 0, function* () { - try { - cloud_runner_logger_1.default.log(`Cloud Runner is running standard build automation`); - core.startGroup('pre build steps'); - let output = ''; - if (cloud_runner_state_1.CloudRunnerState.buildParams.preBuildSteps !== '') { - output += yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_state_1.CloudRunnerState.buildParams.preBuildSteps); - } - core.endGroup(); - cloud_runner_logger_1.default.logWithTime('Configurable pre build step(s) time'); - core.startGroup('setup'); - output += yield new setup_step_1.SetupStep().run(new cloud_runner_step_state_1.CloudRunnerStepState('alpine/git', task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets)); - core.endGroup(); - cloud_runner_logger_1.default.logWithTime('Download repository step time'); - core.startGroup('build'); - output += yield new build_step_1.BuildStep().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets)); - core.endGroup(); - cloud_runner_logger_1.default.logWithTime('Build time'); - core.startGroup('post build steps'); - if (cloud_runner_state_1.CloudRunnerState.buildParams.postBuildSteps !== '') { - output += yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_state_1.CloudRunnerState.buildParams.postBuildSteps); - } - core.endGroup(); - cloud_runner_logger_1.default.logWithTime('Configurable post build step(s) time'); - cloud_runner_logger_1.default.log(`Cloud Runner finished running standard build automation`); - return output; - } - catch (error) { - throw error; - } - }); - } -} -exports.BuildAutomationWorkflow = BuildAutomationWorkflow; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.BuildAutomationWorkflow = void 0; +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +const task_parameter_serializer_1 = __nccwpck_require__(35346); +const cloud_runner_state_1 = __nccwpck_require__(70912); +const cloud_runner_step_state_1 = __nccwpck_require__(64854); +const build_step_1 = __nccwpck_require__(91491); +const setup_step_1 = __nccwpck_require__(58923); +const custom_workflow_1 = __nccwpck_require__(3786); +const core = __importStar(__nccwpck_require__(42186)); +class BuildAutomationWorkflow { + run(cloudRunnerStepState) { + return __awaiter(this, void 0, void 0, function* () { + try { + return yield BuildAutomationWorkflow.standardBuildAutomation(cloudRunnerStepState.image); + } + catch (error) { + throw error; + } + }); + } + static standardBuildAutomation(baseImage) { + return __awaiter(this, void 0, void 0, function* () { + try { + cloud_runner_logger_1.default.log(`Cloud Runner is running standard build automation`); + core.startGroup('pre build steps'); + let output = ''; + if (cloud_runner_state_1.CloudRunnerState.buildParams.preBuildSteps !== '') { + output += yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_state_1.CloudRunnerState.buildParams.preBuildSteps); + } + core.endGroup(); + cloud_runner_logger_1.default.logWithTime('Configurable pre build step(s) time'); + core.startGroup('setup'); + output += yield new setup_step_1.SetupStep().run(new cloud_runner_step_state_1.CloudRunnerStepState('alpine/git', task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets)); + core.endGroup(); + cloud_runner_logger_1.default.logWithTime('Download repository step time'); + core.startGroup('build'); + output += yield new build_step_1.BuildStep().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets)); + core.endGroup(); + cloud_runner_logger_1.default.logWithTime('Build time'); + core.startGroup('post build steps'); + if (cloud_runner_state_1.CloudRunnerState.buildParams.postBuildSteps !== '') { + output += yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_state_1.CloudRunnerState.buildParams.postBuildSteps); + } + core.endGroup(); + cloud_runner_logger_1.default.logWithTime('Configurable post build step(s) time'); + cloud_runner_logger_1.default.log(`Cloud Runner finished running standard build automation`); + return output; + } + catch (error) { + throw error; + } + }); + } +} +exports.BuildAutomationWorkflow = BuildAutomationWorkflow; /***/ }), @@ -3150,62 +3150,62 @@ exports.BuildAutomationWorkflow = BuildAutomationWorkflow; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.CustomWorkflow = void 0; -const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); -const cloud_runner_state_1 = __nccwpck_require__(70912); -const yaml_1 = __importDefault(__nccwpck_require__(44603)); -const __1 = __nccwpck_require__(41359); -const task_parameter_serializer_1 = __nccwpck_require__(35346); -class CustomWorkflow { - static runCustomJob(buildSteps) { - return __awaiter(this, void 0, void 0, function* () { - try { - cloud_runner_logger_1.default.log(`Cloud Runner is running in custom job mode`); - if (__1.Input.cloudRunnerTests) { - cloud_runner_logger_1.default.log(`Parsing build steps: ${buildSteps}`); - } - try { - buildSteps = yaml_1.default.parse(buildSteps); - let output = ''; - for (const step of buildSteps) { - const stepSecrets = step.secrets.map((x) => { - const secret = { - ParameterKey: x.name, - EnvironmentVariable: __1.Input.ToEnvVarFormat(x.name), - ParameterValue: x.value, - }; - return secret; - }); - output += yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.runTask(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, step['image'], step['commands'], `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}`, `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}/`, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), [...cloud_runner_state_1.CloudRunnerState.defaultSecrets, ...stepSecrets]); - } - return output; - } - catch (error) { - cloud_runner_logger_1.default.log(`failed to parse a custom job "${buildSteps}"`); - throw error; - } - } - catch (error) { - throw error; - } - }); - } -} -exports.CustomWorkflow = CustomWorkflow; + +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.CustomWorkflow = void 0; +const cloud_runner_logger_1 = __importDefault(__nccwpck_require__(22855)); +const cloud_runner_state_1 = __nccwpck_require__(70912); +const yaml_1 = __importDefault(__nccwpck_require__(44603)); +const __1 = __nccwpck_require__(41359); +const task_parameter_serializer_1 = __nccwpck_require__(35346); +class CustomWorkflow { + static runCustomJob(buildSteps) { + return __awaiter(this, void 0, void 0, function* () { + try { + cloud_runner_logger_1.default.log(`Cloud Runner is running in custom job mode`); + if (__1.Input.cloudRunnerTests) { + cloud_runner_logger_1.default.log(`Parsing build steps: ${buildSteps}`); + } + try { + buildSteps = yaml_1.default.parse(buildSteps); + let output = ''; + for (const step of buildSteps) { + const stepSecrets = step.secrets.map((x) => { + const secret = { + ParameterKey: x.name, + EnvironmentVariable: __1.Input.ToEnvVarFormat(x.name), + ParameterValue: x.value, + }; + return secret; + }); + output += yield cloud_runner_state_1.CloudRunnerState.CloudRunnerProviderPlatform.runTask(cloud_runner_state_1.CloudRunnerState.buildParams.buildGuid, step['image'], step['commands'], `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}`, `/${cloud_runner_state_1.CloudRunnerState.buildVolumeFolder}/`, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), [...cloud_runner_state_1.CloudRunnerState.defaultSecrets, ...stepSecrets]); + } + return output; + } + catch (error) { + cloud_runner_logger_1.default.log(`failed to parse a custom job "${buildSteps}"`); + throw error; + } + } + catch (error) { + throw error; + } + }); + } +} +exports.CustomWorkflow = CustomWorkflow; /***/ }), @@ -3214,53 +3214,53 @@ exports.CustomWorkflow = CustomWorkflow; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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.WorkflowCompositionRoot = void 0; -const cloud_runner_state_1 = __nccwpck_require__(70912); -const cloud_runner_step_state_1 = __nccwpck_require__(64854); -const custom_workflow_1 = __nccwpck_require__(3786); -const build_automation_workflow_1 = __nccwpck_require__(94655); -const task_parameter_serializer_1 = __nccwpck_require__(35346); -const setup_step_1 = __nccwpck_require__(58923); -class WorkflowCompositionRoot { - run(cloudRunnerStepState) { - return __awaiter(this, void 0, void 0, function* () { - try { - return yield WorkflowCompositionRoot.runJob(cloudRunnerStepState.image.toString()); - } - catch (error) { - throw error; - } - }); - } - static runJob(baseImage) { - return __awaiter(this, void 0, void 0, function* () { - try { - if (cloud_runner_state_1.CloudRunnerState.buildParams.customJob === `setup`) { - return yield new setup_step_1.SetupStep().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets)); - } - else if (cloud_runner_state_1.CloudRunnerState.buildParams.customJob !== '') { - return yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_state_1.CloudRunnerState.buildParams.customJob); - } - return yield new build_automation_workflow_1.BuildAutomationWorkflow().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets)); - } - catch (error) { - throw error; - } - }); - } -} -exports.WorkflowCompositionRoot = WorkflowCompositionRoot; + +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.WorkflowCompositionRoot = void 0; +const cloud_runner_state_1 = __nccwpck_require__(70912); +const cloud_runner_step_state_1 = __nccwpck_require__(64854); +const custom_workflow_1 = __nccwpck_require__(3786); +const build_automation_workflow_1 = __nccwpck_require__(94655); +const task_parameter_serializer_1 = __nccwpck_require__(35346); +const setup_step_1 = __nccwpck_require__(58923); +class WorkflowCompositionRoot { + run(cloudRunnerStepState) { + return __awaiter(this, void 0, void 0, function* () { + try { + return yield WorkflowCompositionRoot.runJob(cloudRunnerStepState.image.toString()); + } + catch (error) { + throw error; + } + }); + } + static runJob(baseImage) { + return __awaiter(this, void 0, void 0, function* () { + try { + if (cloud_runner_state_1.CloudRunnerState.buildParams.customJob === `setup`) { + return yield new setup_step_1.SetupStep().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets)); + } + else if (cloud_runner_state_1.CloudRunnerState.buildParams.customJob !== '') { + return yield custom_workflow_1.CustomWorkflow.runCustomJob(cloud_runner_state_1.CloudRunnerState.buildParams.customJob); + } + return yield new build_automation_workflow_1.BuildAutomationWorkflow().run(new cloud_runner_step_state_1.CloudRunnerStepState(baseImage, task_parameter_serializer_1.TaskParameterSerializer.readBuildEnvironmentVariables(), cloud_runner_state_1.CloudRunnerState.defaultSecrets)); + } + catch (error) { + throw error; + } + }); + } +} +exports.WorkflowCompositionRoot = WorkflowCompositionRoot; /***/ }), @@ -3269,61 +3269,61 @@ exports.WorkflowCompositionRoot = WorkflowCompositionRoot; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const exec_1 = __nccwpck_require__(71514); -const image_tag_1 = __importDefault(__nccwpck_require__(57648)); -const image_environment_factory_1 = __importDefault(__nccwpck_require__(25145)); -const fs_1 = __nccwpck_require__(57147); -const path_1 = __importDefault(__nccwpck_require__(71017)); -class Docker { - static build(buildParameters, silent = false) { - return __awaiter(this, void 0, void 0, function* () { - const { path: buildPath, dockerfile, baseImage } = buildParameters; - const { version, platform } = baseImage; - const tag = new image_tag_1.default({ repository: '', name: 'unity-builder', version, platform }); + +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const exec_1 = __nccwpck_require__(71514); +const image_tag_1 = __importDefault(__nccwpck_require__(57648)); +const image_environment_factory_1 = __importDefault(__nccwpck_require__(25145)); +const fs_1 = __nccwpck_require__(57147); +const path_1 = __importDefault(__nccwpck_require__(71017)); +class Docker { + static build(buildParameters, silent = false) { + return __awaiter(this, void 0, void 0, function* () { + const { path: buildPath, dockerfile, baseImage } = buildParameters; + const { version, platform } = baseImage; + const tag = new image_tag_1.default({ repository: '', name: 'unity-builder', version, platform }); const command = `docker build ${buildPath} \ --file ${dockerfile} \ --build-arg IMAGE=${baseImage} \ - --tag ${tag}`; - yield exec_1.exec(command, undefined, { silent }); - return tag; - }); - } - static run(image, parameters, silent = false) { - return __awaiter(this, void 0, void 0, function* () { - const { workspace, unitySerial, runnerTempPath, sshAgent } = parameters; - const baseOsSpecificArguments = this.getBaseOsSpecificArguments(process.platform, workspace, unitySerial, runnerTempPath, sshAgent); + --tag ${tag}`; + yield exec_1.exec(command, undefined, { silent }); + return tag; + }); + } + static run(image, parameters, silent = false) { + return __awaiter(this, void 0, void 0, function* () { + const { workspace, unitySerial, runnerTempPath, sshAgent } = parameters; + const baseOsSpecificArguments = this.getBaseOsSpecificArguments(process.platform, workspace, unitySerial, runnerTempPath, sshAgent); const runCommand = `docker run \ --workdir /github/workspace \ --rm \ ${image_environment_factory_1.default.getEnvVarString(parameters)} \ ${baseOsSpecificArguments} \ - ${image}`; - yield exec_1.exec(runCommand, undefined, { silent }); - }); - } - static getBaseOsSpecificArguments(baseOs, workspace, unitySerial, runnerTemporaryPath, sshAgent) { - switch (baseOs) { - case 'linux': { - const githubHome = path_1.default.join(runnerTemporaryPath, '_github_home'); - if (!fs_1.existsSync(githubHome)) - fs_1.mkdirSync(githubHome); - const githubWorkflow = path_1.default.join(runnerTemporaryPath, '_github_workflow'); - if (!fs_1.existsSync(githubWorkflow)) - fs_1.mkdirSync(githubWorkflow); + ${image}`; + yield exec_1.exec(runCommand, undefined, { silent }); + }); + } + static getBaseOsSpecificArguments(baseOs, workspace, unitySerial, runnerTemporaryPath, sshAgent) { + switch (baseOs) { + case 'linux': { + const githubHome = path_1.default.join(runnerTemporaryPath, '_github_home'); + if (!fs_1.existsSync(githubHome)) + fs_1.mkdirSync(githubHome); + const githubWorkflow = path_1.default.join(runnerTemporaryPath, '_github_workflow'); + if (!fs_1.existsSync(githubWorkflow)) + fs_1.mkdirSync(githubWorkflow); return `--env UNITY_SERIAL \ --env GITHUB_WORKSPACE=/github/workspace \ ${sshAgent ? '--env SSH_AUTH_SOCK=/ssh-agent' : ''} \ @@ -3331,22 +3331,22 @@ class Docker { --volume "${githubWorkflow}":"/github/workflow:z" \ --volume "${workspace}":"/github/workspace:z" \ ${sshAgent ? `--volume ${sshAgent}:/ssh-agent` : ''} \ - ${sshAgent ? '--volume /home/runner/.ssh/known_hosts:/root/.ssh/known_hosts:ro' : ''}`; - } - case 'win32': + ${sshAgent ? '--volume /home/runner/.ssh/known_hosts:/root/.ssh/known_hosts:ro' : ''}`; + } + case 'win32': return `--env UNITY_SERIAL="${unitySerial}" \ --env GITHUB_WORKSPACE=c:/github/workspace \ --volume "${workspace}":"c:/github/workspace" \ --volume "c:/regkeys":"c:/regkeys" \ --volume "C:/Program Files (x86)/Microsoft Visual Studio":"C:/Program Files (x86)/Microsoft Visual Studio" \ --volume "C:/Program Files (x86)/Windows Kits":"C:/Program Files (x86)/Windows Kits" \ - --volume "C:/ProgramData/Microsoft/VisualStudio":"C:/ProgramData/Microsoft/VisualStudio"`; - //Note: When upgrading to Server 2022, we will need to move to just "program files" since VS will be 64-bit - } - return ''; - } -} -exports["default"] = Docker; + --volume "C:/ProgramData/Microsoft/VisualStudio":"C:/ProgramData/Microsoft/VisualStudio"`; + //Note: When upgrading to Server 2022, we will need to move to just "program files" since VS will be 64-bit + } + return ''; + } +} +exports["default"] = Docker; /***/ }), @@ -3355,15 +3355,15 @@ exports["default"] = Docker; /***/ ((__unused_webpack_module, exports) => { "use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -class NotImplementedException extends Error { - constructor(message = '') { - super(message); - this.name = 'NotImplementedException'; - } -} -exports["default"] = NotImplementedException; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +class NotImplementedException extends Error { + constructor(message = '') { + super(message); + this.name = 'NotImplementedException'; + } +} +exports["default"] = NotImplementedException; /***/ }), @@ -3372,15 +3372,15 @@ exports["default"] = NotImplementedException; /***/ ((__unused_webpack_module, exports) => { "use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -class ValidationError extends Error { - constructor(message = '') { - super(message); - this.name = 'ValidationError'; - } -} -exports["default"] = ValidationError; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +class ValidationError extends Error { + constructor(message = '') { + super(message); + this.name = 'ValidationError'; + } +} +exports["default"] = ValidationError; /***/ }), @@ -3389,74 +3389,74 @@ exports["default"] = ValidationError; /***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { "use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -const test_license_reader_1 = __nccwpck_require__(13963); -class Parameter { -} -class ImageEnvironmentFactory { - static getEnvVarString(parameters) { - const environmentVariables = ImageEnvironmentFactory.getEnvironmentVariables(parameters); - let string = ''; - for (const p of environmentVariables) { - if (p.value === '' || p.value === undefined) { - continue; - } - if (p.name !== 'ANDROID_KEYSTORE_BASE64' && p.value.toString().includes(`\n`)) { - string += `--env ${p.name} `; - continue; - } - string += `--env ${p.name}="${p.value}" `; - } - return string; - } - static getEnvironmentVariables(parameters) { - const environmentVariables = [ - { name: 'UNITY_LICENSE', value: process.env.UNITY_LICENSE || test_license_reader_1.ReadLicense() }, - { name: 'UNITY_LICENSE_FILE', value: process.env.UNITY_LICENSE_FILE }, - { name: 'UNITY_EMAIL', value: process.env.UNITY_EMAIL }, - { name: 'UNITY_PASSWORD', value: process.env.UNITY_PASSWORD }, - { name: 'UNITY_SERIAL', value: parameters.unitySerial }, - { name: 'UNITY_VERSION', value: parameters.version }, - { name: 'USYM_UPLOAD_AUTH_TOKEN', value: process.env.USYM_UPLOAD_AUTH_TOKEN }, - { name: 'PROJECT_PATH', value: parameters.projectPath }, - { name: 'BUILD_TARGET', value: parameters.platform }, - { name: 'BUILD_NAME', value: parameters.buildName }, - { name: 'BUILD_PATH', value: parameters.buildPath }, - { name: 'BUILD_FILE', value: parameters.buildFile }, - { name: 'BUILD_METHOD', value: parameters.buildMethod }, - { name: 'VERSION', value: parameters.buildVersion }, - { name: 'ANDROID_VERSION_CODE', value: parameters.androidVersionCode }, - { name: 'ANDROID_KEYSTORE_NAME', value: parameters.androidKeystoreName }, - { name: 'ANDROID_KEYSTORE_BASE64', value: parameters.androidKeystoreBase64 }, - { name: 'ANDROID_KEYSTORE_PASS', value: parameters.androidKeystorePass }, - { name: 'ANDROID_KEYALIAS_NAME', value: parameters.androidKeyaliasName }, - { name: 'ANDROID_KEYALIAS_PASS', value: parameters.androidKeyaliasPass }, - { name: 'ANDROID_SDK_MANAGER_PARAMETERS', value: parameters.androidSdkManagerParameters }, - { name: 'CUSTOM_PARAMETERS', value: parameters.customParameters }, - { name: 'CHOWN_FILES_TO', value: parameters.chownFilesTo }, - { name: 'GITHUB_REF', value: process.env.GITHUB_REF }, - { name: 'GITHUB_SHA', value: process.env.GITHUB_SHA }, - { name: 'GITHUB_REPOSITORY', value: process.env.GITHUB_REPOSITORY }, - { name: 'GITHUB_ACTOR', value: process.env.GITHUB_ACTOR }, - { name: 'GITHUB_WORKFLOW', value: process.env.GITHUB_WORKFLOW }, - { name: 'GITHUB_HEAD_REF', value: process.env.GITHUB_HEAD_REF }, - { name: 'GITHUB_BASE_REF', value: process.env.GITHUB_BASE_REF }, - { name: 'GITHUB_EVENT_NAME', value: process.env.GITHUB_EVENT_NAME }, - { name: 'GITHUB_WORKSPACE', value: '/github/workspace' }, - { name: 'GITHUB_ACTION', value: process.env.GITHUB_ACTION }, - { name: 'GITHUB_EVENT_PATH', value: process.env.GITHUB_EVENT_PATH }, - { name: 'RUNNER_OS', value: process.env.RUNNER_OS }, - { name: 'RUNNER_TOOL_CACHE', value: process.env.RUNNER_TOOL_CACHE }, - { name: 'RUNNER_TEMP', value: process.env.RUNNER_TEMP }, - { name: 'RUNNER_WORKSPACE', value: process.env.RUNNER_WORKSPACE }, - ]; - if (parameters.sshAgent) - environmentVariables.push({ name: 'SSH_AUTH_SOCK', value: '/ssh-agent' }); - return environmentVariables; - } -} -exports["default"] = ImageEnvironmentFactory; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +const test_license_reader_1 = __nccwpck_require__(13963); +class Parameter { +} +class ImageEnvironmentFactory { + static getEnvVarString(parameters) { + const environmentVariables = ImageEnvironmentFactory.getEnvironmentVariables(parameters); + let string = ''; + for (const p of environmentVariables) { + if (p.value === '' || p.value === undefined) { + continue; + } + if (p.name !== 'ANDROID_KEYSTORE_BASE64' && p.value.toString().includes(`\n`)) { + string += `--env ${p.name} `; + continue; + } + string += `--env ${p.name}="${p.value}" `; + } + return string; + } + static getEnvironmentVariables(parameters) { + const environmentVariables = [ + { name: 'UNITY_LICENSE', value: process.env.UNITY_LICENSE || test_license_reader_1.ReadLicense() }, + { name: 'UNITY_LICENSE_FILE', value: process.env.UNITY_LICENSE_FILE }, + { name: 'UNITY_EMAIL', value: process.env.UNITY_EMAIL }, + { name: 'UNITY_PASSWORD', value: process.env.UNITY_PASSWORD }, + { name: 'UNITY_SERIAL', value: parameters.unitySerial }, + { name: 'UNITY_VERSION', value: parameters.version }, + { name: 'USYM_UPLOAD_AUTH_TOKEN', value: process.env.USYM_UPLOAD_AUTH_TOKEN }, + { name: 'PROJECT_PATH', value: parameters.projectPath }, + { name: 'BUILD_TARGET', value: parameters.platform }, + { name: 'BUILD_NAME', value: parameters.buildName }, + { name: 'BUILD_PATH', value: parameters.buildPath }, + { name: 'BUILD_FILE', value: parameters.buildFile }, + { name: 'BUILD_METHOD', value: parameters.buildMethod }, + { name: 'VERSION', value: parameters.buildVersion }, + { name: 'ANDROID_VERSION_CODE', value: parameters.androidVersionCode }, + { name: 'ANDROID_KEYSTORE_NAME', value: parameters.androidKeystoreName }, + { name: 'ANDROID_KEYSTORE_BASE64', value: parameters.androidKeystoreBase64 }, + { name: 'ANDROID_KEYSTORE_PASS', value: parameters.androidKeystorePass }, + { name: 'ANDROID_KEYALIAS_NAME', value: parameters.androidKeyaliasName }, + { name: 'ANDROID_KEYALIAS_PASS', value: parameters.androidKeyaliasPass }, + { name: 'ANDROID_SDK_MANAGER_PARAMETERS', value: parameters.androidSdkManagerParameters }, + { name: 'CUSTOM_PARAMETERS', value: parameters.customParameters }, + { name: 'CHOWN_FILES_TO', value: parameters.chownFilesTo }, + { name: 'GITHUB_REF', value: process.env.GITHUB_REF }, + { name: 'GITHUB_SHA', value: process.env.GITHUB_SHA }, + { name: 'GITHUB_REPOSITORY', value: process.env.GITHUB_REPOSITORY }, + { name: 'GITHUB_ACTOR', value: process.env.GITHUB_ACTOR }, + { name: 'GITHUB_WORKFLOW', value: process.env.GITHUB_WORKFLOW }, + { name: 'GITHUB_HEAD_REF', value: process.env.GITHUB_HEAD_REF }, + { name: 'GITHUB_BASE_REF', value: process.env.GITHUB_BASE_REF }, + { name: 'GITHUB_EVENT_NAME', value: process.env.GITHUB_EVENT_NAME }, + { name: 'GITHUB_WORKSPACE', value: '/github/workspace' }, + { name: 'GITHUB_ACTION', value: process.env.GITHUB_ACTION }, + { name: 'GITHUB_EVENT_PATH', value: process.env.GITHUB_EVENT_PATH }, + { name: 'RUNNER_OS', value: process.env.RUNNER_OS }, + { name: 'RUNNER_TOOL_CACHE', value: process.env.RUNNER_TOOL_CACHE }, + { name: 'RUNNER_TEMP', value: process.env.RUNNER_TEMP }, + { name: 'RUNNER_WORKSPACE', value: process.env.RUNNER_WORKSPACE }, + ]; + if (parameters.sshAgent) + environmentVariables.push({ name: 'SSH_AUTH_SOCK', value: '/ssh-agent' }); + return environmentVariables; + } +} +exports["default"] = ImageEnvironmentFactory; /***/ }), @@ -3465,138 +3465,138 @@ exports["default"] = ImageEnvironmentFactory; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const platform_1 = __importDefault(__nccwpck_require__(9707)); -class ImageTag { - constructor(imageProperties) { - const { repository = 'unityci', name = 'editor', version = '2019.2.11f1', platform, customImage } = imageProperties; - if (!ImageTag.versionPattern.test(version)) { - throw new Error(`Invalid version "${version}".`); - } - const builderPlatform = ImageTag.getTargetPlatformToImageSuffixMap(platform, version); - this.repository = repository; - this.name = name; - this.version = version; - this.platform = platform; - this.builderPlatform = builderPlatform; - this.customImage = customImage; - } - static get versionPattern() { - return /^20\d{2}\.\d\.\w{3,4}|3$/; - } - static get imageSuffixes() { - return { - generic: '', - webgl: 'webgl', - mac: 'mac-mono', - windows: 'windows-mono', - windowsIl2cpp: 'windows-il2cpp', - wsaPlayer: 'universal-windows-platform', - linux: 'base', - linuxIl2cpp: 'linux-il2cpp', - android: 'android', - ios: 'ios', - tvos: 'appletv', - facebook: 'facebook', - }; - } - static getTargetPlatformToImageSuffixMap(platform, version) { - const { generic, webgl, mac, windows, windowsIl2cpp, wsaPlayer, linux, linuxIl2cpp, android, ios, tvos, facebook } = ImageTag.imageSuffixes; - const [major, minor] = version.split('.').map((digit) => Number(digit)); - // @see: https://docs.unity3d.com/ScriptReference/BuildTarget.html - switch (platform) { - case platform_1.default.types.StandaloneOSX: - return mac; - case platform_1.default.types.StandaloneWindows: - case platform_1.default.types.StandaloneWindows64: - // Can only build windows-il2cpp on a windows based system - if (process.platform === 'win32') { - // Unity versions before 2019.3 do not support il2cpp - if (major >= 2020 || (major === 2019 && minor >= 3)) { - return windowsIl2cpp; - } - else { + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const platform_1 = __importDefault(__nccwpck_require__(9707)); +class ImageTag { + constructor(imageProperties) { + const { repository = 'unityci', name = 'editor', version = '2019.2.11f1', platform, customImage } = imageProperties; + if (!ImageTag.versionPattern.test(version)) { + throw new Error(`Invalid version "${version}".`); + } + const builderPlatform = ImageTag.getTargetPlatformToImageSuffixMap(platform, version); + this.repository = repository; + this.name = name; + this.version = version; + this.platform = platform; + this.builderPlatform = builderPlatform; + this.customImage = customImage; + } + static get versionPattern() { + return /^20\d{2}\.\d\.\w{3,4}|3$/; + } + static get imageSuffixes() { + return { + generic: '', + webgl: 'webgl', + mac: 'mac-mono', + windows: 'windows-mono', + windowsIl2cpp: 'windows-il2cpp', + wsaPlayer: 'universal-windows-platform', + linux: 'base', + linuxIl2cpp: 'linux-il2cpp', + android: 'android', + ios: 'ios', + tvos: 'appletv', + facebook: 'facebook', + }; + } + static getTargetPlatformToImageSuffixMap(platform, version) { + const { generic, webgl, mac, windows, windowsIl2cpp, wsaPlayer, linux, linuxIl2cpp, android, ios, tvos, facebook } = ImageTag.imageSuffixes; + const [major, minor] = version.split('.').map((digit) => Number(digit)); + // @see: https://docs.unity3d.com/ScriptReference/BuildTarget.html + switch (platform) { + case platform_1.default.types.StandaloneOSX: + return mac; + case platform_1.default.types.StandaloneWindows: + case platform_1.default.types.StandaloneWindows64: + // Can only build windows-il2cpp on a windows based system + if (process.platform === 'win32') { + // Unity versions before 2019.3 do not support il2cpp + if (major >= 2020 || (major === 2019 && minor >= 3)) { + return windowsIl2cpp; + } + else { throw new Error(`Windows-based builds are only supported on 2019.3.X+ versions of Unity. - If you are trying to build for windows-mono, please use a Linux based OS.`); - } - } - return windows; - case platform_1.default.types.StandaloneLinux64: { - // Unity versions before 2019.3 do not support il2cpp - if (major >= 2020 || (major === 2019 && minor >= 3)) { - return linuxIl2cpp; - } - return linux; - } - case platform_1.default.types.iOS: - return ios; - case platform_1.default.types.Android: - return android; - case platform_1.default.types.WebGL: - return webgl; - case platform_1.default.types.WSAPlayer: - if (process.platform !== 'win32') { - throw new Error(`WSAPlayer can only be built on a windows base OS`); - } - return wsaPlayer; - case platform_1.default.types.PS4: - return windows; - case platform_1.default.types.XboxOne: - return windows; - case platform_1.default.types.tvOS: - if (process.platform !== 'win32') { - throw new Error(`tvOS can only be built on a windows base OS`); - } - return tvos; - case platform_1.default.types.Switch: - return windows; - // Unsupported - case platform_1.default.types.Lumin: - return windows; - case platform_1.default.types.BJM: - return windows; - case platform_1.default.types.Stadia: - return windows; - case platform_1.default.types.Facebook: - return facebook; - case platform_1.default.types.NoTarget: - return generic; - // Test specific - case platform_1.default.types.Test: - return generic; - default: + If you are trying to build for windows-mono, please use a Linux based OS.`); + } + } + return windows; + case platform_1.default.types.StandaloneLinux64: { + // Unity versions before 2019.3 do not support il2cpp + if (major >= 2020 || (major === 2019 && minor >= 3)) { + return linuxIl2cpp; + } + return linux; + } + case platform_1.default.types.iOS: + return ios; + case platform_1.default.types.Android: + return android; + case platform_1.default.types.WebGL: + return webgl; + case platform_1.default.types.WSAPlayer: + if (process.platform !== 'win32') { + throw new Error(`WSAPlayer can only be built on a windows base OS`); + } + return wsaPlayer; + case platform_1.default.types.PS4: + return windows; + case platform_1.default.types.XboxOne: + return windows; + case platform_1.default.types.tvOS: + if (process.platform !== 'win32') { + throw new Error(`tvOS can only be built on a windows base OS`); + } + return tvos; + case platform_1.default.types.Switch: + return windows; + // Unsupported + case platform_1.default.types.Lumin: + return windows; + case platform_1.default.types.BJM: + return windows; + case platform_1.default.types.Stadia: + return windows; + case platform_1.default.types.Facebook: + return facebook; + case platform_1.default.types.NoTarget: + return generic; + // Test specific + case platform_1.default.types.Test: + return generic; + default: throw new Error(` Platform must be one of the ones described in the documentation. - "${platform}" is currently not supported.`); - } - } - get tag() { - //We check the host os so we know what type of the images we need to pull - switch (process.platform) { - case 'win32': - return `windows-${this.version}-${this.builderPlatform}`.replace(/-+$/, ''); - case 'linux': - return `${this.version}-${this.builderPlatform}`.replace(/-+$/, ''); - default: - break; - } - } - get image() { - return `${this.repository}/${this.name}`.replace(/^\/+/, ''); - } - toString() { - const { image, tag, customImage } = this; - if (customImage && customImage !== '') { - return customImage; - } - return `${image}:${tag}-0`; // '0' here represents the docker repo version - } -} -exports["default"] = ImageTag; + "${platform}" is currently not supported.`); + } + } + get tag() { + //We check the host os so we know what type of the images we need to pull + switch (process.platform) { + case 'win32': + return `windows-${this.version}-${this.builderPlatform}`.replace(/-+$/, ''); + case 'linux': + return `${this.version}-${this.builderPlatform}`.replace(/-+$/, ''); + default: + break; + } + } + get image() { + return `${this.repository}/${this.name}`.replace(/^\/+/, ''); + } + toString() { + const { image, tag, customImage } = this; + if (customImage && customImage !== '') { + return customImage; + } + return `${image}:${tag}-0`; // '0' here represents the docker repo version + } +} +exports["default"] = ImageTag; /***/ }), @@ -3605,36 +3605,36 @@ exports["default"] = ImageTag; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.CloudRunner = exports.Versioning = exports.Unity = exports.Project = exports.Platform = exports.Output = exports.ImageTag = exports.Input = exports.Docker = exports.Cache = exports.BuildParameters = exports.Action = void 0; -const action_1 = __importDefault(__nccwpck_require__(89088)); -exports.Action = action_1.default; -const build_parameters_1 = __importDefault(__nccwpck_require__(80787)); -exports.BuildParameters = build_parameters_1.default; -const cache_1 = __importDefault(__nccwpck_require__(97134)); -exports.Cache = cache_1.default; -const docker_1 = __importDefault(__nccwpck_require__(16934)); -exports.Docker = docker_1.default; -const input_1 = __importDefault(__nccwpck_require__(91933)); -exports.Input = input_1.default; -const image_tag_1 = __importDefault(__nccwpck_require__(57648)); -exports.ImageTag = image_tag_1.default; -const output_1 = __importDefault(__nccwpck_require__(85487)); -exports.Output = output_1.default; -const platform_1 = __importDefault(__nccwpck_require__(9707)); -exports.Platform = platform_1.default; -const project_1 = __importDefault(__nccwpck_require__(88666)); -exports.Project = project_1.default; -const unity_1 = __importDefault(__nccwpck_require__(70498)); -exports.Unity = unity_1.default; -const versioning_1 = __importDefault(__nccwpck_require__(88729)); -exports.Versioning = versioning_1.default; -const cloud_runner_1 = __importDefault(__nccwpck_require__(79144)); -exports.CloudRunner = cloud_runner_1.default; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.CloudRunner = exports.Versioning = exports.Unity = exports.Project = exports.Platform = exports.Output = exports.ImageTag = exports.Input = exports.Docker = exports.Cache = exports.BuildParameters = exports.Action = void 0; +const action_1 = __importDefault(__nccwpck_require__(89088)); +exports.Action = action_1.default; +const build_parameters_1 = __importDefault(__nccwpck_require__(80787)); +exports.BuildParameters = build_parameters_1.default; +const cache_1 = __importDefault(__nccwpck_require__(97134)); +exports.Cache = cache_1.default; +const docker_1 = __importDefault(__nccwpck_require__(16934)); +exports.Docker = docker_1.default; +const input_1 = __importDefault(__nccwpck_require__(91933)); +exports.Input = input_1.default; +const image_tag_1 = __importDefault(__nccwpck_require__(57648)); +exports.ImageTag = image_tag_1.default; +const output_1 = __importDefault(__nccwpck_require__(85487)); +exports.Output = output_1.default; +const platform_1 = __importDefault(__nccwpck_require__(9707)); +exports.Platform = platform_1.default; +const project_1 = __importDefault(__nccwpck_require__(88666)); +exports.Project = project_1.default; +const unity_1 = __importDefault(__nccwpck_require__(70498)); +exports.Unity = unity_1.default; +const versioning_1 = __importDefault(__nccwpck_require__(88729)); +exports.Versioning = versioning_1.default; +const cloud_runner_1 = __importDefault(__nccwpck_require__(79144)); +exports.CloudRunner = cloud_runner_1.default; /***/ }), @@ -3643,29 +3643,29 @@ exports.CloudRunner = cloud_runner_1.default; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ActionYamlReader = void 0; -const fs_1 = __importDefault(__nccwpck_require__(57147)); -const path_1 = __importDefault(__nccwpck_require__(71017)); -const yaml_1 = __importDefault(__nccwpck_require__(44603)); -class ActionYamlReader { - constructor() { - let filename = `action.yml`; - if (!fs_1.default.existsSync(filename)) { - filename = path_1.default.join(__dirname, `..`, filename); - } - this.actionYamlParsed = yaml_1.default.parse(fs_1.default.readFileSync(filename).toString()); - } - GetActionYamlValue(key) { - var _a; - return ((_a = this.actionYamlParsed.inputs[key]) === null || _a === void 0 ? void 0 : _a.description) || 'No description found in action.yml'; - } -} -exports.ActionYamlReader = ActionYamlReader; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ActionYamlReader = void 0; +const fs_1 = __importDefault(__nccwpck_require__(57147)); +const path_1 = __importDefault(__nccwpck_require__(71017)); +const yaml_1 = __importDefault(__nccwpck_require__(44603)); +class ActionYamlReader { + constructor() { + let filename = `action.yml`; + if (!fs_1.default.existsSync(filename)) { + filename = path_1.default.join(__dirname, `..`, filename); + } + this.actionYamlParsed = yaml_1.default.parse(fs_1.default.readFileSync(filename).toString()); + } + GetActionYamlValue(key) { + var _a; + return ((_a = this.actionYamlParsed.inputs[key]) === null || _a === void 0 ? void 0 : _a.description) || 'No description found in action.yml'; + } +} +exports.ActionYamlReader = ActionYamlReader; /***/ }), @@ -3674,45 +3674,45 @@ exports.ActionYamlReader = ActionYamlReader; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.GitRepoReader = void 0; -const console_1 = __nccwpck_require__(96206); -const system_1 = __importDefault(__nccwpck_require__(62177)); -const fs_1 = __importDefault(__nccwpck_require__(57147)); -const cloud_runner_system_1 = __nccwpck_require__(66879); -class GitRepoReader { - static GetSha() { - return ''; - } - static GetRemote() { - return __awaiter(this, void 0, void 0, function* () { - return (yield cloud_runner_system_1.CloudRunnerSystem.Run(`git remote -v`)) - .split(' ')[1] - .split('https://github.com/')[1] - .split('.git')[0]; - }); - } - static GetBranch() { - return __awaiter(this, void 0, void 0, function* () { - console_1.assert(fs_1.default.existsSync(`.git`)); - return (yield system_1.default.run(`git branch`, [], {}, false)).split('*')[1].split(`\n`)[0].replace(/ /g, ``); - }); - } -} -exports.GitRepoReader = GitRepoReader; + +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.GitRepoReader = void 0; +const console_1 = __nccwpck_require__(96206); +const system_1 = __importDefault(__nccwpck_require__(62177)); +const fs_1 = __importDefault(__nccwpck_require__(57147)); +const cloud_runner_system_1 = __nccwpck_require__(66879); +class GitRepoReader { + static GetSha() { + return ''; + } + static GetRemote() { + return __awaiter(this, void 0, void 0, function* () { + return (yield cloud_runner_system_1.CloudRunnerSystem.Run(`git remote -v`)) + .split(' ')[1] + .split('https://github.com/')[1] + .split('.git')[0]; + }); + } + static GetBranch() { + return __awaiter(this, void 0, void 0, function* () { + console_1.assert(fs_1.default.existsSync(`.git`)); + return (yield system_1.default.run(`git branch`, [], {}, false)).split('*')[1].split(`\n`)[0].replace(/ /g, ``); + }); + } +} +exports.GitRepoReader = GitRepoReader; /***/ }), @@ -3721,60 +3721,60 @@ exports.GitRepoReader = GitRepoReader; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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.GithubCliReader = void 0; -const cloud_runner_system_1 = __nccwpck_require__(66879); -const core = __importStar(__nccwpck_require__(42186)); -class GithubCliReader { - static GetGitHubAuthToken() { - return __awaiter(this, void 0, void 0, function* () { - try { - const authStatus = yield cloud_runner_system_1.CloudRunnerSystem.Run(`gh auth status`, true); - if (authStatus.includes('You are not logged') || authStatus === '') { - return ''; - } - return (yield cloud_runner_system_1.CloudRunnerSystem.Run(`gh auth status -t`)) - .split(`Token: `)[1] - .replace(/ /g, '') - .replace(/\n/g, ''); - } - catch (error) { - core.info(error || 'Failed to get github auth token from gh cli'); - return ''; - } - }); - } -} -exports.GithubCliReader = GithubCliReader; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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.GithubCliReader = void 0; +const cloud_runner_system_1 = __nccwpck_require__(66879); +const core = __importStar(__nccwpck_require__(42186)); +class GithubCliReader { + static GetGitHubAuthToken() { + return __awaiter(this, void 0, void 0, function* () { + try { + const authStatus = yield cloud_runner_system_1.CloudRunnerSystem.Run(`gh auth status`, true); + if (authStatus.includes('You are not logged') || authStatus === '') { + return ''; + } + return (yield cloud_runner_system_1.CloudRunnerSystem.Run(`gh auth status -t`)) + .split(`Token: `)[1] + .replace(/ /g, '') + .replace(/\n/g, ''); + } + catch (error) { + core.info(error || 'Failed to get github auth token from gh cli'); + return ''; + } + }); + } +} +exports.GithubCliReader = GithubCliReader; /***/ }), @@ -3783,20 +3783,20 @@ exports.GithubCliReader = GithubCliReader; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.ReadLicense = void 0; -const path_1 = __importDefault(__nccwpck_require__(71017)); -const fs_1 = __importDefault(__nccwpck_require__(57147)); -const yaml_1 = __importDefault(__nccwpck_require__(44603)); -function ReadLicense() { - const pipelineFile = path_1.default.join(__dirname, `.github`, `workflows`, `cloud-runner-k8s-pipeline.yml`); - return fs_1.default.existsSync(pipelineFile) ? yaml_1.default.parse(fs_1.default.readFileSync(pipelineFile, 'utf8')).env.UNITY_LICENSE : ''; -} -exports.ReadLicense = ReadLicense; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.ReadLicense = void 0; +const path_1 = __importDefault(__nccwpck_require__(71017)); +const fs_1 = __importDefault(__nccwpck_require__(57147)); +const yaml_1 = __importDefault(__nccwpck_require__(44603)); +function ReadLicense() { + const pipelineFile = path_1.default.join(__dirname, `.github`, `workflows`, `cloud-runner-k8s-pipeline.yml`); + return fs_1.default.existsSync(pipelineFile) ? yaml_1.default.parse(fs_1.default.readFileSync(pipelineFile, 'utf8')).env.UNITY_LICENSE : ''; +} +exports.ReadLicense = ReadLicense; /***/ }), @@ -3805,212 +3805,212 @@ exports.ReadLicense = ReadLicense; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const fs_1 = __importDefault(__nccwpck_require__(57147)); -const path_1 = __importDefault(__nccwpck_require__(71017)); -const git_repo_1 = __nccwpck_require__(24271); -const github_cli_1 = __nccwpck_require__(44990); -const platform_1 = __importDefault(__nccwpck_require__(9707)); -const core = __nccwpck_require__(42186); -/** - * Input variables specified in workflows using "with" prop. - * - * Note that input is always passed as a string, even booleans. - */ -class Input { - // also enabled debug logging for cloud runner - static get cloudRunnerTests() { - return Input.getInput(`cloudRunnerTests`) || Input.getInput(`CloudRunnerTests`) || false; - } - static getInput(query) { - const coreInput = core.getInput(query); - if (Input.githubInputEnabled && coreInput && coreInput !== '') { - return coreInput; - } - return Input.cliOptions !== undefined && Input.cliOptions[query] !== undefined - ? Input.cliOptions[query] - : process.env[query] !== undefined - ? process.env[query] - : process.env[Input.ToEnvVarFormat(query)] - ? process.env[Input.ToEnvVarFormat(query)] - : ''; - } - static get region() { - return Input.getInput('region') || 'eu-west-2'; - } - static githubRepo() { - return __awaiter(this, void 0, void 0, function* () { - return (Input.getInput('GITHUB_REPOSITORY') || - Input.getInput('GITHUB_REPO') || - (yield git_repo_1.GitRepoReader.GetRemote()) || - 'game-ci/unity-builder'); - }); - } - static branch() { - return __awaiter(this, void 0, void 0, function* () { - if (yield git_repo_1.GitRepoReader.GetBranch()) { - return yield git_repo_1.GitRepoReader.GetBranch(); - } - else if (Input.getInput(`GITHUB_REF`)) { - return Input.getInput(`GITHUB_REF`).replace('refs/', '').replace(`head/`, ''); - } - else if (Input.getInput('branch')) { - return Input.getInput('branch'); - } - else { - return 'main'; - } - }); - } - static get gitSha() { - if (Input.getInput(`GITHUB_SHA`)) { - return Input.getInput(`GITHUB_SHA`); - } - else if (Input.getInput(`GitSHA`)) { - return Input.getInput(`GitSHA`); - } - else if (git_repo_1.GitRepoReader.GetSha()) { - return git_repo_1.GitRepoReader.GetSha(); - } - } - static get runNumber() { - return Input.getInput('GITHUB_RUN_NUMBER') || '0'; - } - static get targetPlatform() { - return Input.getInput('targetPlatform') || platform_1.default.default; - } - static get unityVersion() { - return Input.getInput('unityVersion') || 'auto'; - } - static get customImage() { - return Input.getInput('customImage'); - } - static get projectPath() { - const input = Input.getInput('projectPath'); - const rawProjectPath = input - ? input - : fs_1.default.existsSync(path_1.default.join('test-project', 'ProjectSettings', 'ProjectVersion.txt')) && - !fs_1.default.existsSync(path_1.default.join('ProjectSettings', 'ProjectVersion.txt')) - ? 'test-project' - : '.'; - return rawProjectPath.replace(/\/$/, ''); - } - static get buildName() { - return Input.getInput('buildName') || this.targetPlatform; - } - static get buildsPath() { - return Input.getInput('buildsPath') || 'build'; - } - static get buildMethod() { - return Input.getInput('buildMethod') || ''; // processed in docker file - } - static get customParameters() { - return Input.getInput('customParameters') || ''; - } - static get versioningStrategy() { - return Input.getInput('versioning') || 'Semantic'; - } - static get specifiedVersion() { - return Input.getInput('version') || ''; - } - static get androidVersionCode() { - return Input.getInput('androidVersionCode'); - } - static get androidAppBundle() { - const input = Input.getInput('androidAppBundle') || false; - return input === 'true'; - } - static get androidKeystoreName() { - return Input.getInput('androidKeystoreName') || ''; - } - static get androidKeystoreBase64() { - return Input.getInput('androidKeystoreBase64') || ''; - } - static get androidKeystorePass() { - return Input.getInput('androidKeystorePass') || ''; - } - static get androidKeyaliasName() { - return Input.getInput('androidKeyaliasName') || ''; - } - static get androidKeyaliasPass() { - return Input.getInput('androidKeyaliasPass') || ''; - } - static get androidTargetSdkVersion() { - return core.getInput('androidTargetSdkVersion') || ''; - } - static get sshAgent() { - return Input.getInput('sshAgent') || ''; - } - static gitPrivateToken() { - return __awaiter(this, void 0, void 0, function* () { - return core.getInput('gitPrivateToken') || (yield Input.githubToken()); - }); - } - static get chownFilesTo() { - return Input.getInput('chownFilesTo') || ''; - } - static get allowDirtyBuild() { - const input = Input.getInput('allowDirtyBuild') || false; - return input === 'true'; - } - static get postBuildSteps() { - return Input.getInput('postBuildSteps') || ''; - } - static get preBuildSteps() { - return Input.getInput('preBuildSteps') || ''; - } - static get customJob() { - return Input.getInput('customJob') || ''; - } - static get awsBaseStackName() { - return Input.getInput('awsBaseStackName') || 'game-ci'; - } - static get cloudRunnerCluster() { - return Input.getInput('cloudRunnerCluster') || 'local'; - } - static get cloudRunnerCpu() { - return Input.getInput('cloudRunnerCpu') || '1.0'; - } - static get cloudRunnerMemory() { - return Input.getInput('cloudRunnerMemory') || '750M'; - } - static githubToken() { - return __awaiter(this, void 0, void 0, function* () { - return Input.getInput('githubToken') || (yield github_cli_1.GithubCliReader.GetGitHubAuthToken()) || ''; - }); - } - static get kubeConfig() { - return Input.getInput('kubeConfig') || ''; - } - static get kubeVolume() { - return Input.getInput('kubeVolume') || ''; - } - static get kubeVolumeSize() { - return Input.getInput('kubeVolumeSize') || '5Gi'; - } - static ToEnvVarFormat(input) { - return input - .replace(/([A-Z])/g, ' $1') - .trim() - .toUpperCase() - .replace(/ /g, '_'); - } -} -Input.githubInputEnabled = true; -exports["default"] = Input; + +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const fs_1 = __importDefault(__nccwpck_require__(57147)); +const path_1 = __importDefault(__nccwpck_require__(71017)); +const git_repo_1 = __nccwpck_require__(24271); +const github_cli_1 = __nccwpck_require__(44990); +const platform_1 = __importDefault(__nccwpck_require__(9707)); +const core = __nccwpck_require__(42186); +/** + * Input variables specified in workflows using "with" prop. + * + * Note that input is always passed as a string, even booleans. + */ +class Input { + // also enabled debug logging for cloud runner + static get cloudRunnerTests() { + return Input.getInput(`cloudRunnerTests`) || Input.getInput(`CloudRunnerTests`) || false; + } + static getInput(query) { + const coreInput = core.getInput(query); + if (Input.githubInputEnabled && coreInput && coreInput !== '') { + return coreInput; + } + return Input.cliOptions !== undefined && Input.cliOptions[query] !== undefined + ? Input.cliOptions[query] + : process.env[query] !== undefined + ? process.env[query] + : process.env[Input.ToEnvVarFormat(query)] + ? process.env[Input.ToEnvVarFormat(query)] + : ''; + } + static get region() { + return Input.getInput('region') || 'eu-west-2'; + } + static githubRepo() { + return __awaiter(this, void 0, void 0, function* () { + return (Input.getInput('GITHUB_REPOSITORY') || + Input.getInput('GITHUB_REPO') || + (yield git_repo_1.GitRepoReader.GetRemote()) || + 'game-ci/unity-builder'); + }); + } + static branch() { + return __awaiter(this, void 0, void 0, function* () { + if (yield git_repo_1.GitRepoReader.GetBranch()) { + return yield git_repo_1.GitRepoReader.GetBranch(); + } + else if (Input.getInput(`GITHUB_REF`)) { + return Input.getInput(`GITHUB_REF`).replace('refs/', '').replace(`head/`, ''); + } + else if (Input.getInput('branch')) { + return Input.getInput('branch'); + } + else { + return 'main'; + } + }); + } + static get gitSha() { + if (Input.getInput(`GITHUB_SHA`)) { + return Input.getInput(`GITHUB_SHA`); + } + else if (Input.getInput(`GitSHA`)) { + return Input.getInput(`GitSHA`); + } + else if (git_repo_1.GitRepoReader.GetSha()) { + return git_repo_1.GitRepoReader.GetSha(); + } + } + static get runNumber() { + return Input.getInput('GITHUB_RUN_NUMBER') || '0'; + } + static get targetPlatform() { + return Input.getInput('targetPlatform') || platform_1.default.default; + } + static get unityVersion() { + return Input.getInput('unityVersion') || 'auto'; + } + static get customImage() { + return Input.getInput('customImage'); + } + static get projectPath() { + const input = Input.getInput('projectPath'); + const rawProjectPath = input + ? input + : fs_1.default.existsSync(path_1.default.join('test-project', 'ProjectSettings', 'ProjectVersion.txt')) && + !fs_1.default.existsSync(path_1.default.join('ProjectSettings', 'ProjectVersion.txt')) + ? 'test-project' + : '.'; + return rawProjectPath.replace(/\/$/, ''); + } + static get buildName() { + return Input.getInput('buildName') || this.targetPlatform; + } + static get buildsPath() { + return Input.getInput('buildsPath') || 'build'; + } + static get buildMethod() { + return Input.getInput('buildMethod') || ''; // processed in docker file + } + static get customParameters() { + return Input.getInput('customParameters') || ''; + } + static get versioningStrategy() { + return Input.getInput('versioning') || 'Semantic'; + } + static get specifiedVersion() { + return Input.getInput('version') || ''; + } + static get androidVersionCode() { + return Input.getInput('androidVersionCode'); + } + static get androidAppBundle() { + const input = Input.getInput('androidAppBundle') || false; + return input === 'true'; + } + static get androidKeystoreName() { + return Input.getInput('androidKeystoreName') || ''; + } + static get androidKeystoreBase64() { + return Input.getInput('androidKeystoreBase64') || ''; + } + static get androidKeystorePass() { + return Input.getInput('androidKeystorePass') || ''; + } + static get androidKeyaliasName() { + return Input.getInput('androidKeyaliasName') || ''; + } + static get androidKeyaliasPass() { + return Input.getInput('androidKeyaliasPass') || ''; + } + static get androidTargetSdkVersion() { + return core.getInput('androidTargetSdkVersion') || ''; + } + static get sshAgent() { + return Input.getInput('sshAgent') || ''; + } + static gitPrivateToken() { + return __awaiter(this, void 0, void 0, function* () { + return core.getInput('gitPrivateToken') || (yield Input.githubToken()); + }); + } + static get chownFilesTo() { + return Input.getInput('chownFilesTo') || ''; + } + static get allowDirtyBuild() { + const input = Input.getInput('allowDirtyBuild') || false; + return input === 'true'; + } + static get postBuildSteps() { + return Input.getInput('postBuildSteps') || ''; + } + static get preBuildSteps() { + return Input.getInput('preBuildSteps') || ''; + } + static get customJob() { + return Input.getInput('customJob') || ''; + } + static get awsBaseStackName() { + return Input.getInput('awsBaseStackName') || 'game-ci'; + } + static get cloudRunnerCluster() { + return Input.getInput('cloudRunnerCluster') || 'local'; + } + static get cloudRunnerCpu() { + return Input.getInput('cloudRunnerCpu') || '1.0'; + } + static get cloudRunnerMemory() { + return Input.getInput('cloudRunnerMemory') || '750M'; + } + static githubToken() { + return __awaiter(this, void 0, void 0, function* () { + return Input.getInput('githubToken') || (yield github_cli_1.GithubCliReader.GetGitHubAuthToken()) || ''; + }); + } + static get kubeConfig() { + return Input.getInput('kubeConfig') || ''; + } + static get kubeVolume() { + return Input.getInput('kubeVolume') || ''; + } + static get kubeVolumeSize() { + return Input.getInput('kubeVolumeSize') || '5Gi'; + } + static ToEnvVarFormat(input) { + return input + .replace(/([A-Z])/g, ' $1') + .trim() + .toUpperCase() + .replace(/ /g, '_'); + } +} +Input.githubInputEnabled = true; +exports["default"] = Input; /***/ }), @@ -4019,29 +4019,29 @@ exports["default"] = Input; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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 })); -const exec_1 = __nccwpck_require__(71514); -class MacBuilder { - static run(actionFolder, workspace, buildParameters, silent = false) { - return __awaiter(this, void 0, void 0, function* () { - yield exec_1.exec('bash', [`${actionFolder}/platforms/mac/entrypoint.sh`], { - silent, - ignoreReturnCode: true, - }); - }); - } -} -exports["default"] = MacBuilder; + +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 })); +const exec_1 = __nccwpck_require__(71514); +class MacBuilder { + static run(actionFolder, workspace, buildParameters, silent = false) { + return __awaiter(this, void 0, void 0, function* () { + yield exec_1.exec('bash', [`${actionFolder}/platforms/mac/entrypoint.sh`], { + silent, + ignoreReturnCode: true, + }); + }); + } +} +exports["default"] = MacBuilder; /***/ }), @@ -4050,26 +4050,26 @@ exports["default"] = MacBuilder; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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 })); -const core = __nccwpck_require__(42186); -class Output { - static setBuildVersion(buildVersion) { - return __awaiter(this, void 0, void 0, function* () { - yield core.setOutput('buildVersion', buildVersion); - }); - } -} -exports["default"] = Output; + +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 })); +const core = __nccwpck_require__(42186); +class Output { + static setBuildVersion(buildVersion) { + return __awaiter(this, void 0, void 0, function* () { + yield core.setOutput('buildVersion', buildVersion); + }); + } +} +exports["default"] = Output; /***/ }), @@ -4078,39 +4078,39 @@ exports["default"] = Output; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const platform_setup_1 = __nccwpck_require__(2014); -const validate_windows_1 = __importDefault(__nccwpck_require__(41563)); -class PlatformSetup { - static setup(buildParameters, actionFolder) { - return __awaiter(this, void 0, void 0, function* () { - switch (process.platform) { - case 'win32': - validate_windows_1.default.validate(buildParameters); - platform_setup_1.SetupWindows.setup(buildParameters); - break; - case 'darwin': - yield platform_setup_1.SetupMac.setup(buildParameters, actionFolder); - break; - //Add other baseOS's here - } - }); - } -} -exports["default"] = PlatformSetup; + +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const platform_setup_1 = __nccwpck_require__(2014); +const validate_windows_1 = __importDefault(__nccwpck_require__(41563)); +class PlatformSetup { + static setup(buildParameters, actionFolder) { + return __awaiter(this, void 0, void 0, function* () { + switch (process.platform) { + case 'win32': + validate_windows_1.default.validate(buildParameters); + platform_setup_1.SetupWindows.setup(buildParameters); + break; + case 'darwin': + yield platform_setup_1.SetupMac.setup(buildParameters, actionFolder); + break; + //Add other baseOS's here + } + }); + } +} +exports["default"] = PlatformSetup; /***/ }), @@ -4119,16 +4119,16 @@ exports["default"] = PlatformSetup; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -exports.SetupMac = exports.SetupWindows = void 0; -const setup_windows_1 = __importDefault(__nccwpck_require__(37449)); -exports.SetupWindows = setup_windows_1.default; -const setup_mac_1 = __importDefault(__nccwpck_require__(22466)); -exports.SetupMac = setup_mac_1.default; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +exports.SetupMac = exports.SetupWindows = void 0; +const setup_windows_1 = __importDefault(__nccwpck_require__(37449)); +exports.SetupWindows = setup_windows_1.default; +const setup_mac_1 = __importDefault(__nccwpck_require__(22466)); +exports.SetupMac = setup_mac_1.default; /***/ }), @@ -4137,93 +4137,93 @@ exports.SetupMac = setup_mac_1.default; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const unity_changeset_1 = __nccwpck_require__(4635); -const exec_1 = __nccwpck_require__(71514); -const fs_1 = __importDefault(__nccwpck_require__(57147)); -class SetupMac { - static setup(buildParameters, actionFolder) { - return __awaiter(this, void 0, void 0, function* () { - const unityEditorPath = `/Applications/Unity/Hub/Editor/${buildParameters.version}/Unity.app/Contents/MacOS/Unity`; - // Only install unity if the editor doesn't already exist - if (!fs_1.default.existsSync(unityEditorPath)) { - yield SetupMac.installUnityHub(); - yield SetupMac.installUnity(buildParameters); - } - yield SetupMac.setEnvironmentVariables(buildParameters, actionFolder); - }); - } - static installUnityHub(silent = false) { - return __awaiter(this, void 0, void 0, function* () { - const command = 'brew install unity-hub'; - if (!fs_1.default.existsSync(this.unityHubPath)) { - // Ignoring return code because the log seems to overflow the internal buffer which triggers - // a false error - const errorCode = yield exec_1.exec(command, undefined, { silent, ignoreReturnCode: true }); - if (errorCode) { - throw new Error(`There was an error installing the Unity Editor. See logs above for details.`); - } - } - }); - } - static installUnity(buildParameters, silent = false) { - return __awaiter(this, void 0, void 0, function* () { - const unityChangeset = yield unity_changeset_1.getUnityChangeset(buildParameters.version); + +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const unity_changeset_1 = __nccwpck_require__(4635); +const exec_1 = __nccwpck_require__(71514); +const fs_1 = __importDefault(__nccwpck_require__(57147)); +class SetupMac { + static setup(buildParameters, actionFolder) { + return __awaiter(this, void 0, void 0, function* () { + const unityEditorPath = `/Applications/Unity/Hub/Editor/${buildParameters.version}/Unity.app/Contents/MacOS/Unity`; + // Only install unity if the editor doesn't already exist + if (!fs_1.default.existsSync(unityEditorPath)) { + yield SetupMac.installUnityHub(); + yield SetupMac.installUnity(buildParameters); + } + yield SetupMac.setEnvironmentVariables(buildParameters, actionFolder); + }); + } + static installUnityHub(silent = false) { + return __awaiter(this, void 0, void 0, function* () { + const command = 'brew install unity-hub'; + if (!fs_1.default.existsSync(this.unityHubPath)) { + // Ignoring return code because the log seems to overflow the internal buffer which triggers + // a false error + const errorCode = yield exec_1.exec(command, undefined, { silent, ignoreReturnCode: true }); + if (errorCode) { + throw new Error(`There was an error installing the Unity Editor. See logs above for details.`); + } + } + }); + } + static installUnity(buildParameters, silent = false) { + return __awaiter(this, void 0, void 0, function* () { + const unityChangeset = yield unity_changeset_1.getUnityChangeset(buildParameters.version); const command = `${this.unityHubPath} -- --headless install \ --version ${buildParameters.version} \ --changeset ${unityChangeset.changeset} \ --module mac-il2cpp \ - --childModules`; - // Ignoring return code because the log seems to overflow the internal buffer which triggers - // a false error - const errorCode = yield exec_1.exec(command, undefined, { silent, ignoreReturnCode: true }); - if (errorCode) { - throw new Error(`There was an error installing the Unity Editor. See logs above for details.`); - } - }); - } - static setEnvironmentVariables(buildParameters, actionFolder) { - return __awaiter(this, void 0, void 0, function* () { - // Need to set environment variables from here because we execute - // the scripts on the host for mac - process.env.ACTION_FOLDER = actionFolder; - process.env.UNITY_VERSION = buildParameters.version; - process.env.UNITY_SERIAL = buildParameters.unitySerial; - process.env.PROJECT_PATH = buildParameters.projectPath; - process.env.BUILD_TARGET = buildParameters.platform; - process.env.BUILD_NAME = buildParameters.buildName; - process.env.BUILD_PATH = buildParameters.buildPath; - process.env.BUILD_FILE = buildParameters.buildFile; - process.env.BUILD_METHOD = buildParameters.buildMethod; - process.env.VERSION = buildParameters.buildVersion; - process.env.ANDROID_VERSION_CODE = buildParameters.androidVersionCode; - process.env.ANDROID_KEYSTORE_NAME = buildParameters.androidKeystoreName; - process.env.ANDROID_KEYSTORE_BASE64 = buildParameters.androidKeystoreBase64; - process.env.ANDROID_KEYSTORE_PASS = buildParameters.androidKeystorePass; - process.env.ANDROID_KEYALIAS_NAME = buildParameters.androidKeyaliasName; - process.env.ANDROID_KEYALIAS_PASS = buildParameters.androidKeyaliasPass; - process.env.ANDROID_TARGET_SDK_VERSION = buildParameters.androidTargetSdkVersion; - process.env.ANDROID_SDK_MANAGER_PARAMETERS = buildParameters.androidSdkManagerParameters; - process.env.CUSTOM_PARAMETERS = buildParameters.customParameters; - process.env.CHOWN_FILES_TO = buildParameters.chownFilesTo; - }); - } -} -SetupMac.unityHubPath = `"/Applications/Unity Hub.app/Contents/MacOS/Unity Hub"`; -exports["default"] = SetupMac; + --childModules`; + // Ignoring return code because the log seems to overflow the internal buffer which triggers + // a false error + const errorCode = yield exec_1.exec(command, undefined, { silent, ignoreReturnCode: true }); + if (errorCode) { + throw new Error(`There was an error installing the Unity Editor. See logs above for details.`); + } + }); + } + static setEnvironmentVariables(buildParameters, actionFolder) { + return __awaiter(this, void 0, void 0, function* () { + // Need to set environment variables from here because we execute + // the scripts on the host for mac + process.env.ACTION_FOLDER = actionFolder; + process.env.UNITY_VERSION = buildParameters.version; + process.env.UNITY_SERIAL = buildParameters.unitySerial; + process.env.PROJECT_PATH = buildParameters.projectPath; + process.env.BUILD_TARGET = buildParameters.platform; + process.env.BUILD_NAME = buildParameters.buildName; + process.env.BUILD_PATH = buildParameters.buildPath; + process.env.BUILD_FILE = buildParameters.buildFile; + process.env.BUILD_METHOD = buildParameters.buildMethod; + process.env.VERSION = buildParameters.buildVersion; + process.env.ANDROID_VERSION_CODE = buildParameters.androidVersionCode; + process.env.ANDROID_KEYSTORE_NAME = buildParameters.androidKeystoreName; + process.env.ANDROID_KEYSTORE_BASE64 = buildParameters.androidKeystoreBase64; + process.env.ANDROID_KEYSTORE_PASS = buildParameters.androidKeystorePass; + process.env.ANDROID_KEYALIAS_NAME = buildParameters.androidKeyaliasName; + process.env.ANDROID_KEYALIAS_PASS = buildParameters.androidKeyaliasPass; + process.env.ANDROID_TARGET_SDK_VERSION = buildParameters.androidTargetSdkVersion; + process.env.ANDROID_SDK_MANAGER_PARAMETERS = buildParameters.androidSdkManagerParameters; + process.env.CUSTOM_PARAMETERS = buildParameters.customParameters; + process.env.CHOWN_FILES_TO = buildParameters.chownFilesTo; + }); + } +} +SetupMac.unityHubPath = `"/Applications/Unity Hub.app/Contents/MacOS/Unity Hub"`; +exports["default"] = SetupMac; /***/ }), @@ -4232,53 +4232,53 @@ exports["default"] = SetupMac; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const exec_1 = __nccwpck_require__(71514); -const fs_1 = __importDefault(__nccwpck_require__(57147)); -class SetupWindows { - static setup(buildParameters) { - return __awaiter(this, void 0, void 0, function* () { - yield SetupWindows.setupWindowsRun(buildParameters.platform); - }); - } - //Setup prerequisite files/folders for a windows-based docker run - static setupWindowsRun(platform, silent = false) { - return __awaiter(this, void 0, void 0, function* () { - if (!fs_1.default.existsSync('c:/regkeys')) { - fs_1.default.mkdirSync('c:/regkeys'); - } - switch (platform) { - //These all need the Windows 10 SDK - case 'StandaloneWindows': - case 'StandaloneWindows64': - case 'WSAPlayer': - this.generateWinSDKRegKeys(silent); - break; - } - }); - } - static generateWinSDKRegKeys(silent = false) { - return __awaiter(this, void 0, void 0, function* () { - // Export registry keys that point to the location of the windows 10 sdk - const exportWinSDKRegKeysCommand = 'reg export "HKLM\\SOFTWARE\\WOW6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0" c:/regkeys/winsdk.reg /y'; - yield exec_1.exec(exportWinSDKRegKeysCommand, undefined, { silent }); - }); - } -} -exports["default"] = SetupWindows; + +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const exec_1 = __nccwpck_require__(71514); +const fs_1 = __importDefault(__nccwpck_require__(57147)); +class SetupWindows { + static setup(buildParameters) { + return __awaiter(this, void 0, void 0, function* () { + yield SetupWindows.setupWindowsRun(buildParameters.platform); + }); + } + //Setup prerequisite files/folders for a windows-based docker run + static setupWindowsRun(platform, silent = false) { + return __awaiter(this, void 0, void 0, function* () { + if (!fs_1.default.existsSync('c:/regkeys')) { + fs_1.default.mkdirSync('c:/regkeys'); + } + switch (platform) { + //These all need the Windows 10 SDK + case 'StandaloneWindows': + case 'StandaloneWindows64': + case 'WSAPlayer': + this.generateWinSDKRegKeys(silent); + break; + } + }); + } + static generateWinSDKRegKeys(silent = false) { + return __awaiter(this, void 0, void 0, function* () { + // Export registry keys that point to the location of the windows 10 sdk + const exportWinSDKRegKeysCommand = 'reg export "HKLM\\SOFTWARE\\WOW6432Node\\Microsoft\\Microsoft SDKs\\Windows\\v10.0" c:/regkeys/winsdk.reg /y'; + yield exec_1.exec(exportWinSDKRegKeysCommand, undefined, { silent }); + }); + } +} +exports["default"] = SetupWindows; /***/ }), @@ -4287,61 +4287,61 @@ exports["default"] = SetupWindows; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const fs_1 = __importDefault(__nccwpck_require__(57147)); -class ValidateWindows { - static validate(buildParameters) { - ValidateWindows.validateWindowsPlatformRequirements(buildParameters.platform); - if (!(process.env.UNITY_EMAIL && process.env.UNITY_PASSWORD)) { + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const fs_1 = __importDefault(__nccwpck_require__(57147)); +class ValidateWindows { + static validate(buildParameters) { + ValidateWindows.validateWindowsPlatformRequirements(buildParameters.platform); + if (!(process.env.UNITY_EMAIL && process.env.UNITY_PASSWORD)) { throw new Error(`Unity email and password must be set for Windows based builds to authenticate the license. Make sure to set them inside UNITY_EMAIL - and UNITY_PASSWORD in Github Secrets and pass them into the environment.`); - } - } - static validateWindowsPlatformRequirements(platform) { - switch (platform) { - case 'StandaloneWindows': - this.checkForVisualStudio(); - this.checkForWin10SDK(); - break; - case 'StandaloneWindows64': - this.checkForVisualStudio(); - this.checkForWin10SDK(); - break; - case 'WSAPlayer': - this.checkForVisualStudio(); - this.checkForWin10SDK(); - break; - case 'tvOS': - this.checkForVisualStudio(); - break; - } - } - static checkForWin10SDK() { - //Check for Windows 10 SDK on runner - const windows10SDKPathExists = fs_1.default.existsSync('C:/Program Files (x86)/Windows Kits'); - if (!windows10SDKPathExists) { + and UNITY_PASSWORD in Github Secrets and pass them into the environment.`); + } + } + static validateWindowsPlatformRequirements(platform) { + switch (platform) { + case 'StandaloneWindows': + this.checkForVisualStudio(); + this.checkForWin10SDK(); + break; + case 'StandaloneWindows64': + this.checkForVisualStudio(); + this.checkForWin10SDK(); + break; + case 'WSAPlayer': + this.checkForVisualStudio(); + this.checkForWin10SDK(); + break; + case 'tvOS': + this.checkForVisualStudio(); + break; + } + } + static checkForWin10SDK() { + //Check for Windows 10 SDK on runner + const windows10SDKPathExists = fs_1.default.existsSync('C:/Program Files (x86)/Windows Kits'); + if (!windows10SDKPathExists) { throw new Error(`Windows 10 SDK not found in default location. Make sure the runner has a Windows 10 SDK installed in the default - location.`); - } - } - static checkForVisualStudio() { - //Note: When upgrading to Server 2022, we will need to move to just "program files" since VS will be 64-bit - const visualStudioInstallPathExists = fs_1.default.existsSync('C:/Program Files (x86)/Microsoft Visual Studio'); - const visualStudioDataPathExists = fs_1.default.existsSync('C:/ProgramData/Microsoft/VisualStudio'); - if (!visualStudioInstallPathExists || !visualStudioDataPathExists) { + location.`); + } + } + static checkForVisualStudio() { + //Note: When upgrading to Server 2022, we will need to move to just "program files" since VS will be 64-bit + const visualStudioInstallPathExists = fs_1.default.existsSync('C:/Program Files (x86)/Microsoft Visual Studio'); + const visualStudioDataPathExists = fs_1.default.existsSync('C:/ProgramData/Microsoft/VisualStudio'); + if (!visualStudioInstallPathExists || !visualStudioDataPathExists) { throw new Error(`Visual Studio not found at the default location. Make sure the runner has Visual Studio installed in the - default location`); - } - } -} -exports["default"] = ValidateWindows; + default location`); + } + } +} +exports["default"] = ValidateWindows; /***/ }), @@ -4350,55 +4350,55 @@ exports["default"] = ValidateWindows; /***/ ((__unused_webpack_module, exports) => { "use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -class Platform { - static get default() { - return Platform.types.StandaloneWindows64; - } - static get types() { - return { - StandaloneOSX: 'StandaloneOSX', - StandaloneWindows: 'StandaloneWindows', - StandaloneWindows64: 'StandaloneWindows64', - StandaloneLinux64: 'StandaloneLinux64', - iOS: 'iOS', - Android: 'Android', - WebGL: 'WebGL', - WSAPlayer: 'WSAPlayer', - PS4: 'PS4', - XboxOne: 'XboxOne', - tvOS: 'tvOS', - Switch: 'Switch', - // Unsupported - Lumin: 'Lumin', - BJM: 'BJM', - Stadia: 'Stadia', - Facebook: 'Facebook', - NoTarget: 'NoTarget', - // Test specific - Test: 'Test', - }; - } - static isWindows(platform) { - switch (platform) { - case Platform.types.StandaloneWindows: - case Platform.types.StandaloneWindows64: - return true; - default: - return false; - } - } - static isAndroid(platform) { - switch (platform) { - case Platform.types.Android: - return true; - default: - return false; - } - } -} -exports["default"] = Platform; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +class Platform { + static get default() { + return Platform.types.StandaloneWindows64; + } + static get types() { + return { + StandaloneOSX: 'StandaloneOSX', + StandaloneWindows: 'StandaloneWindows', + StandaloneWindows64: 'StandaloneWindows64', + StandaloneLinux64: 'StandaloneLinux64', + iOS: 'iOS', + Android: 'Android', + WebGL: 'WebGL', + WSAPlayer: 'WSAPlayer', + PS4: 'PS4', + XboxOne: 'XboxOne', + tvOS: 'tvOS', + Switch: 'Switch', + // Unsupported + Lumin: 'Lumin', + BJM: 'BJM', + Stadia: 'Stadia', + Facebook: 'Facebook', + NoTarget: 'NoTarget', + // Test specific + Test: 'Test', + }; + } + static isWindows(platform) { + switch (platform) { + case Platform.types.StandaloneWindows: + case Platform.types.StandaloneWindows64: + return true; + default: + return false; + } + } + static isAndroid(platform) { + switch (platform) { + case Platform.types.Android: + return true; + default: + return false; + } + } +} +exports["default"] = Platform; /***/ }), @@ -4407,28 +4407,28 @@ exports["default"] = Platform; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const input_1 = __importDefault(__nccwpck_require__(91933)); -const unity_1 = __importDefault(__nccwpck_require__(70498)); -const action_1 = __importDefault(__nccwpck_require__(89088)); -class Project { - static get relativePath() { - const { projectPath } = input_1.default; - return `${projectPath}`; - } - static get absolutePath() { - const { workspace } = action_1.default; - return `${workspace}/${this.relativePath}`; - } - static get libraryFolder() { - return `${this.relativePath}/${unity_1.default.libraryFolder}`; - } -} -exports["default"] = Project; + +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const input_1 = __importDefault(__nccwpck_require__(91933)); +const unity_1 = __importDefault(__nccwpck_require__(70498)); +const action_1 = __importDefault(__nccwpck_require__(89088)); +class Project { + static get relativePath() { + const { projectPath } = input_1.default; + return `${projectPath}`; + } + static get absolutePath() { + const { workspace } = action_1.default; + return `${workspace}/${this.relativePath}`; + } + static get libraryFolder() { + return `${this.relativePath}/${unity_1.default.libraryFolder}`; + } +} +exports["default"] = Project; /***/ }), @@ -4437,92 +4437,95 @@ exports["default"] = Project; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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 })); -const core = __importStar(__nccwpck_require__(42186)); -const exec_1 = __nccwpck_require__(71514); -class System { - static run(command, arguments_ = [], options = {}, shouldLog = true) { - return __awaiter(this, void 0, void 0, function* () { - let result = ''; - let error = ''; - let debug = ''; - const listeners = { - stdout: (dataBuffer) => { - result += dataBuffer.toString(); - }, - stderr: (dataBuffer) => { - error += dataBuffer.toString(); - }, - debug: (dataString) => { - debug += dataString.toString(); - }, - }; - const showOutput = () => { - if (debug !== '' && shouldLog) { - core.debug(debug); - } - if (result !== '' && shouldLog) { - core.info(result); - } - if (error !== '' && shouldLog) { - core.warning(error); - } - }; - const throwContextualError = (message) => { - let commandAsString = command; - if (Array.isArray(arguments_)) { - commandAsString += ` ${arguments_.join(' ')}`; - } - else if (typeof arguments_ === 'string') { - commandAsString += ` ${arguments_}`; - } - throw new Error(`Failed to run "${commandAsString}".\n ${message}`); - }; - try { - const exitCode = yield exec_1.exec(command, arguments_, Object.assign({ silent: true, listeners }, options)); - showOutput(); - if (exitCode !== 0) { - throwContextualError(`Command returned non-zero exit code.\nError: ${error}`); - } - } - catch (inCommandError) { - showOutput(); - throwContextualError(`In-command error caught: ${inCommandError}`); - } - return result; - }); - } -} -exports["default"] = System; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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 })); +const core = __importStar(__nccwpck_require__(42186)); +const exec_1 = __nccwpck_require__(71514); +class System { + static run(command, arguments_ = [], options = {}, shouldLog = true) { + return __awaiter(this, void 0, void 0, function* () { + let result = ''; + let error = ''; + let debug = ''; + const listeners = { + stdout: (dataBuffer) => { + result += dataBuffer.toString(); + }, + stderr: (dataBuffer) => { + error += dataBuffer.toString(); + }, + debug: (dataString) => { + debug += dataString.toString(); + }, + }; + const showOutput = () => { + if (debug !== '' && shouldLog) { + core.debug(debug); + } + if (result !== '' && shouldLog) { + core.info(result); + } + if (error !== '' && shouldLog) { + core.warning(error); + } + }; + const throwContextualError = (message) => { + let commandAsString = command; + if (Array.isArray(arguments_)) { + commandAsString += ` ${arguments_.join(' ')}`; + } + else if (typeof arguments_ === 'string') { + commandAsString += ` ${arguments_}`; + } + throw new Error(`Failed to run "${commandAsString}".\n ${message}`); + }; + try { + if (command.trim() === '') { + throw new Error(`Failed to execute empty command`); + } + const exitCode = yield exec_1.exec(command, arguments_, Object.assign({ silent: true, listeners }, options)); + showOutput(); + if (exitCode !== 0) { + throwContextualError(`Command returned non-zero exit code.\nError: ${error}`); + } + } + catch (inCommandError) { + showOutput(); + throwContextualError(`In-command error caught: ${inCommandError}`); + } + return result; + }); + } +} +exports["default"] = System; /***/ }), @@ -4531,58 +4534,58 @@ exports["default"] = System; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const fs = __importStar(__nccwpck_require__(57147)); -const path_1 = __importDefault(__nccwpck_require__(71017)); -class UnityVersioning { - static get versionPattern() { - return /20\d{2}\.\d\.\w{3,4}|3/; - } - static determineUnityVersion(projectPath, unityVersion) { - if (unityVersion === 'auto') { - return UnityVersioning.read(projectPath); - } - return unityVersion; - } - static read(projectPath) { - const filePath = path_1.default.join(projectPath, 'ProjectSettings', 'ProjectVersion.txt'); - if (!fs.existsSync(filePath)) { - throw new Error(`Project settings file not found at "${filePath}". Have you correctly set the projectPath?`); - } - return UnityVersioning.parse(fs.readFileSync(filePath, 'utf8')); - } - static parse(projectVersionTxt) { - const matches = projectVersionTxt.match(UnityVersioning.versionPattern); - if (!matches || matches.length === 0) { - throw new Error(`Failed to parse version from "${projectVersionTxt}".`); - } - return matches[0]; - } -} -exports["default"] = UnityVersioning; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const fs = __importStar(__nccwpck_require__(57147)); +const path_1 = __importDefault(__nccwpck_require__(71017)); +class UnityVersioning { + static get versionPattern() { + return /20\d{2}\.\d\.\w{3,4}|3/; + } + static determineUnityVersion(projectPath, unityVersion) { + if (unityVersion === 'auto') { + return UnityVersioning.read(projectPath); + } + return unityVersion; + } + static read(projectPath) { + const filePath = path_1.default.join(projectPath, 'ProjectSettings', 'ProjectVersion.txt'); + if (!fs.existsSync(filePath)) { + throw new Error(`Project settings file not found at "${filePath}". Have you correctly set the projectPath?`); + } + return UnityVersioning.parse(fs.readFileSync(filePath, 'utf8')); + } + static parse(projectVersionTxt) { + const matches = projectVersionTxt.match(UnityVersioning.versionPattern); + if (!matches || matches.length === 0) { + throw new Error(`Failed to parse version from "${projectVersionTxt}".`); + } + return matches[0]; + } +} +exports["default"] = UnityVersioning; /***/ }), @@ -4591,14 +4594,14 @@ exports["default"] = UnityVersioning; /***/ ((__unused_webpack_module, exports) => { "use strict"; - -Object.defineProperty(exports, "__esModule", ({ value: true })); -class Unity { - static get libraryFolder() { - return 'Library'; - } -} -exports["default"] = Unity; + +Object.defineProperty(exports, "__esModule", ({ value: true })); +class Unity { + static get libraryFolder() { + return 'Library'; + } +} +exports["default"] = Unity; /***/ }), @@ -4607,325 +4610,325 @@ exports["default"] = Unity; /***/ (function(__unused_webpack_module, exports, __nccwpck_require__) { "use strict"; - -var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); -}) : (function(o, m, k, k2) { - if (k2 === undefined) k2 = k; - o[k2] = m[k]; -})); -var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { - Object.defineProperty(o, "default", { enumerable: true, value: v }); -}) : function(o, v) { - o["default"] = v; -}); -var __importStar = (this && this.__importStar) || function (mod) { - if (mod && mod.__esModule) return mod; - var result = {}; - if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); - __setModuleDefault(result, mod); - return result; -}; -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()); - }); -}; -var __importDefault = (this && this.__importDefault) || function (mod) { - return (mod && mod.__esModule) ? mod : { "default": mod }; -}; -Object.defineProperty(exports, "__esModule", ({ value: true })); -const core = __importStar(__nccwpck_require__(42186)); -const not_implemented_exception_1 = __importDefault(__nccwpck_require__(26574)); -const validation_error_1 = __importDefault(__nccwpck_require__(97266)); -const input_1 = __importDefault(__nccwpck_require__(91933)); -const system_1 = __importDefault(__nccwpck_require__(62177)); -class Versioning { - static get projectPath() { - return input_1.default.projectPath; - } - static get isDirtyAllowed() { - return input_1.default.allowDirtyBuild; - } - static get strategies() { - return { None: 'None', Semantic: 'Semantic', Tag: 'Tag', Custom: 'Custom' }; - } - /** - * Get the branch name of the (related) branch - */ - static get branch() { - // Todo - use optional chaining (https://github.com/zeit/ncc/issues/534) - return this.headRef || (this.ref && this.ref.slice(11)); - } - /** - * For pull requests we can reliably use GITHUB_HEAD_REF - */ - static get headRef() { - return process.env.GITHUB_HEAD_REF; - } - /** - * For branches GITHUB_REF will have format `refs/heads/feature-branch-1` - */ - static get ref() { - return process.env.GITHUB_REF; - } - /** - * The commit SHA that triggered the workflow run. - */ - static get sha() { - return process.env.GITHUB_SHA; - } - /** - * Maximum number of lines to print when logging the git diff - */ - static get maxDiffLines() { - return 60; - } - /** - * Log up to maxDiffLines of the git diff. - */ - static logDiff() { - return __awaiter(this, void 0, void 0, function* () { - const diffCommand = `git --no-pager diff | head -n ${this.maxDiffLines.toString()}`; - yield system_1.default.run('sh', undefined, { - input: Buffer.from(diffCommand), - silent: true, - }); - }); - } - /** - * Regex to parse version description into separate fields - */ - static get descriptionRegex1() { - return /^v?([\d.]+)-(\d+)-g(\w+)-?(\w+)*/g; - } - static get descriptionRegex2() { - return /^v?([\d.]+-\w+)-(\d+)-g(\w+)-?(\w+)*/g; - } - static get descriptionRegex3() { - return /^v?([\d.]+-\w+\.\d+)-(\d+)-g(\w+)-?(\w+)*/g; - } - static determineVersion(strategy, inputVersion) { - return __awaiter(this, void 0, void 0, function* () { - // Validate input - if (!Object.hasOwnProperty.call(this.strategies, strategy)) { - throw new validation_error_1.default(`Versioning strategy should be one of ${Object.values(this.strategies).join(', ')}.`); - } - let version; - switch (strategy) { - case this.strategies.None: - version = 'none'; - break; - case this.strategies.Custom: - version = inputVersion; - break; - case this.strategies.Semantic: - version = yield this.generateSemanticVersion(); - break; - case this.strategies.Tag: - version = yield this.generateTagVersion(); - break; - default: - throw new not_implemented_exception_1.default(`Strategy ${strategy} is not implemented.`); - } - return version; - }); - } - /** - * Automatically generates a version based on SemVer out of the box. - * - * The version works as follows: `..` for example `0.1.2`. - * - * The latest tag dictates `.` - * The number of commits since that tag dictates``. - * - * @See: https://semver.org/ - */ - static generateSemanticVersion() { - return __awaiter(this, void 0, void 0, function* () { - if (yield this.isShallow()) { - yield this.fetch(); - } - yield this.logDiff(); - if ((yield this.isDirty()) && !this.isDirtyAllowed) { - throw new Error('Branch is dirty. Refusing to base semantic version on uncommitted changes'); - } - if (!(yield this.hasAnyVersionTags())) { - const version = `0.0.${yield this.getTotalNumberOfCommits()}`; - core.info(`Generated version ${version} (no version tags found).`); - return version; - } - const versionDescriptor = yield this.parseSemanticVersion(); - if (versionDescriptor) { - const { tag, commits, hash } = versionDescriptor; - // Ensure 3 digits (commits should always be patch level) - const [major, minor, patch] = `${tag}.${commits}`.split('.'); - const threeDigitVersion = /^\d+$/.test(patch) ? `${major}.${minor}.${patch}` : `${major}.0.${minor}`; - core.info(`Found semantic version ${threeDigitVersion} for ${this.branch}@${hash}`); - return `${threeDigitVersion}`; - } - const version = `0.0.${yield this.getTotalNumberOfCommits()}`; - core.info(`Generated version ${version} (semantic version couldn't be determined).`); - return version; - }); - } - /** - * Generate the proper version for unity based on an existing tag. - */ - static generateTagVersion() { - return __awaiter(this, void 0, void 0, function* () { - let tag = yield this.getTag(); - if (tag.charAt(0) === 'v') { - tag = tag.slice(1); - } - return tag; - }); - } - /** - * Parses the versionDescription into their named parts. - */ - static parseSemanticVersion() { - return __awaiter(this, void 0, void 0, function* () { - const description = yield this.getVersionDescription(); - try { - const [match, tag, commits, hash] = this.descriptionRegex1.exec(description); - return { - match, - tag, - commits, - hash, - }; - } - catch (_a) { - try { - const [match, tag, commits, hash] = this.descriptionRegex2.exec(description); - return { - match, - tag, - commits, - hash, - }; - } - catch (_b) { - try { - const [match, tag, commits, hash] = this.descriptionRegex3.exec(description); - return { - match, - tag, - commits, - hash, - }; - } - catch (_c) { - core.warning(`Failed to parse git describe output or version can not be determined through: "${description}".`); - return false; - } - } - } - }); - } - /** - * Returns whether the repository is shallow. - */ - static isShallow() { - return __awaiter(this, void 0, void 0, function* () { - const output = yield this.git(['rev-parse', '--is-shallow-repository']); - return output !== 'false\n'; - }); - } - /** - * Retrieves refs from the configured remote. - * - * Fetch unshallow for incomplete repository, but fall back to normal fetch. - * - * Note: `--all` should not be used, and would break fetching for push event. - */ - static fetch() { - return __awaiter(this, void 0, void 0, function* () { - try { - yield this.git(['fetch', '--unshallow']); - } - catch (error) { - core.warning(`Fetch --unshallow caught: ${error}`); - yield this.git(['fetch']); - } - }); - } - /** - * Retrieves information about the branch. - * - * Format: `v0.12-24-gd2198ab` - * - * In this format v0.12 is the latest tag, 24 are the number of commits since, and gd2198ab - * identifies the current commit. - */ - static getVersionDescription() { - return __awaiter(this, void 0, void 0, function* () { - return this.git(['describe', '--long', '--tags', '--always', this.sha]); - }); - } - /** - * Returns whether there are uncommitted changes that are not ignored. - */ - static isDirty() { - return __awaiter(this, void 0, void 0, function* () { - const output = yield this.git(['status', '--porcelain']); - const isDirty = output !== ''; - if (isDirty) { - core.warning('Changes were made to the following files and folders:\n'); - core.warning(output); - } - return isDirty; - }); - } - /** - * Get the tag if there is one pointing at HEAD - */ - static getTag() { - return __awaiter(this, void 0, void 0, function* () { - return (yield this.git(['tag', '--points-at', 'HEAD'])).trim(); - }); - } - /** - * Whether or not the repository has any version tags yet. - */ - static hasAnyVersionTags() { - return __awaiter(this, void 0, void 0, function* () { - const numberOfCommitsAsString = yield system_1.default.run('sh', undefined, { - input: Buffer.from('git tag --list --merged HEAD | grep v[0-9]* | wc -l'), - cwd: this.projectPath, - silent: false, - }); - const numberOfCommits = Number.parseInt(numberOfCommitsAsString, 10); - return numberOfCommits !== 0; - }); - } - /** - * Get the total number of commits on head. - * - * Note: HEAD should not be used, as it may be detached, resulting in an additional count. - */ - static getTotalNumberOfCommits() { - return __awaiter(this, void 0, void 0, function* () { - const numberOfCommitsAsString = yield this.git(['rev-list', '--count', this.sha]); - return Number.parseInt(numberOfCommitsAsString, 10); - }); - } - /** - * Run git in the specified project path - */ - static git(arguments_, options = {}) { - return __awaiter(this, void 0, void 0, function* () { - return system_1.default.run('git', arguments_, Object.assign({ cwd: this.projectPath }, options)); - }); - } -} -exports["default"] = Versioning; + +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } }); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { + Object.defineProperty(o, "default", { enumerable: true, value: v }); +}) : function(o, v) { + o["default"] = v; +}); +var __importStar = (this && this.__importStar) || function (mod) { + if (mod && mod.__esModule) return mod; + var result = {}; + if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k); + __setModuleDefault(result, mod); + return result; +}; +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()); + }); +}; +var __importDefault = (this && this.__importDefault) || function (mod) { + return (mod && mod.__esModule) ? mod : { "default": mod }; +}; +Object.defineProperty(exports, "__esModule", ({ value: true })); +const core = __importStar(__nccwpck_require__(42186)); +const not_implemented_exception_1 = __importDefault(__nccwpck_require__(26574)); +const validation_error_1 = __importDefault(__nccwpck_require__(97266)); +const input_1 = __importDefault(__nccwpck_require__(91933)); +const system_1 = __importDefault(__nccwpck_require__(62177)); +class Versioning { + static get projectPath() { + return input_1.default.projectPath; + } + static get isDirtyAllowed() { + return input_1.default.allowDirtyBuild; + } + static get strategies() { + return { None: 'None', Semantic: 'Semantic', Tag: 'Tag', Custom: 'Custom' }; + } + /** + * Get the branch name of the (related) branch + */ + static get branch() { + // Todo - use optional chaining (https://github.com/zeit/ncc/issues/534) + return this.headRef || (this.ref && this.ref.slice(11)); + } + /** + * For pull requests we can reliably use GITHUB_HEAD_REF + */ + static get headRef() { + return process.env.GITHUB_HEAD_REF; + } + /** + * For branches GITHUB_REF will have format `refs/heads/feature-branch-1` + */ + static get ref() { + return process.env.GITHUB_REF; + } + /** + * The commit SHA that triggered the workflow run. + */ + static get sha() { + return process.env.GITHUB_SHA; + } + /** + * Maximum number of lines to print when logging the git diff + */ + static get maxDiffLines() { + return 60; + } + /** + * Log up to maxDiffLines of the git diff. + */ + static logDiff() { + return __awaiter(this, void 0, void 0, function* () { + const diffCommand = `git --no-pager diff | head -n ${this.maxDiffLines.toString()}`; + yield system_1.default.run('sh', undefined, { + input: Buffer.from(diffCommand), + silent: true, + }); + }); + } + /** + * Regex to parse version description into separate fields + */ + static get descriptionRegex1() { + return /^v?([\d.]+)-(\d+)-g(\w+)-?(\w+)*/g; + } + static get descriptionRegex2() { + return /^v?([\d.]+-\w+)-(\d+)-g(\w+)-?(\w+)*/g; + } + static get descriptionRegex3() { + return /^v?([\d.]+-\w+\.\d+)-(\d+)-g(\w+)-?(\w+)*/g; + } + static determineVersion(strategy, inputVersion) { + return __awaiter(this, void 0, void 0, function* () { + // Validate input + if (!Object.hasOwnProperty.call(this.strategies, strategy)) { + throw new validation_error_1.default(`Versioning strategy should be one of ${Object.values(this.strategies).join(', ')}.`); + } + let version; + switch (strategy) { + case this.strategies.None: + version = 'none'; + break; + case this.strategies.Custom: + version = inputVersion; + break; + case this.strategies.Semantic: + version = yield this.generateSemanticVersion(); + break; + case this.strategies.Tag: + version = yield this.generateTagVersion(); + break; + default: + throw new not_implemented_exception_1.default(`Strategy ${strategy} is not implemented.`); + } + return version; + }); + } + /** + * Automatically generates a version based on SemVer out of the box. + * + * The version works as follows: `..` for example `0.1.2`. + * + * The latest tag dictates `.` + * The number of commits since that tag dictates``. + * + * @See: https://semver.org/ + */ + static generateSemanticVersion() { + return __awaiter(this, void 0, void 0, function* () { + if (yield this.isShallow()) { + yield this.fetch(); + } + yield this.logDiff(); + if ((yield this.isDirty()) && !this.isDirtyAllowed) { + throw new Error('Branch is dirty. Refusing to base semantic version on uncommitted changes'); + } + if (!(yield this.hasAnyVersionTags())) { + const version = `0.0.${yield this.getTotalNumberOfCommits()}`; + core.info(`Generated version ${version} (no version tags found).`); + return version; + } + const versionDescriptor = yield this.parseSemanticVersion(); + if (versionDescriptor) { + const { tag, commits, hash } = versionDescriptor; + // Ensure 3 digits (commits should always be patch level) + const [major, minor, patch] = `${tag}.${commits}`.split('.'); + const threeDigitVersion = /^\d+$/.test(patch) ? `${major}.${minor}.${patch}` : `${major}.0.${minor}`; + core.info(`Found semantic version ${threeDigitVersion} for ${this.branch}@${hash}`); + return `${threeDigitVersion}`; + } + const version = `0.0.${yield this.getTotalNumberOfCommits()}`; + core.info(`Generated version ${version} (semantic version couldn't be determined).`); + return version; + }); + } + /** + * Generate the proper version for unity based on an existing tag. + */ + static generateTagVersion() { + return __awaiter(this, void 0, void 0, function* () { + let tag = yield this.getTag(); + if (tag.charAt(0) === 'v') { + tag = tag.slice(1); + } + return tag; + }); + } + /** + * Parses the versionDescription into their named parts. + */ + static parseSemanticVersion() { + return __awaiter(this, void 0, void 0, function* () { + const description = yield this.getVersionDescription(); + try { + const [match, tag, commits, hash] = this.descriptionRegex1.exec(description); + return { + match, + tag, + commits, + hash, + }; + } + catch (_a) { + try { + const [match, tag, commits, hash] = this.descriptionRegex2.exec(description); + return { + match, + tag, + commits, + hash, + }; + } + catch (_b) { + try { + const [match, tag, commits, hash] = this.descriptionRegex3.exec(description); + return { + match, + tag, + commits, + hash, + }; + } + catch (_c) { + core.warning(`Failed to parse git describe output or version can not be determined through: "${description}".`); + return false; + } + } + } + }); + } + /** + * Returns whether the repository is shallow. + */ + static isShallow() { + return __awaiter(this, void 0, void 0, function* () { + const output = yield this.git(['rev-parse', '--is-shallow-repository']); + return output !== 'false\n'; + }); + } + /** + * Retrieves refs from the configured remote. + * + * Fetch unshallow for incomplete repository, but fall back to normal fetch. + * + * Note: `--all` should not be used, and would break fetching for push event. + */ + static fetch() { + return __awaiter(this, void 0, void 0, function* () { + try { + yield this.git(['fetch', '--unshallow']); + } + catch (error) { + core.warning(`Fetch --unshallow caught: ${error}`); + yield this.git(['fetch']); + } + }); + } + /** + * Retrieves information about the branch. + * + * Format: `v0.12-24-gd2198ab` + * + * In this format v0.12 is the latest tag, 24 are the number of commits since, and gd2198ab + * identifies the current commit. + */ + static getVersionDescription() { + return __awaiter(this, void 0, void 0, function* () { + return this.git(['describe', '--long', '--tags', '--always', this.sha]); + }); + } + /** + * Returns whether there are uncommitted changes that are not ignored. + */ + static isDirty() { + return __awaiter(this, void 0, void 0, function* () { + const output = yield this.git(['status', '--porcelain']); + const isDirty = output !== ''; + if (isDirty) { + core.warning('Changes were made to the following files and folders:\n'); + core.warning(output); + } + return isDirty; + }); + } + /** + * Get the tag if there is one pointing at HEAD + */ + static getTag() { + return __awaiter(this, void 0, void 0, function* () { + return (yield this.git(['tag', '--points-at', 'HEAD'])).trim(); + }); + } + /** + * Whether or not the repository has any version tags yet. + */ + static hasAnyVersionTags() { + return __awaiter(this, void 0, void 0, function* () { + const numberOfCommitsAsString = yield system_1.default.run('sh', undefined, { + input: Buffer.from('git tag --list --merged HEAD | grep v[0-9]* | wc -l'), + cwd: this.projectPath, + silent: false, + }); + const numberOfCommits = Number.parseInt(numberOfCommitsAsString, 10); + return numberOfCommits !== 0; + }); + } + /** + * Get the total number of commits on head. + * + * Note: HEAD should not be used, as it may be detached, resulting in an additional count. + */ + static getTotalNumberOfCommits() { + return __awaiter(this, void 0, void 0, function* () { + const numberOfCommitsAsString = yield this.git(['rev-list', '--count', this.sha]); + return Number.parseInt(numberOfCommitsAsString, 10); + }); + } + /** + * Run git in the specified project path + */ + static git(arguments_, options = {}) { + return __awaiter(this, void 0, void 0, function* () { + return system_1.default.run('git', arguments_, Object.assign({ cwd: this.projectPath }, options)); + }); + } +} +exports["default"] = Versioning; /***/ }),