- 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ジョブ
-
deployジョブ
-
成功です。