You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置CircleCI 2.0顺序工作流?解决后续任务未执行问题

解决CircleCI 2.0顺序工作流仅执行首个任务的问题

这种情况我之前也碰到过,大概率是工作流的依赖配置或者任务定义出了小问题。咱们一步步来排查和修复:

核心逻辑:顺序工作流的正确配置规则

CircleCI 2.0的顺序工作流必须通过requires字段明确指定任务的依赖关系,确保后续任务只有在前序任务成功完成后才会触发。同时每个任务(job)必须有完整的定义,不能出现名称不匹配、语法错误的情况。

可直接参考的React Native项目配置示例

下面是适配React Native项目的完整.circleci/config.yml模板,包含build、test、android三个顺序执行的任务:

version: 2.1

jobs:
  # 第一个任务:项目构建
  build:
    working_directory: ~/your-react-native-project
    docker:
      - image: circleci/node:18.16.0  # 选择和你项目匹配的Node版本
    steps:
      - checkout  # 拉取代码
      - run: npm install  # 安装依赖
      - run: npm run build  # 执行构建命令
      # 保存构建产物到工作区,供后续任务复用
      - persist_to_workspace:
          root: ~/your-react-native-project
          paths:
            - .

  # 第二个任务:测试,依赖build完成
  test:
    working_directory: ~/your-react-native-project
    docker:
      - image: circleci/node:18.16.0
    steps:
      # 从工作区加载build阶段的产物
      - attach_workspace:
          at: ~/your-react-native-project
      - run: npm test  # 执行测试命令

  # 第三个任务:Android打包,依赖test完成
  android:
    working_directory: ~/your-react-native-project
    docker:
      - image: circleci/android:api-33  # 适配你的Android SDK版本
    steps:
      - attach_workspace:
          at: ~/your-react-native-project
      - run: ./gradlew assembleRelease  # 执行Android打包命令

workflows:
  version: 2
  # 定义工作流名称,指定任务执行顺序
  build-test-android-flow:
    jobs:
      - build
      - test:
          requires:
            - build  # 明确test必须等build成功才运行
      - android:
          requires:
            - test  # 明确android必须等test成功才运行

重点排查这几个容易踩坑的点

  • 任务名称完全匹配:工作流里引用的job名称必须和jobs块里定义的完全一致,大小写、拼写都不能错(比如工作流写tests但job定义是test,就会找不到任务)。
  • YAML语法正确:YAML对缩进、冒号的要求很严格,比如requires下面的任务列表必须缩进2个空格,少了或者多了都会导致配置失效。
  • 检查工作流触发条件:如果你的工作流加了filters(比如只在main分支执行),要确认当前分支是否满足条件,否则后续任务会被跳过。
  • 查看CircleCI控制台日志:进入CircleCI的工作流页面,看未执行的任务状态——如果显示"not run",大概率是依赖没满足或者job定义有语法错误;如果是"failed",就去看具体任务的日志找问题。
  • 任务间共享资源:每个job是独立的容器,所以必须用persist_to_workspace和attach_workspace来共享代码、依赖或构建产物,否则后续任务可能找不到必要的文件。

按照上面的配置和排查步骤调整后,你的三个任务应该就能按顺序依次执行了。

内容的提问来源于stack exchange,提问作者Brian Var

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 10:39:29