Pipery Terraform CI#

Reusable GitHub Action for Terraform CI with structured logging via Pipery.

GitHub Marketplace Version License: MIT

Usage#

name: CI
on:
  push:
    branches: [main]

jobs:
  ci:
    uses: pipery-dev/pipery-terraform-ci@v1
    with:
      project_path: .
    secrets: inherit

Pipeline steps#

SAST (tfsec) → SCA → lint (tflint) → validate → plan → version → release

Every step is logged to pipery.jsonl via psh and uploaded as a GitHub Actions artifact.

Inputs#

InputDescriptionDefault
project_pathPath to the Terraform root module..
config_filePath to the pipery config file..github/pipery/config.yaml
terraform_versionTerraform CLI version to use.latest
backend_configComma-separated backend config vars (key=val).``
var_filePath to a .tfvars file.``
working_directoryWorking directory for Terraform commands..
skip_sastSkip tfsec SAST scan.false
skip_scaSkip SCA dependency scan.false
skip_lintSkip tflint lint.false
skip_validateSkip terraform validate.false
skip_planSkip terraform plan.false
skip_versionSkip version step.false
skip_releaseSkip release step.false
log_filePath to write the JSONL log file.pipery.jsonl

Observability#

Each run produces a pipery.jsonl file. Upload it as an artifact and inspect it with the Pipery Dashboard.

License#

MIT — see LICENSE.