Deploy to Production / Build & Verify (push) Failing after 5m56s
Ping Search Engines / Notify Search Engines (push) Successful in 2s
Deploy to Production / Pre-Deploy Tests (push) Has been skipped
Deploy to Production / Deploy to Railway (push) Has been skipped
Deploy to Production / Deploy to Render (push) Has been skipped
Deploy to Production / Deploy to VPS (PM2) (push) Has been skipped
Deploy to Production / Deploy to Fly.io (push) Has been skipped
Deploy to Production / Post-Deploy Verification (push) Has been skipped
Deploy to Production / Notify on Failure (push) Successful in 2s
E2E Test Suite / Critical User Journeys (push) Has been skipped
E2E Test Suite / API Integration Tests (push) Has been skipped
E2E Test Suite / Smoke Tests (P0) (push) Failing after 11m26s
E2E Test Suite / Form Interaction Tests (push) Failing after 11m42s
E2E Test Suite / Destructive & Chaos Tests (push) Failing after 12m2s
E2E Test Suite / Cross-Browser Regression (chromium) (push) Failing after 16m14s
E2E Test Suite / Cross-Browser Regression (webkit) (push) Failing after 17m45s
E2E Test Suite / Cross-Browser Regression (firefox) (push) Failing after 25m23s
E2E Test Suite / Security Header Tests (push) Failing after 7m55s
E2E Test Suite / Test Report Summary (push) Failing after 20s
E2E Test Suite / Mobile Device Tests (push) Failing after 2h49m9s
Uptime Monitor / Health & Response Time (push) Failing after 2s
Uptime Monitor / SSL Certificate (push) Successful in 2s
Uptime Monitor / Send Alerts (push) Failing after 3s
Uptime Monitor / Record Uptime Success (push) Has been skipped
38 lines
1.1 KiB
TypeScript
38 lines
1.1 KiB
TypeScript
import type { APIRoute } from 'astro';
|
|
|
|
const startTime = Date.now();
|
|
|
|
export const GET: APIRoute = async () => {
|
|
const uptimeSeconds = Math.floor((Date.now() - startTime) / 1000);
|
|
const memUsage = process.memoryUsage();
|
|
|
|
const payload = {
|
|
status: 'ok',
|
|
timestamp: new Date().toISOString(),
|
|
uptime: uptimeSeconds,
|
|
version: import.meta.env.npm_package_version ?? '1.0.0',
|
|
mode: 'ssr',
|
|
adapter: 'node-standalone',
|
|
domain: 'workroot.in',
|
|
memory: {
|
|
heapUsedMB: Math.round(memUsage.heapUsed / 1024 / 1024),
|
|
heapTotalMB: Math.round(memUsage.heapTotal / 1024 / 1024),
|
|
rssMB: Math.round(memUsage.rss / 1024 / 1024),
|
|
},
|
|
checks: {
|
|
server: 'ok',
|
|
},
|
|
};
|
|
|
|
return new Response(JSON.stringify(payload), {
|
|
status: 200,
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
'Cache-Control': 'no-cache, no-store, must-revalidate',
|
|
'Access-Control-Allow-Origin': 'https://workroot.in',
|
|
'Access-Control-Allow-Methods': 'GET',
|
|
'Access-Control-Allow-Headers': 'Content-Type',
|
|
},
|
|
});
|
|
};
|