Skip to content

Lint and Test

Lint and Test #80

Workflow file for this run

name: Lint and Test
permissions:
contents: read
on:
pull_request:
branches:
- main
schedule:
- cron: 0 12 * * 1
env:
TEST_ROLE: arn:aws:iam::533267002298:role/ecr-test-role
jobs:
pre-commit:
name: Pre-commit hooks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
persist-credentials: false
- uses: actions/setup-python@v6
with:
python-version: '3.13'
- uses: hashicorp/setup-terraform@v3
- uses: terraform-linters/setup-tflint@v5
name: Setup TFLint
with:
tflint_version: latest
- name: Install terraform-docs
run: |
cd "$(mktemp -d)"
ver="v0.19.0"
curl -Lo ./terraform-docs.tar.gz "https://github.com/terraform-docs/terraform-docs/releases/download/$ver/terraform-docs-$ver-$(uname)-amd64.tar.gz"
tar -xzf terraform-docs.tar.gz
chmod +x terraform-docs
echo "$PWD" >>"$GITHUB_PATH"
- name: Init TFLint
run: tflint --init
env:
# https://github.com/terraform-linters/tflint/blob/master/docs/user-guide/plugins.md#avoiding-rate-limiting
GITHUB_TOKEN: ${{ github.token }}
- uses: pre-commit/[email protected]
test:
name: Test
needs: pre-commit
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
strategy:
fail-fast: false
matrix:
terraform_version: [1.7.0, latest]
steps:
- uses: actions/checkout@v5
with:
persist-credentials: false
- uses: hashicorp/setup-terraform@v3
with:
terraform_version: ${{ matrix.terraform_version }}
- uses: aws-actions/configure-aws-credentials@v5
with:
role-to-assume: ${{ env.TEST_ROLE }}
aws-region: us-east-1
- name: test
run: |
terraform init
terraform test