よしたく blog

ほぼ週刊で記事を書いています

CircleCIのManual Approval機能を試した

CircleCIのManual Approval機能を触ってみました。 設定方法と注意点について記載しておきます。

公式サイトはこちら。

https://circleci.com/docs/2.0/workflows/#holding-a-workflow-for-a-manual-approval

設定ファイルの記述方法

大まかな枠組みを記述しました。

version: 2
jobs:
  build:
      # buildの処理
  deploy:
      # deployの処理
workflows:
  version: 2
  build_and_deploy:
    jobs:
      - build
      - approval-deploy:
          type: approval
      - deploy:
          requires:
            - approval-deploy

type: approval

type: approval を記述すると、そのjobがCicleCIの画面上で承認ボタンを押さなければならない部分になります。 承認ボタンを押すことで次に処理が進みます。 注意ですが、このtype: approvalを設定したjobsにはなにも記述しないのが正しいようです。

requires: - approval-deploy

後続の処理には、requires: - approval-deployを記述します。requiresは、指定されたjobsが終了したら自分自身を実行する設定になります。つまりこの場合は、「approval-deployjobsが終了したら、deployjobsを実行します」という意味になります。

type: approvalrequires: - approval-deployの2つを使うことで、承認ボタンを押さないとデプロイを実行できないフローが完成します。

画面上での流れ

CircleCI上での一連の流れのキャプチャを載せておきます。

f:id:yoshitaku_jp:20190306163822p:plain
build実行中

f:id:yoshitaku_jp:20190306163834p:plain
buildが実行終了したが、deployは走らない

f:id:yoshitaku_jp:20190306163843p:plain
approval-deployをクリックし、承認する

f:id:yoshitaku_jp:20190306163852p:plain
後続のdeployが実行される

おしまい。