Circle CI 2.0でWorkflow間でファイルを参照したい

Posted on
Circle CI
  • workflowを利用して、build jobで作成した成果物をdeploy jobで特定の場所にリリースしたいことはよくあると思います。
  • Circle CI 2.0ではjobごとに異なるDockerコンテナが起動するので、別のjobにファイルを受け渡すにはpersist_to_workspaceを使います。
  • 一方、そのファイルを参照するjobではattach_workspaceを使います。
  • 実際にやってみます。以下、config.yml
version: 2
jobs:
  build:
    docker:
      - image: circleci/ruby:2.5.0-node-browsers
    steps:
      - run: mkdir -p /tmp/workspace
      - run: echo 'This is artifact' >> /tmp/workspace/artifact.txt
      - run: cat /tmp/workspace/artifact.txt
      - persist_to_workspace:
          root: /tmp/workspace
          paths:
            - artifact.txt
  deploy:
    docker:
      - image: circleci/ruby:2.5.0-node-browsers
    steps:
      - attach_workspace:
          at: /tmp/workspace
      - run: cat /tmp/workspace/artifact.txt

workflows:
  version: 2
  build-deploy:
    jobs:
      - build
      - deploy:
          requires:
            - build
  • workflowはローカルでは試せないのでリモートで実行します。

  • buildジョブ This is a image

  • deployジョブ This is a image

  • 成功です。