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

  • 成功です。