UNPKG

@topgroup/diginext

Version:

A BUILD SERVER & CLI to deploy apps to any Kubernetes clusters.

38 lines (37 loc) 1.8 kB
"use strict"; 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;