buster/packages/ai/scripts/validate-env.js

49 lines
1.4 KiB
JavaScript

#!/usr/bin/env node
// Load environment variables from .env file
import { config } from 'dotenv';
config();
// Build-time environment validation
console.info('🔍 Validating environment variables...');
// Skip validation during Docker builds (environment variables are only available at runtime)
if (process.env.DOCKER_BUILD || process.env.CI || process.env.NODE_ENV === 'production') {
console.info(
'🐳 Docker/CI build detected - skipping environment validation (will validate at runtime)'
);
process.exit(0);
}
const env = {
BRAINTRUST_KEY: process.env.BRAINTRUST_KEY,
PATH: process.env.PATH,
HOME: process.env.HOME,
OPENAI_API_KEY: process.env.OPENAI_API_KEY,
ANTHROPIC_API_KEY: process.env.ANTHROPIC_API_KEY,
ENVIRONMENT: process.env.ENVIRONMENT,
DATABASE_URL: process.env.DATABASE_URL,
NODE_ENV: process.env.NODE_ENV || 'development',
};
let hasErrors = false;
for (const [envKey, value] of Object.entries(env)) {
if (!value) {
console.error(`❌ Missing required environment variable: ${envKey}`);
hasErrors = true;
} else {
console.info(`${envKey} is set`);
}
}
if (hasErrors) {
console.error('');
console.error('❌ Build cannot continue with missing environment variables.');
console.error('Please check your .env file and ensure all required variables are set.');
process.exit(1);
}
console.info('✅ All required environment variables are present');