This action runs terraform validate with reviewdog on pull requests to improve experience.
inputs:
github_token:
description: 'GITHUB_TOKEN'
default: '${{ github.token }}'
workdir:
description: 'Working directory relative to the root directory.'
default: '.'
### Flags for reviewdog ###
level:
description: 'Report level for reviewdog [info,warning,error]'
default: 'error'
reporter:
description: 'Reporter of reviewdog command [github-pr-check,github-check,github-pr-review].'
default: 'github-pr-check'
filter_mode:
description: |
Filtering mode for the reviewdog command [added,diff_context,file,nofilter].
Default is added.
default: 'added'
fail_on_error:
description: |
Exit code for reviewdog when errors are found [true,false]
Default is `false`.
default: 'false'
name:
description: |
Tool name shown in review comment for reviewdog.
Also acts as an identifier for determining which comments reviewdog should overwrite.
Useful in monorepos with multiple root modules where terraform validate needs to run multiple times.
default: 'terraform validate'
reviewdog_flags:
description: 'Additional reviewdog flags'
default: ''
### Variables for Terraform ###
terraform_version:
description: 'The terraform version to install and use.'
name: reviewdog
on: [pull_request]
jobs:
terraform_validate:
name: runner / terraform validate
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: reviewdog/action-terraform-validate@v1
with:
github_token: ${{ secrets.github_token }}
# Change reviewdog reporter if you need [github-pr-check,github-check,github-pr-review].
reporter: github-pr-review
# Change reporter level if you need.
# GitHub Status Check won't become failure with warning.
level: warning
name: reviewdog
on: [pull_request]
jobs:
terraform_validate:
name: runner / terraform validate
strategy:
matrix:
root_module:
- development
- production
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: reviewdog/action-terraform-validate@v1
with:
github_token: ${{ secrets.github_token }}
reporter: github-pr-review
level: warning
# Explicitly specify a root module path for each job.
workdir: ./terraform/${{ matrix.root_module }}
# Explicitly specify a unique name for each job to prevent reviewdog from overwriting comments across jobs.
name: terraform validate ${{ matrix.root_module }}