|
1 | | -name: Terraform |
| 1 | +name: Continuous Integration |
2 | 2 |
|
3 | 3 | on: |
4 | 4 | push: |
5 | 5 | branches: main |
6 | | - paths: |
7 | | - - '**.tf' |
8 | 6 | pull_request: |
9 | | - paths: |
10 | | - - '**.tf' |
11 | 7 |
|
12 | 8 | jobs: |
13 | | - terraform-validate: |
14 | | - name: Validate |
| 9 | + continuous-integration-terraform: |
| 10 | + name: Continuous Integration Terraform |
15 | 11 | runs-on: ubuntu-latest |
16 | 12 | steps: |
17 | 13 | - name: Check out code |
18 | | - uses: actions/checkout@v4 |
| 14 | + uses: actions/checkout@v5 |
19 | 15 |
|
20 | | - - name: Check for terraform version mismatch |
21 | | - run: | |
22 | | - DOTFILE_VERSION=$(cat .terraform-version) |
23 | | - TERRAFORM_IMAGE_REFERENCES=$(grep "uses: docker://hashicorp/terraform" .github/workflows/terraform.yml | grep -v TERRAFORM_IMAGE_REFERENCES | wc -l | tr -d ' ') |
24 | | - if [ "$(grep "docker://hashicorp/terraform:${DOTFILE_VERSION}" .github/workflows/terraform.yml | wc -l | tr -d ' ')" != "$TERRAFORM_IMAGE_REFERENCES" ] |
25 | | - then |
26 | | - echo -e "\033[1;31mError: terraform version in .terraform-version file does not match docker://hashicorp/terraform versions in .github/workflows/terraform.yml" |
27 | | - exit 1 |
28 | | - fi |
29 | | -
|
30 | | - - name: Validate Terraform docs |
31 | | - uses: terraform-docs/gh-actions@v1.4.1 |
32 | | - with: |
33 | | - config-file: .terraform-docs.yml |
34 | | - output-file: README.md |
35 | | - output-method: inject |
36 | | - fail-on-diff: true |
37 | | - |
38 | | - - name: Remove azure backend |
39 | | - run: rm ./backend.tf |
40 | | - |
41 | | - - name: Run a Terraform init |
42 | | - uses: docker://hashicorp/terraform:1.11.4 |
43 | | - with: |
44 | | - entrypoint: terraform |
45 | | - args: init |
46 | | - |
47 | | - - name: Run a Terraform validate |
48 | | - uses: docker://hashicorp/terraform:1.11.4 |
| 16 | + - name: Terraform Validate |
| 17 | + uses: DFE-Digital/terraform-linting-actions/.github/actions/validate@v1.2.1 |
49 | 18 | with: |
50 | | - entrypoint: terraform |
51 | | - args: validate |
52 | | - |
53 | | - - name: Run a Terraform format check |
54 | | - uses: docker://hashicorp/terraform:1.11.4 |
55 | | - with: |
56 | | - entrypoint: terraform |
57 | | - args: fmt -check=true -diff=true |
58 | | - |
59 | | - - name: Setup TFLint |
60 | | - uses: terraform-linters/setup-tflint@v4 |
61 | | - with: |
62 | | - tflint_version: v0.44.1 |
63 | | - |
64 | | - - name: Run TFLint |
65 | | - run: tflint -f compact |
| 19 | + terraform_version: '1.11.4' |
| 20 | + tflint_version: 'v0.44.1' |
| 21 | + entrypoint: '.' |
0 commit comments