From 674b8dbd88fc5b48aa605003d615e3256cf18d65 Mon Sep 17 00:00:00 2001 From: codecalm Date: Sat, 12 Sep 2026 19:36:52 +0200 Subject: [PATCH] feat: sharpen the deployment-failed page copy - name the failed step, error count and file in the alert and build steps - next steps as concrete actions --- preview/pages/deployment-failed.astro | 29 +++++++++++++++------------ 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/preview/pages/deployment-failed.astro b/preview/pages/deployment-failed.astro index e6c02771a..f9281104c 100644 --- a/preview/pages/deployment-failed.astro +++ b/preview/pages/deployment-failed.astro @@ -27,15 +27,15 @@ type BuildStep = { } const buildSteps: BuildStep[] = [ - { status: 'success', icon: 'check', name: 'Clone', time: '2s', detail: 'Fetched feat/redis-limiter at 2e77b09' }, - { status: 'success', icon: 'check', name: 'Install', time: '38s', detail: 'pnpm install, 412 packages' }, - { status: 'success', icon: 'check', name: 'Build', time: '24s', detail: 'pnpm build completed' }, + { status: 'success', icon: 'check', name: 'Clone', time: '2s', detail: 'Checked out feat/redis-limiter at 2e77b09' }, + { status: 'success', icon: 'check', name: 'Install', time: '38s', detail: 'Installed 412 packages with pnpm, cache hit' }, + { status: 'success', icon: 'check', name: 'Build', time: '24s', detail: 'Bundled 128 routes, 3.2 MB output' }, { status: 'danger', icon: 'x', name: 'Compile', time: '8s', - detail: 'TypeScript exited with code 2', + detail: 'tsc exited with code 2, 2 errors in 1 file', error: `src/lib/rate-limit.ts:47:12 - error TS2345: Argument of type 'RedisClient' is not assignable to parameter of type 'RateLimiterStore'. @@ -47,13 +47,13 @@ type 'Promise'. Found 2 errors in 1 file.`, }, - { status: 'secondary', name: 'Deploy', time: '-', detail: 'Skipped' }, + { status: 'secondary', name: 'Deploy', time: '-', detail: 'Skipped because Compile failed' }, ] const nextSteps = [ - { title: 'Fix type errors in rate-limit.ts', description: 'Align RedisClient with RateLimiterStore' }, - { title: 'Push to feat/redis-limiter', description: 'A new preview deploy starts automatically' }, - { title: 'Or retry this deployment', description: 'Re-runs the same commit without a new push' }, + { title: 'Fix the type errors in rate-limit.ts', description: 'Add the missing incr method to RedisClient and return Promise<number> from it.' }, + { title: 'Push the fix to feat/redis-limiter', description: 'Every push starts a new preview build for this branch.' }, + { title: 'Or retry this deployment', description: 'Runs the same commit again. Use it only if you think the failure was temporary.' }, ] --- @@ -65,7 +65,7 @@ const nextSteps = [ - +
@@ -73,7 +73,7 @@ const nextSteps = [ Deployment - pulse-api-2e77b09.relay.app, 1 day ago + Started 1 day ago @@ -83,7 +83,7 @@ const nextSteps = [ Error - failed at Compile, 1m 12s + failed at Compile after 1m 12s @@ -99,6 +99,9 @@ const nextSteps = [ + + pulse-api-2e77b09.relay.app, not deployed + @@ -109,7 +112,7 @@ const nextSteps = [ Build steps - 3 of 5 completed + 3 passed, 1 failed, 1 skipped @@ -129,7 +132,7 @@ const nextSteps = [ <> {/* prettier-ignore */}
-
View full logs + Open the full Compile log )}