@catladder/pipeline
Version:
Panter workflow for cloud CI/CD and DevOps
62 lines (61 loc) • 2.76 kB
JavaScript
;
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;