首页 > 解决方案 > CircleCI 保存工作流中相关作业的输出

问题描述

我有两份工作,B 依赖于 A,我需要将它的输出用作下一份工作的输入。

version: 2
jobs:
  A:
    docker:
      - image: xxx
    environment:
      MAKEFLAGS: "-i"
      JVM_OPTS: -Xmx3200m
    steps:
      - run: git submodule update --init
      - run:
          name: build A
          command: cd platform/android/ && ant
  B:
    docker:
      - image: yyy
    environment:
      MAKEFLAGS: "-i"
      JVM_OPTS: -Xmx3200m
    steps:
          name: build B
          command: ./gradlew assembleDebug

workflows:
  version: 2
  tests:
    jobs:
      - A
      - B:
          requires:
           - A

文件夹中作业 A 的输出./build/output需要保存并在作业 B 中使用。

我如何实现这一目标?

标签: continuous-integrationcircleci

解决方案


免责声明:我是 CircleCI 开发者倡导者

您将使用 CircleCI Workspaces

version: 2
jobs:
  A:
    docker:
      - image: xxx
    environment:
      MAKEFLAGS: "-i"
      JVM_OPTS: -Xmx3200m
    steps:
      - run: git submodule update --init
      - run:
          name: build A
          command: cd platform/android/ && ant
      - persist_to_workspace:
          root: build/
          paths:
            - output
  B:
    docker:
      - image: yyy
    environment:
      MAKEFLAGS: "-i"
      JVM_OPTS: -Xmx3200m
    steps:
      - attach_workspace:
          at: build/
          name: build B
          command: ./gradlew assembleDebug

workflows:
  version: 2
  tests:
    jobs:
      - A
      - B:
          requires:
           - A

另请记住,您的 B 工作存在一些 YAML 问题。


推荐阅读