import type { DeployEnvConfig } from './unified-config'; import type { AuthConfig } from './ui-verify/types'; export interface EnvironmentPlatformConfig { /** 构建命令(覆盖 PROJECT.yaml 中的配置) */ build_cmd?: string; /** 部署配置(覆盖 PROJECT.yaml 中的 deploy) */ deploy?: DeployEnvConfig; /** Git 目标分支(覆盖环境全局 branch,pipeline 时使用) */ branch?: string; } export interface EnvironmentConfig { /** 环境标识名 */ env: string; /** 该环境对应的 Git 分支(pipeline 合并目标分支) */ branch?: string; /** 全局默认值 */ defaults?: { build_cmd?: string; }; /** 按端覆盖配置 */ platforms: Record; /** 测试相关配置(与 verify --config 联动) */ tests?: { /** 各端的基础 URL(部署后测试使用) */ base_urls?: Record; /** 各端本地测试 URL(pre-deploy 测试使用,如 http://localhost:3000) */ local_urls?: Record; /** 视觉模型配置 */ visual_model?: { provider: 'qwen-vl' | 'openai' | 'anthropic' | 'local'; model?: string; apiKey?: string; endpoint?: string; timeout?: number; }; /** 测试登录配置(v8.3.215+):冒烟/视觉测试执行前自动登录 */ auth?: AuthConfig; /** * AI 验证线账号(v8.3.351+ 权威源):环境内嵌账号,就近声明。 * 账号名即引用名(如 admin);缺失时兜底 .speccore/tests/accounts.yaml 的 {env} 分组。 * username/password 支持 ${ENV_VAR} 引用,敏感值不落盘。 */ accounts?: Record; }; /** Pipeline 测试配置(v8.3.60+) */ pipeline?: { /** 是否启用 pipeline 内置测试 */ test?: { enabled?: boolean; /** 测试类型: build-check / smoke / visual / api / all */ type?: 'build-check' | 'smoke' | 'visual' | 'api' | 'all'; /** 测试时机: pre-deploy(部署前,默认) / post-deploy(部署后) / both(前后都测) */ stage?: 'pre-deploy' | 'post-deploy' | 'both'; /** 测试场景配置文件路径 */ config?: string; /** 测试失败是否阻断部署(默认 true) */ fail_on_error?: boolean; /** 测试失败时是否触发 AI 自动修复(默认 true) */ auto_fix?: boolean; /** 自动修复最大重试次数 */ max_retries?: number; }; }; } /** 指定项目根下的环境配置目录(v8.3.341+: 带参导出,供 update-env-configs 等外部项目场景复用) */ export declare const envDirFor: (projectRoot: string) => string; /** 加载指定路径的环境配置文件 */ export declare function loadEnvironmentConfig(filePath: string): Promise; /** 按环境名解析配置文件路径 */ export declare function resolveEnvironmentConfig(envName: string): Promise<{ config: EnvironmentConfig | null; path: string; }>; /** 按环境名或文件路径加载(自动识别) */ export declare function loadEnvironmentByNameOrPath(input?: string): Promise; /** * 解析「分支 / 环境名引用」(v8.3.340+)。 * * pr_target / branch_types[{type}].pr_target 支持两种写法: * 1. 环境名 —— environments/{值}.yaml 存在时,取其 branch 字段(PR 目标与 * pipeline / build / deploy 的环境口径统一,如 pr_target: dev → develop); * 2. 纯分支名 —— 无同名环境文件、或环境未声明 branch 时,按字面量当作分支名。 * * 含路径分隔符或 .yaml/.yml 后缀的值一律视为分支名 / 文件路径,不做环境解析。 */ export declare function resolveEnvBranchRef(value: string): Promise; //# sourceMappingURL=environment-config.d.ts.map