GitHub Actions for working with Terraform
These reusable workflows will try to automatically determine the terraform version from your terraform code.
You can override this by setting the version
input property.
Let's look at an example, assume our repo is called amazing-app
:
λ amazing-app ❯ tree
.
├── README.md
├── terraform
│ ├── env
│ │ ├──dev.tf
│ │ ├──tst.tf
│ │ └──prd.tf
│ ├── backend.tf
│ ├── main.tf
│ ├── variables.tf
│ └── versions.tf
└── .github
└── workflows
├── cd.yml
└── ci.yml
name: CI
on:
pull_request:
jobs:
terraform-lint:
uses: entur/gha-terraform/.github/workflows/lint.yml@v2
terraform-plan:
uses: entur/gha-terraform/.github/workflows/plan.yml@v2
name: CD
on:
pull_request:
jobs:
terraform-apply:
uses: entur/gha-terraform/.github/workflows/apply.yml@v2
If you don't want to use a third party application to create an approval step before apply, you can use Github Environments, For inspiration: https://github.com/entur/thanos/blob/main/.github/workflows/cd.yml