{ "$schema": "./../../node_modules/turbo/schema.json", "extends": ["//"], "tasks": { "codegen:examples": { "inputs": ["../../examples/**"], "outputs": ["examples/**"], }, "codegen:references": { "inputs": ["spec/**"], "outputs": ["features/docs/generated/**"], }, // Fetches remote (GitHub) content and the JSON artifacts the markdown generator reads. // Not cached: the inputs are remote, so a cache restore could resurrect stale content. "build:federated-content": { "cache": false, "env": [ "DOCS_GITHUB_APP_ID", "DOCS_GITHUB_APP_INSTALLATION_ID", "DOCS_GITHUB_APP_PRIVATE_KEY", ], }, // Generates the guide/reference .md files and manifest.json under public/markdown/. // Declaring outputs lets Turbo restore these artifacts on a cache hit; without it a // cached run would skip the script and leave the generated markdown missing for `next build`. "build:markdown": { "dependsOn": ["build:federated-content"], "outputs": ["public/markdown/**", "public/markdown/manifest.json"], }, "test": { // Lets the smoke tests target a preview deploy or localhost instead of production. "env": ["DOCS_SMOKE_URL"], }, "build": { "dependsOn": ["^build", "codegen:examples", "codegen:references", "build:markdown"], "env": [ "ANALYZE", "NEXT_PUBLIC_SUPABASE_URL", "NEXT_PUBLIC_SUPABASE_ANON_KEY", "NEXT_PUBLIC_MISC_URL", "NEXT_PUBLIC_MISC_ANON_KEY", "NEXT_PUBLIC_MARKETPLACE_API_URL", "NEXT_PUBLIC_MARKETPLACE_PUBLISHABLE_KEY", "NODE_ENV", "NEXT_PUBLIC_API_URL", "NEXT_PUBLIC_BASE_PATH", "NEXT_PUBLIC_SITE_URL", "NEXT_PUBLIC_DEV_AUTH_PAGE", "NEXT_PUBLIC_IS_PLATFORM", "NEXT_PUBLIC_SENTRY_DSN", "NEXT_PUBLIC_VERCEL_ENV", "NEXT_PUBLIC_VERCEL_GIT_COMMIT_SHA", "VERCEL", "VERCEL_ENV", "VERCEL_GIT_COMMIT_SHA", "VERCEL_URL", // These envs are used in the packages "NEXT_PUBLIC_STORAGE_KEY", "NEXT_PUBLIC_AUTH_DEBUG_KEY", "NEXT_PUBLIC_AUTH_PERSISTED_KEY", "NEXT_PUBLIC_AUTH_NAVIGATOR_LOCK_KEY", "NEXT_PUBLIC_AUTH_DETECT_SESSION_IN_URL", "NEXT_PUBLIC_GOOGLE_TAG_MANAGER_ID", "NEXT_PUBLIC_GOTRUE_URL", "NEXT_PUBLIC_SUPABASE_ANON_KEY", "NEXT_PUBLIC_MCP_URL", // These envs are technically passthrough env vars because they're only used on the server side of Nextjs "ASSET_CDN_S3_ENDPOINT", "AWS_ACCESS_KEY_ID", "AWS_SECRET_ACCESS_KEY", "CI", "DOCS_GITHUB_APP_ID", "DOCS_GITHUB_APP_INSTALLATION_ID", "DOCS_GITHUB_APP_PRIVATE_KEY", "DOCS_REVALIDATION_KEYS", "DOCS_REVALIDATION_OVERRIDE_KEYS", "ENABLED_FEATURES_OVERRIDE_DISABLE_ALL", "GH_TOKEN", "GITHUB_ACTIONS", "GITHUB_TOKEN", "FORCE_ASSET_CDN", "LOGFLARE_INGESTION_API_KEY", "LOGFLARE_SOURCE_TOKEN", "OPENAI_API_KEY", "SEARCH_V2_SUPABASE_PROJECT_ID", "SEARCH_V2_SUPABASE_SECRET_KEY", "SITE_NAME", "SUPABASE_SECRET_KEY", ], "passThroughEnv": ["SENTRY_AUTH_TOKEN"], "inputs": ["$TURBO_DEFAULT$"], "outputs": [".next/**", "!.next/cache/**"], }, }, }