Update MineGeo domain and harden process supervision
All checks were successful
Deploy MineGeo to Dokploy / deploy (push) Successful in 5m57s
All checks were successful
Deploy MineGeo to Dokploy / deploy (push) Successful in 5m57s
This commit is contained in:
@@ -13,12 +13,19 @@ function run(args) {
|
||||
windowsHide: true,
|
||||
});
|
||||
children.push(c);
|
||||
c.on("exit", (code) => {
|
||||
c.on("error", (error) => {
|
||||
if (!stopping) {
|
||||
console.error(`Unable to start MineGeo process: ${error.message}`);
|
||||
stop(1);
|
||||
}
|
||||
});
|
||||
c.on("exit", (code, signal) => {
|
||||
if (!stopping) {
|
||||
const reason = code === null ? `signal ${signal ?? "unknown"}` : `code ${code}`;
|
||||
console.error(
|
||||
`MineGeo process exited (${code}). Shutting down companion process.`,
|
||||
`MineGeo process exited (${reason}). Shutting down companion process.`,
|
||||
);
|
||||
stop(code ?? 1);
|
||||
stop(code === 0 ? 1 : (code ?? 1));
|
||||
}
|
||||
});
|
||||
return c;
|
||||
@@ -26,8 +33,30 @@ function run(args) {
|
||||
function stop(code = 0) {
|
||||
if (stopping) return;
|
||||
stopping = true;
|
||||
for (const c of children) c.kill("SIGTERM");
|
||||
setTimeout(() => process.exit(code), 500).unref();
|
||||
const running = (child) => child.exitCode === null && child.signalCode === null;
|
||||
for (const c of children) {
|
||||
if (running(c)) c.kill("SIGTERM");
|
||||
}
|
||||
|
||||
const forceStop = setTimeout(() => {
|
||||
for (const c of children) {
|
||||
if (running(c)) c.kill("SIGKILL");
|
||||
}
|
||||
process.exit(code);
|
||||
}, 8_000);
|
||||
|
||||
Promise.all(
|
||||
children.map(
|
||||
(c) =>
|
||||
new Promise((resolve) => {
|
||||
if (!running(c)) resolve();
|
||||
else c.once("close", resolve);
|
||||
}),
|
||||
),
|
||||
).then(() => {
|
||||
clearTimeout(forceStop);
|
||||
process.exitCode = code;
|
||||
});
|
||||
}
|
||||
process.on("SIGINT", () => stop());
|
||||
process.on("SIGTERM", () => stop());
|
||||
|
||||
@@ -2,7 +2,7 @@ import assert from "node:assert/strict";
|
||||
import { randomUUID, randomBytes } from "node:crypto";
|
||||
import { createClient } from "@supabase/supabase-js";
|
||||
process.loadEnvFile(".env.local");
|
||||
const origin = process.argv[2] || "https://minegeo.vercel.app";
|
||||
const origin = process.argv[2] || "https://minegeo.site";
|
||||
const db = createClient(
|
||||
process.env.NEXT_PUBLIC_SUPABASE_URL,
|
||||
process.env.SUPABASE_SECRET_KEY,
|
||||
|
||||
@@ -6,7 +6,7 @@ import { createClient } from "@supabase/supabase-js";
|
||||
import sharp from "sharp";
|
||||
|
||||
process.loadEnvFile(".env.local");
|
||||
const origin = process.argv[2] || "https://minegeo.vercel.app";
|
||||
const origin = process.argv[2] || "https://minegeo.site";
|
||||
const db = createClient(
|
||||
process.env.NEXT_PUBLIC_SUPABASE_URL,
|
||||
process.env.SUPABASE_SECRET_KEY,
|
||||
|
||||
@@ -4,7 +4,7 @@ import { mkdir, writeFile } from "node:fs/promises";
|
||||
import { createClient } from "@supabase/supabase-js";
|
||||
import sharp from "sharp";
|
||||
process.loadEnvFile(".env.local");
|
||||
const origin = new URL(process.argv[2] || "https://minegeo.vercel.app").origin;
|
||||
const origin = new URL(process.argv[2] || "https://minegeo.site").origin;
|
||||
const db = createClient(
|
||||
process.env.NEXT_PUBLIC_SUPABASE_URL,
|
||||
process.env.SUPABASE_SECRET_KEY,
|
||||
|
||||
@@ -3,7 +3,7 @@ import { randomUUID, randomBytes } from "node:crypto";
|
||||
import { mkdir, writeFile } from "node:fs/promises";
|
||||
import { createClient } from "@supabase/supabase-js";
|
||||
process.loadEnvFile(".env.local");
|
||||
const origin = process.argv[2] || "https://minegeo.vercel.app";
|
||||
const origin = process.argv[2] || "https://minegeo.site";
|
||||
const db = createClient(
|
||||
process.env.NEXT_PUBLIC_SUPABASE_URL,
|
||||
process.env.SUPABASE_SECRET_KEY,
|
||||
|
||||
@@ -8,7 +8,7 @@ import { datasetSchema, faces } from "../shared/protocol";
|
||||
import { readMapArchive } from "../shared/map-archive";
|
||||
|
||||
process.loadEnvFile(".env.local");
|
||||
const origin = new URL(process.argv[2] || "https://minegeo.vercel.app").origin;
|
||||
const origin = new URL(process.argv[2] || "https://minegeo.site").origin;
|
||||
const db = createClient(
|
||||
process.env.NEXT_PUBLIC_SUPABASE_URL!,
|
||||
process.env.SUPABASE_SECRET_KEY!,
|
||||
|
||||
@@ -5,7 +5,7 @@ import { chromium } from "@playwright/test";
|
||||
import { createClient } from "@supabase/supabase-js";
|
||||
|
||||
process.loadEnvFile(".env.local");
|
||||
const origin = process.argv[2] || "https://minegeo.vercel.app",
|
||||
const origin = process.argv[2] || "https://minegeo.site",
|
||||
reportId = process.argv[3];
|
||||
assert.match(
|
||||
reportId ?? "",
|
||||
|
||||
Reference in New Issue
Block a user