chore: initial project import
Some checks failed
CI - Production Readiness / Verify (push) Has been cancelled
Some checks failed
CI - Production Readiness / Verify (push) Has been cancelled
This commit is contained in:
45
scripts/ops-smoke.mjs
Executable file
45
scripts/ops-smoke.mjs
Executable file
@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env node
|
||||
import { execSync } from "node:child_process";
|
||||
|
||||
const baseUrl = (process.env.OPS_BASE_URL || process.env.APP_URL || process.env.NEXT_PUBLIC_APP_URL || "").replace(/\/+$/, "");
|
||||
|
||||
function fail(message) {
|
||||
console.error(`[ERROR] ${message}`);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
if (!baseUrl) {
|
||||
fail("Missing OPS_BASE_URL / APP_URL / NEXT_PUBLIC_APP_URL");
|
||||
}
|
||||
|
||||
function run(command, description) {
|
||||
try {
|
||||
execSync(command, { stdio: "inherit", env: process.env, timeout: 120000 });
|
||||
console.log(`[OK] ${description}`);
|
||||
} catch (error) {
|
||||
throw new Error(`${description} failed`);
|
||||
}
|
||||
}
|
||||
|
||||
const jobToken = process.env.CAMPAIGN_RETRY_JOB_TOKEN?.trim() || "";
|
||||
const healthToken = process.env.HEALTHCHECK_TOKEN?.trim() || "";
|
||||
const webhookVerifyToken = process.env.WHATSAPP_WEBHOOK_VERIFY_TOKEN?.trim() || "";
|
||||
const healthHeaders = healthToken ? ` -H "Authorization: Bearer ${healthToken}"` : "";
|
||||
const jobHeaders = jobToken ? ` -H "Authorization: Bearer ${jobToken}"` : "";
|
||||
|
||||
try {
|
||||
run("npm run -s ops:readiness", "Ops readiness");
|
||||
run(`curl -fsS ${healthHeaders} ${baseUrl}/api/health`, "Health endpoint");
|
||||
run(`curl -fsS ${jobHeaders} "${baseUrl}/api/jobs/campaign-retry?token=${encodeURIComponent(jobToken)}"`, "Campaign retry endpoint");
|
||||
if (webhookVerifyToken) {
|
||||
run(
|
||||
`curl -fsS "${baseUrl}/api/webhooks/whatsapp?hub.mode=subscribe&hub.verify_token=${encodeURIComponent(webhookVerifyToken)}&hub.challenge=ok"`,
|
||||
"Webhook verify probe"
|
||||
);
|
||||
} else {
|
||||
console.log("[SKIP] Webhook verify probe (WHATSAPP_WEBHOOK_VERIFY_TOKEN not set)");
|
||||
}
|
||||
console.log("\nSmoke checks passed");
|
||||
} catch (error) {
|
||||
fail(error instanceof Error ? error.message : "Smoke checks failed");
|
||||
}
|
||||
Reference in New Issue
Block a user