dehio3’s diary

仕事、生活、趣味のメモ

CircleCIからterraformを実行する時の事前チェックで「terraform plan」と「tflint」を実行する方法

f:id:dehio3:20190711135531p:plain

はじめに

CircleCIにてAWS環境を構築しているのですが、事前のチェックでtflintも実行させたいと思い対応しました。 tflint知らない方はこちらを参照ください。

sil.hatenablog.com

対応

CIrcleCIのconfig.ymlのplanを実行してたjobに追記しただけ。

以下にjobだけ抜粋

  test:
    docker:
      - image: hashicorp/terraform:0.10.8
    steps:
      - checkout
      - run: terraform init
      - run:
          name: Install tflint
          command: curl -L -o /tmp/tflint.zip https://github.com/wata727/tflint/releases/download/v0.7.2/tflint_linux_amd64.zip && unzip /tmp/tflint.zip -d /usr/local/bin
      - run:
          name: tflint
          command: tflint
      - run: terraform plan

dockerもあるんだけど、単体で動かすと以下のエラーが出るので、terrafromのコンテナ内で実行させてます。

#!/bin/sh -eo pipefail
tflint
ERROR: module `./aws-sns-slack/module` not found. Did you run `terraform get`?
Exited with code 2

最後に

バージョンがハードコードになってしまってるので、コンテナで実行させる書き方わかる人いたら是非教えてください。