tl;dr
ジョブを中断したかったので調査したら、リファレンスをちゃんと読め案件でしたが、ここにメモしておきます。
ジョブを正常に中断したい
中断出来ない例
以下のように、正常なステータスで中断したい部分で exit 0
と書いても、最後の test2
まで実行されてしまいます。
version: 2.1 executors: default: docker: - image: 'cimg/python:3.6' commands: command_1: steps: - run: name: Command Test 1 command: | echo 'command 1 test' exit 0 jobs: command_test: executor: default steps: - checkout - command_1 - run: name: test1 command: | echo 'test1' exit 0 - run: name: test2 command: | echo 'test2' workflows: version: 2 command_test: jobs: - command_test: filters: branches: only: - master
ちなみに、exit 1
と書くと、ちゃんと中断してくれますが、今回は「正常なステータス」で終了したいので、要件を満たしていません。
中断する例
以下のように、中断したい箇所に circleci-agent step halt
を記載すると、「正常なステータス」で終了することが出来ました。
version: 2.1 executors: default: docker: - image: 'cimg/python:3.6' commands: command_1: steps: - run: name: Command Test 1 command: | echo 'command 1 test' circleci-agent step halt jobs: command_test: executor: default steps: - checkout - command_1 - run: name: test1 command: | echo 'test1' circleci-agent step halt - run: name: test2 command: | echo 'test2' workflows: version: 2 command_test: jobs: - command_test: filters: branches: only: - master
これは、リファレンス にちゃんと記載されていました。
以上
メモでした。