Skip to content

A GitHub action to return an array of paths to Terraform modules.

Notifications You must be signed in to change notification settings

theappnest/terraform-monorepo-action

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a94730f · Jul 13, 2023
Jan 27, 2023
Jan 24, 2023
Jan 24, 2023
Jul 27, 2021
Jul 27, 2021
Jul 27, 2021
Jul 27, 2021
Jul 27, 2021
Jul 27, 2021
Jul 13, 2023
Jul 27, 2021
Jan 24, 2023
Jul 12, 2023
Jul 13, 2023
Jul 27, 2021
Apr 28, 2023

Repository files navigation

terraform-monorepo-action

This GitHub action returns an array of paths to Terraform modules.

Usage

jobs:
  modules:
    runs-on: ubuntu-latest
    steps:
      - uses: theappnest/terraform-monorepo-action@master
        id: modules
        with:
          monitored: '.tpl, .hcl, .terraform.lock.hcl'
          ignore: |
            */*
            !modules/**
            modules/ignored/*
    outputs:
      modules: ${{ steps.modules.outputs.modules }}

  terraform:
    runs-on: ubuntu-latest
    needs: modules
    strategy:
      matrix:
        module: ${{ fromJson(needs.modules.outputs.modules) }}
    defaults:
      run:
        working-directory: ${{ matrix.module }}
    steps:
      - uses: actions/checkout@v2
      - uses: hashicorp/setup-terraform@v1
      - run: terraform init
      - run: terraform plan

Inputs

  • token (optional) GitHub token. Defaults to secrets.GITHUB_TOKEN.
  • mode (optional) Set to all to return all modules or changed to only return modules that have changes in this PR/commit. Defaults to changed.
  • ignore (optional) List of module path globs to ignore. Uses gitignore spec.
  • monitored (optional) Comma seperated list of file extensions, or filenames to match to determine what is a terraform module. Defaults to .tf

Outputs

  • modules An array of paths to Terraform modules.