Terraformの操作をCircleCIで自動化する

CircleCIでTerraformの構成管理を自動化してみました.

# .circleci/config.yml
version: 2
jobs:
  test:
    docker:
      - image: hashicorp/terraform:0.10.7
    steps:
      - checkout
      - run: terraform init
      - run: terraform state pull
      - run: terraform validate
      - run: terraform plan
  deploy:
    docker:
      - image: hashicorp/terraform:0.10.7
    steps:
      - checkout
      - run: terraform init
      - run: terraform state pull
      - run: terraform apply
workflows:
  version: 2
  test_accept_deploy:
    jobs:
      - test
      - deploy:
          filters:
            branches:
              only: master
          requires:
            - test

比較的シンプルな記述にあんるため、別のTerraformリポジトリにも移行しやすそうな形式になっています.
Bitbucket Cloudを使っている場合は、CircleCIではなくBitbucket Pipelinesが必要十分なので、
自分の環境にあったCIを選ぶのが良さそうですね.