UNPKG

@catladder/pipeline

Version:

Panter workflow for cloud CI/CD and DevOps

118 lines (117 loc) • 6.46 kB
"use strict"; var __assign = this && this.__assign || function () { __assign = Object.assign || function (t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __read = this && this.__read || function (o, n) { var m = typeof Symbol === "function" && o[Symbol.iterator]; if (!m) return o; var i = m.call(o), r, ar = [], e; try { while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value); } catch (error) { e = { error: error }; } finally { try { if (r && !r.done && (m = i["return"])) m.call(i); } finally { if (e) throw e.error; } } return ar; }; var __spreadArray = this && this.__spreadArray || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getServiceDeleteScript = exports.getServiceDeployScript = void 0; var getLabels_1 = require("../../../context/getLabels"); var createArgsString_1 = require("../utils/createArgsString"); var getJobOrServiceArgs_1 = require("../utils/getJobOrServiceArgs"); var getServiceName_1 = require("../utils/getServiceName"); var common_1 = require("./common"); var constants_1 = require("./constants"); var healthCheck_1 = require("./healthCheck"); var volumes_1 = require("./volumes"); var getServiceDeployScript = function (context, service, nameSuffix) { var _a, _b, _c, _d, _e, _f; var commonDeployArgs = (0, common_1.getCommonDeployArgs)(context); var serviceName = (0, getServiceName_1.getServiceName)(context); var customConfig = service !== true ? service : undefined; var command = service !== true ? (_a = service === null || service === void 0 ? void 0 : service.command) !== null && _a !== void 0 ? _a : context.build.type !== "disabled" ? context.build.config.startCommand : undefined : undefined; var commandArray = command ? Array.isArray(command) ? command : command.split(" ") : undefined; var fullServiceName = serviceName.concat(nameSuffix !== null && nameSuffix !== void 0 ? nameSuffix : ""); var argsString = createArgsString_1.createArgsString.apply(void 0, __spreadArray([__assign(__assign(__assign({ // command as empty string resets it to default (uses the image's entrypoint) command: commandArray ? '"' + commandArray.join(",") + '"' : '""', args: (0, getJobOrServiceArgs_1.getCloudRunServiceOrJobArgsArg)(customConfig === null || customConfig === void 0 ? void 0 : customConfig.args) }, commonDeployArgs), { image: (_b = customConfig === null || customConfig === void 0 ? void 0 : customConfig.image) !== null && _b !== void 0 ? _b : commonDeployArgs.image, labels: (0, common_1.makeLabelString)(__assign(__assign({}, (0, getLabels_1.getLabels)(context)), { "cloud-run-service-name": fullServiceName })), "env-vars-file": constants_1.ENV_VARS_FILENAME, "min-instances": (_c = customConfig === null || customConfig === void 0 ? void 0 : customConfig.minInstances) !== null && _c !== void 0 ? _c : 0, "max-instances": (_d = customConfig === null || customConfig === void 0 ? void 0 : customConfig.maxInstances) !== null && _d !== void 0 ? _d : 100, "cpu-throttling": (customConfig === null || customConfig === void 0 ? void 0 : customConfig.noCpuThrottling) !== true, cpu: customConfig === null || customConfig === void 0 ? void 0 : customConfig.cpu, memory: customConfig === null || customConfig === void 0 ? void 0 : customConfig.memory, timeout: customConfig === null || customConfig === void 0 ? void 0 : customConfig.timeout, "vpc-connector": customConfig === null || customConfig === void 0 ? void 0 : customConfig.vpcConnector, "vpc-egress": customConfig === null || customConfig === void 0 ? void 0 : customConfig.vpcEgress, network: customConfig === null || customConfig === void 0 ? void 0 : customConfig.network, subnet: customConfig === null || customConfig === void 0 ? void 0 : customConfig.subnet, "use-http2": customConfig === null || customConfig === void 0 ? void 0 : customConfig.http2, "allow-unauthenticated": (_e = customConfig === null || customConfig === void 0 ? void 0 : customConfig.allowUnauthenticated) !== null && _e !== void 0 ? _e : true, ingress: (_f = customConfig === null || customConfig === void 0 ? void 0 : customConfig.ingress) !== null && _f !== void 0 ? _f : "all", "cpu-boost": true, "execution-environment": customConfig === null || customConfig === void 0 ? void 0 : customConfig.executionEnvironment, gpu: customConfig === null || customConfig === void 0 ? void 0 : customConfig.gpu, "gpu-type": customConfig === null || customConfig === void 0 ? void 0 : customConfig.gpuType }), (0, healthCheck_1.healthCheckCliArgs)(customConfig === null || customConfig === void 0 ? void 0 : customConfig.healthCheck))], __read((0, volumes_1.createVolumeConfig)(customConfig === null || customConfig === void 0 ? void 0 : customConfig.volumes, "service")), false)); var version = requiresBeta(customConfig) ? "beta" : undefined; return "".concat((0, common_1.gcloudRunCmd)(version), " deploy ").concat(fullServiceName, " ").concat(argsString); }; exports.getServiceDeployScript = getServiceDeployScript; var getServiceDeleteScript = function (context, serviceSuffix) { var commonArgs = (0, common_1.getCommonCloudRunArgs)(context); var commonArgsString = (0, createArgsString_1.createArgsString)(commonArgs); var serviceName = (0, getServiceName_1.getServiceName)(context); var fullServiceName = serviceSuffix ? "".concat(serviceName, "-").concat(serviceSuffix) : serviceName; return ["".concat((0, common_1.gcloudRunCmd)(), " services delete ").concat(fullServiceName, " ").concat(commonArgsString)]; }; exports.getServiceDeleteScript = getServiceDeleteScript; var requiresBeta = function (config) { if (!config) { return false; } if (config.gpuType) { return true; } if (config.gpu && config.gpu > 0) { return true; } if (config.healthCheck !== undefined) { return true; } return false; };