GitHub ActionsによるTerraform単体テスト自動化

AWS

AWS などの構築をコードで管理することも多くなってきたのではないでしょうか?
GitHub で管理することも多くあるのではないでしょうか?

ということで、Terraform の単体テストまでGithub Actions で実施してみます。

今回の環境・フロー

手順

今回のゴール

Terraform test が通ることがゴールになります。

Git Clone

今回使用するコードを最初にClone してきてください。

GitHub - kentaindeed/deploy-terraform: deploy の練習用のterraform です。CICD 環境での自動デプロイ。
deploy の練習用のterraform です。CICD 環境での自動デプロイ。. Contribute to kentaindeed/deploy-terraform development by creating an account...
git clone https://github.com/kentaindeed/deploy-terraform.git

Secret の準備

workflow の権限はとrepo の権限があれば、大丈夫だと思います。

workflow

workflow では下記のように設定しています。
今回はTerraform apply をしないので、環境変数は必要ないです。なので、このまま実行しても大丈夫です!!

name: Terraform Test

on:
  workflow_dispatch:

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Setup Terraform
        uses: hashicorp/setup-terraform@v3
        with:
          terraform_version: 1.11.4

      - name: Terraform Init
        run: cd env/dev/ && terraform init

      - name: Terraform Test
        run: |
          cd env/dev/ && terraform test -filter="tests/ec2_module_test.tftest.hcl"
          terraform test -filter="tests/network_unit_test.tftest.hcl"
        env:
          # テスト用の環境変数
          AWS_ACCESS_KEY_ID:  "test"
          AWS_SECRET_ACCESS_KEY: "test"
          AWS_DEFAULT_REGION: "ap-southeast-1"

GitHub Actions の実行

今回はpush した時に実行されず、workflow_dispatch を指定して手動で実行するようにしています。

Actions に移動

Actions に移動

Terraform Test 実行

Actions の所で、terraform-test.yml の中のname の名前が workflow の名前になります。

実行場所
実行

Branch も指定できるので、他のbranch の人はそのbranch を選択してください。

成功の表示

成功したら、✔がつきます。

失敗の表示

失敗したら、✖ がつきます。

まとめ

今回はTerraform の単体テストをGithub Actions で実行すること書きました。Github Actions で結合テストとデプロイはこのブログではできなかったので、次回以降のブログで実施していきます。

参考サイト

OAuth アプリのスコープ - GitHub Docs
スコープによって、必要なアクセスの種類を正確に指定できます。 スコープによって OAuth トークンへのアクセスが 制限 されます。 ユーザがすでに持っている範囲を超えた権限を許可することはありません。
【Terraform】GitHub Actions を使って、planやapplyを自動化しよう

\ 最新情報をチェック /

コメント

PAGE TOP
タイトルとURLをコピーしました