Home

Awesome

action-terraform-validate

Test reviewdog depup release GitHub release (latest SemVer) action-bumpr supported

github-pr-review demo github-pr-check demo

This action runs terraform validate with reviewdog on pull requests to improve experience.

Input

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.'

Usage

For single root module

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

For multiple root modules

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 }}