UNPKG

@catladder/pipeline

Version:

Panter workflow for cloud CI/CD and DevOps

62 lines (61 loc) 2.76 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); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.getDeleteUnusedRevisionsCommands = void 0; var types_1 = require("../types"); var createArgsString_1 = require("./utils/createArgsString"); var getServiceName_1 = require("./utils/getServiceName"); var removeFirstLinesFromCommandOutput_1 = require("./utils/removeFirstLinesFromCommandOutput"); var getListRevisionsCommand = function (context, args) { var _a; var serviceName = (0, getServiceName_1.getServiceName)(context); var deployConfig = (_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config; if (!deployConfig || !(0, types_1.isOfDeployType)(deployConfig, "google-cloudrun")) { // should not happen throw new Error("deploy config is wrong"); } var filterRevisionArgs = __assign({ project: deployConfig.projectId, region: deployConfig.region, // only show inactive revisions service: serviceName, limit: "unlimited", "sort-by": "metadata.creationTimestamp" }, args); // this prints out all inactive images of the given app return "gcloud run revisions list ".concat((0, createArgsString_1.createArgsString)(filterRevisionArgs)); }; var getDeleteUnusedRevisionsCommands = function (context, keep) { var _a; var deployConfig = (_a = context.deploy) === null || _a === void 0 ? void 0 : _a.config; if (!(0, types_1.isOfDeployType)(deployConfig, "google-cloudrun")) { // should not happen throw new Error("deploy config is wrong"); } // this prints out all inactive images of the given app var listAllInactiveRevisionsCmd = getListRevisionsCommand(context, { format: "\"value(name)\"", filter: "'(status.conditions.status=False OR status.conditions.status=Unknown)'" }); // this removes the newest `revisionsToKeep` images var listRevisionsToDeleteCmd = (0, removeFirstLinesFromCommandOutput_1.removeFirstLinesFromCommandOutput)(listAllInactiveRevisionsCmd, keep); var deleteRevisionCmd = "gcloud run revisions delete ".concat((0, createArgsString_1.createArgsString)({ project: deployConfig.projectId, region: deployConfig.region, quiet: true }), " $revisionname "); var deleteRevisionsCmd = "".concat(listRevisionsToDeleteCmd, " | while read -r revisionname; do ").concat(deleteRevisionCmd, "; done"); return [deleteRevisionsCmd]; }; exports.getDeleteUnusedRevisionsCommands = getDeleteUnusedRevisionsCommands;