@topgroup/diginext
Version:
A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.
38 lines (37 loc) • 1.8 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.markLongRunningBuildAndReleaseAsFailed = void 0;
const log_1 = require("diginext-utils/dist/xconsole/log");
const mongoose_1 = __importDefault(require("mongoose"));
const entities_1 = require("../../entities");
/**
* Mark all builds & releases with "in_progress" status longer than 1 hour as "failed"
*/
async function markLongRunningBuildAndReleaseAsFailed() {
const BuildModel = mongoose_1.default.model("builds", entities_1.buildSchema, "builds");
const builds = await BuildModel.updateMany({
status: "building",
createdAt: {
// longer than 1 hour
$lt: new Date(Date.now() - 1000 * 60 * 60 * 1),
},
}, { status: "failed", endTime: new Date() });
// console.log("builds.modifiedCount :>> ", builds.modifiedCount);
const ReleaseModel = mongoose_1.default.model("releases", entities_1.releaseSchema, "releases");
const releases = await ReleaseModel.updateMany({
status: "in_progress",
createdAt: {
// longer than 1 hour
$lt: new Date(Date.now() - 1000 * 60 * 60 * 1),
},
}, { status: "failed", endTime: new Date() });
// console.log("releases.modifiedCount :>> ", releases.modifiedCount);
const result = { buildCount: builds.modifiedCount, releaseCount: releases.modifiedCount };
if (result.buildCount > 0 || result.releaseCount > 0)
(0, log_1.logSuccess)("markLongRunningBuildAndReleaseAsFailed() > result :>> ", result);
return result;
}
exports.markLongRunningBuildAndReleaseAsFailed = markLongRunningBuildAndReleaseAsFailed;