|
1 | 1 | import { serverEnvSchema, serverProcessEnv } from './env-schema' |
2 | 2 |
|
3 | | -// Provide safe defaults for local/test runs to avoid schema failures |
4 | | -const ensureEnvDefault = (key: string, value: string) => { |
5 | | - if (!process.env[key]) { |
6 | | - process.env[key] = value |
| 3 | +// Only provide safe defaults in CI to avoid schema failures during tests |
| 4 | +// In local dev, missing env vars should fail fast so devs know to configure them |
| 5 | +const isCI = process.env.CI === 'true' || process.env.CI === '1' |
| 6 | + |
| 7 | +if (isCI) { |
| 8 | + const ensureEnvDefault = (key: string, value: string) => { |
| 9 | + if (!process.env[key]) { |
| 10 | + process.env[key] = value |
| 11 | + } |
7 | 12 | } |
8 | | -} |
9 | 13 |
|
10 | | -ensureEnvDefault('OPEN_ROUTER_API_KEY', 'test') |
11 | | -ensureEnvDefault('OPENAI_API_KEY', 'test') |
12 | | -ensureEnvDefault('LINKUP_API_KEY', 'test') |
13 | | -ensureEnvDefault('PORT', '4242') |
14 | | -ensureEnvDefault('DATABASE_URL', 'postgres://user:pass@localhost:5432/db') |
15 | | -ensureEnvDefault('CODEBUFF_GITHUB_ID', 'test-id') |
16 | | -ensureEnvDefault('CODEBUFF_GITHUB_SECRET', 'test-secret') |
17 | | -ensureEnvDefault('NEXTAUTH_SECRET', 'test-secret') |
18 | | -ensureEnvDefault('STRIPE_SECRET_KEY', 'sk_test_dummy') |
19 | | -ensureEnvDefault('STRIPE_WEBHOOK_SECRET_KEY', 'whsec_dummy') |
20 | | -ensureEnvDefault('STRIPE_USAGE_PRICE_ID', 'price_test') |
21 | | -ensureEnvDefault('STRIPE_TEAM_FEE_PRICE_ID', 'price_test') |
22 | | -ensureEnvDefault('LOOPS_API_KEY', 'test') |
23 | | -ensureEnvDefault('DISCORD_PUBLIC_KEY', 'test') |
24 | | -ensureEnvDefault('DISCORD_BOT_TOKEN', 'test') |
25 | | -ensureEnvDefault('DISCORD_APPLICATION_ID', 'test') |
| 14 | + ensureEnvDefault('OPEN_ROUTER_API_KEY', 'test') |
| 15 | + ensureEnvDefault('OPENAI_API_KEY', 'test') |
| 16 | + ensureEnvDefault('LINKUP_API_KEY', 'test') |
| 17 | + ensureEnvDefault('PORT', '4242') |
| 18 | + ensureEnvDefault('DATABASE_URL', 'postgres://user:pass@localhost:5432/db') |
| 19 | + ensureEnvDefault('CODEBUFF_GITHUB_ID', 'test-id') |
| 20 | + ensureEnvDefault('CODEBUFF_GITHUB_SECRET', 'test-secret') |
| 21 | + ensureEnvDefault('NEXTAUTH_SECRET', 'test-secret') |
| 22 | + ensureEnvDefault('STRIPE_SECRET_KEY', 'sk_test_dummy') |
| 23 | + ensureEnvDefault('STRIPE_WEBHOOK_SECRET_KEY', 'whsec_dummy') |
| 24 | + ensureEnvDefault('STRIPE_USAGE_PRICE_ID', 'price_test') |
| 25 | + ensureEnvDefault('STRIPE_TEAM_FEE_PRICE_ID', 'price_test') |
| 26 | + ensureEnvDefault('LOOPS_API_KEY', 'test') |
| 27 | + ensureEnvDefault('DISCORD_PUBLIC_KEY', 'test') |
| 28 | + ensureEnvDefault('DISCORD_BOT_TOKEN', 'test') |
| 29 | + ensureEnvDefault('DISCORD_APPLICATION_ID', 'test') |
| 30 | +} |
26 | 31 |
|
27 | 32 | // Only log environment in non-production |
28 | 33 | if (process.env.NEXT_PUBLIC_CB_ENVIRONMENT !== 'prod') { |
|
0 commit comments