Skip to content
FunCoding

Search

Search docs, Skills and MCP

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_RETRY2主 CI 的 workspace 测试与 scripts 测试
QWEN_RELEASE_VITEST_RETRY2release workspace 测试分片
QWEN_CI_VITEST_MAX_WORKERS4名称以 ecs-qwen- 开头的 runner 上,指定 CI/release 测试任务的最大线程与进程数
QWEN_RELEASE_WORKSPACE_TIMEOUT_MINUTES45release workspace 测试 job
QWEN_RELEASE_STATIC_TIMEOUT_MINUTES60release quality_static job
QWEN_RELEASE_BUILD_TIMEOUT_MINUTES45release 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 为绿就认定这些路径已经执行。