CircleCI Workflow构建报错:matrix、name参数为非法配置项
问题根因
报错本质是CircleCI配置校验阶段使用的规则集不识别matrix、工作流层级自定义name两个字段,触发场景对应两个实际问题:
- 项目未开启新版Pipelines引擎:
matrix参数矩阵、工作流内自定义job名是CircleCI新版流水线引擎支持的2.1配置高级特性,旧版构建引擎的配置校验规则不包含这两个字段的定义,会直接判定为非法键。 - 矩阵作业配置层级错误:你当前的写法把自定义
name字段放在了和matrix平级的位置,即使开启了新版引擎,平级的name字段依然不符合schema要求,自定义作业名必须定义在matrix块内部。
修复步骤
- 开启新版流水线引擎
- 进入CircleCI对应项目的设置页,打开高级设置(Advanced Settings)板块
- 找到
Enable Pipelines选项,切换为开启状态,等待1-2分钟让设置生效
- 修正工作流内的矩阵配置结构,将
name字段移动到matrix块内部,修正后的nightly-test-workflow配置段参考如下:
workflows: unit-test-workflow: jobs: - build nightly-test-workflow: triggers: - schedule: cron: "0 0 * * *" filters: branches: only: - develop jobs: - nightly-android-test: matrix: alias: nightly parameters: system-image: - system-images;android-30;google_apis;x86 - system-images;android-29;google_apis;x86 - system-images;android-28;google_apis;x86 - system-images;android-27;google_apis;x86 name: nightly-android-test-<< matrix.system-image >>
验证说明
- 配置修改完成后,可以使用CircleCI本地命令行工具执行
circleci config validate做本地预校验,确认无schema错误后再推送代码。 - 你当前配置中声明了
gcp-cliorb但未实际调用,如果不需要GCP相关操作可以直接删除该orb声明,减少不必要的依赖拉取耗时。
内容的提问来源于stack exchange,提问作者htownusa
相关产品推荐
相关产品推荐

