CI 重试、并发与超时
用仓库 Actions variables 调整测试预算,并理解 off 与零次重试的区别。
This page has not been translated into English yet. The original Chinese version is shown below.
这些变量配置 Qwen Code 上游 CI 的资源与重试策略,不是 CLI 用户的 settings.json 配置。仓库维护者可在 Settings → Secrets and variables → Actions → Variables 中设置;它们属于 variables,不应把密钥放入其中。
当前变量
| Actions variable | 未设置或空值时 | 作用范围 |
|---|---|---|
| QWEN_CI_VITEST_RETRY | 2 | 主 CI 的 workspace 测试与 scripts 测试 |
| QWEN_RELEASE_VITEST_RETRY | 2 | release workspace 测试分片 |
| QWEN_CI_VITEST_MAX_WORKERS | 4 | 名称以 ecs-qwen- 开头的 runner 上,指定 CI/release 测试任务的最大线程与进程数 |
| QWEN_RELEASE_WORKSPACE_TIMEOUT_MINUTES | 45 | release workspace 测试 job |
| QWEN_RELEASE_STATIC_TIMEOUT_MINUTES | 60 | release quality_static job |
| QWEN_RELEASE_BUILD_TIMEOUT_MINUTES | 45 | release quality_build job |
并发上限通过 VITEST_MAX_THREADS 和 VITEST_MAX_FORKS 传给适用步骤,最小 worker 数为 1。它不是全部 Vitest 命令的全局参数,也不自动覆盖 GitHub-hosted runner 或所有集成测试;例如 Web Shell E2E 使用独立任务。
重试值的语义
普通数字作为 Vitest retry 值。字面值 off 则让工作流不传 --retry,保留测试项目自身配置的决定权。设置为 0 会显式覆盖为零次重试,两者不等价。
重试发生在同一次测试运行内。失败后重试通过可能让最终运行成功,因此调整重试预算时还需追踪不稳定用例,不能靠不断加大次数掩盖确定性错误。
超时分别调整
静态检查、build 和 workspace 测试分别使用自己的 job 超时。扩大某项不会扩大另两项,也不修改单个工具、模型请求或测试断言的超时。
先从日志判断耗时来源,再调整对应变量。worker 更多不一定更快;共享 runner 上过高并发可能加剧内存或资源竞争。
修改工作流后的检查
官方将相关表达式校验放在 scripts/tests/package-scripts.test.js、no-ak-integration-ci.test.js 和 release-workflow.test.js 等测试中。修改变量或流程后应运行相应脚本测试。
部分纯文档变更的 CI profile 可能不运行 test:scripts。需要验证工作流表达式时,应显式选择覆盖它们的检查,不能仅凭文档 CI 为绿就认定这些路径已经执行。