diff --git a/preview/pages/deployment-failed.astro b/preview/pages/deployment-failed.astro index 3bb32bd8e..893373d20 100644 --- a/preview/pages/deployment-failed.astro +++ b/preview/pages/deployment-failed.astro @@ -7,252 +7,254 @@ import Button from '@shared/components/Button.astro'; import Alert from '@shared/components/Alert.astro'; import Icon from '@shared/components/Icon.astro'; import StatusDot from '@shared/components/ui/StatusDot.astro'; + +const navItems = [ + { label: 'Overview' }, + { label: 'Deployments', href: './deployment-failed.html', active: true }, + { label: 'Analytics' }, + { label: 'Logs' }, + { label: 'Settings' }, +]; + +const buildSteps = [ + { + 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: 'danger', + icon: 'x', + name: 'Compile', + time: '8s', + detail: 'TypeScript exited with code 2', + error: `src/lib/rate-limit.ts:47:12 — error TS2345: +Argument of type 'RedisClient' is not assignable to +parameter of type 'RateLimiterStore'. + Property 'incr' is missing in type 'RedisClient'. + +src/lib/rate-limit.ts:61:5 — error TS2322: +Type 'Promise' is not assignable to +type 'Promise'. + +Found 2 errors in 1 file.`, + }, + { + status: 'secondary', + name: 'Deploy', + time: '—', + detail: 'Skipped', + muted: true, + }, +]; + +const failureSummary = [ + { label: 'Exit code', value: '2' }, + { label: 'Failed step', value: 'Compile' }, + { label: 'Errors', value: '2 TypeScript errors' }, + { label: 'File', value: 'src/lib/rate-limit.ts' }, + { label: 'Duration', value: '1m 12s' }, + { label: 'Region', value: 'fra1' }, +]; + +const nextSteps = [ + { + title: 'Fix type errors in rate-limit.ts', + sub: 'Align RedisClient with RateLimiterStore', + }, + { + title: 'Push to feat/redis-limiter', + sub: 'A new preview deploy starts automatically', + }, + { + title: 'Or retry this deployment', + sub: 'Re-runs the same commit without a new push', + }, +]; --- - -
-
- -

pulse-api

- -
-
+
+
+ +

pulse-api

+ +
+
- +
+ +
- +
-
-

Deployment

- pulse-api-2e77b09.relay.app · 1d ago +
+

Deployment

+ pulse-api-2e77b09.relay.app · 1d ago
-
Status
-
- - - Error - - failed at Compile · 1m 12s +
Status
+
+
+ + + Error + + failed at Compile · 1m 12s +
-
Source
-
- - - feat/redis-limiter - - - 2e77b09 - Migrate rate limiter to Redis - +
Source
+
+
-
Created
-
+
Created
+
Jul 28, 2026 at 09:41 by k.adamski
-
Environment
-
+
Environment
+
-
-
-
-
-

Build steps

+
+
+
+
+

Build steps

3 of 5 completed
- -
-
    -
  • -
    - -
    - -
    -
    - Clone - 2s -
    -
    - Fetched feat/redis-limiter at 2e77b09 -
    -
    -
  • - -
  • -
    - -
    - -
    -
    - Install - 38s -
    -
    - pnpm install - 412 packages -
    -
    -
  • - -
  • -
    - -
    - -
    -
    - Build - 24s -
    -
    - pnpm build completed -
    -
    -
  • - -
  • -
    - -
    -
    -
    - Compile - 8s -
    -
    TypeScript exited with code 2
    -
    src/lib/rate-limit.ts:47:12 — error TS2345:
    -	Argument of type 'RedisClient' is not assignable to
    -	parameter of type 'RateLimiterStore'.
    -		Property 'incr' is missing in type 'RedisClient'.
    -
    -	src/lib/rate-limit.ts:61:5 — error TS2322:
    -	Type 'Promise<number | null>' is not assignable to
    -	type 'Promise<number>'.
    -
    -	Found 2 errors in 1 file.
    - View full logs → -
    -
  • - -
  • -
    -
    -
    - Deploy - - -
    -
    Skipped
    -
    -
  • +
    +
      + { + buildSteps.map((step) => ( +
    • +
      + {step.icon && } +
      +
      +
      + {step.name} + {step.time} +
      +
      + {step.error && ( + <> +
      + View full logs → + + )} +
      +
    • + )) + }
-
+

Failure summary

-
Exit code
-
2
- -
Failed step
-
Compile
- -
Errors
-
2 TypeScript errors
- -
File
-
src/lib/rate-limit.ts
- -
Duration
-
1m 12s
- -
Region
-
fra1
+ { + failureSummary.map((row, i) => { + const last = i === failureSummary.length - 1; + return ( + <> +
+ {row.label} +
+
+ + ); + }) + }
-
+

Next steps

    -
  • - -
    -
    Fix type errors in rate-limit.ts
    -
    Align RedisClient with RateLimiterStore
    -
    -
  • -
  • - -
    - -
    A new preview deploy starts automatically
    -
    -
  • -
  • - -
    -
    Or retry this deployment
    -
    Re-runs the same commit without a new push
    -
    -
  • + { + nextSteps.map((step, i) => ( +
  • + +
    +
    +
    +
    +
  • + )) + }
- \ No newline at end of file +