Difference between revisions of "Pre-commit.yml"

From wikieduonline
Jump to navigation Jump to search
(Created page with " {{pre-commit}}")
 
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
 +
{{lc}}
 +
* https://github.com/terraform-aws-modules/terraform-aws-eks/blob/master/.github/workflows/pre-commit.yml
  
 +
<pre>
 +
name: Pre-Commit
  
 +
on:
 +
  pull_request:
 +
    branches:
 +
      - main
 +
      - master
  
 +
env:
 +
  TERRAFORM_DOCS_VERSION: v0.16.0
 +
  TFLINT_VERSION: v0.44.1
  
{{pre-commit}}
+
jobs:
 +
  collectInputs:
 +
    name: Collect workflow inputs
 +
    runs-on: ubuntu-latest
 +
    outputs:
 +
      directories: ${{ steps.dirs.outputs.directories }}
 +
    steps:
 +
      - name: Checkout
 +
        uses: actions/checkout@v3
 +
 
 +
      - name: Get root directories
 +
        id: dirs
 +
        uses: clowdhaus/terraform-composite-actions/[email protected]
 +
 
 +
  preCommitMinVersions:
 +
    name: Min TF pre-commit
 +
    needs: collectInputs
 +
    runs-on: ubuntu-latest
 +
    strategy:
 +
      matrix:
 +
        directory: ${{ fromJson(needs.collectInputs.outputs.directories) }}
 +
    steps:
 +
      - name: Checkout
 +
        uses: actions/checkout@v3
 +
 
 +
      - name: Terraform min/max versions
 +
        id: minMax
 +
        uses: clowdhaus/[email protected]
 +
        with:
 +
          directory: ${{ matrix.directory }}
 +
 
 +
      - name: Pre-commit Terraform ${{ steps.minMax.outputs.minVersion }}
 +
        # Run only validate pre-commit check on min version supported
 +
        if: ${{ matrix.directory !=  '.' }}
 +
        uses: clowdhaus/terraform-composite-actions/[email protected]
 +
        with:
 +
          terraform-version: ${{ steps.minMax.outputs.minVersion }}
 +
          tflint-version: ${{ env.TFLINT_VERSION }}
 +
          args: 'terraform_validate --color=always --show-diff-on-failure --files ${{ matrix.directory }}/*'
 +
 
 +
      - name: Pre-commit Terraform ${{ steps.minMax.outputs.minVersion }}
 +
        # Run only validate pre-commit check on min version supported
 +
        if: ${{ matrix.directory ==  '.' }}
 +
        uses: clowdhaus/terraform-composite-actions/[email protected]
 +
        with:
 +
          terraform-version: ${{ steps.minMax.outputs.minVersion }}
 +
          tflint-version: ${{ env.TFLINT_VERSION }}
 +
          args: 'terraform_validate --color=always --show-diff-on-failure --files $(ls *.tf)'
 +
 
 +
  preCommitMaxVersion:
 +
    name: Max TF pre-commit
 +
    runs-on: ubuntu-latest
 +
    needs: collectInputs
 +
    steps:
 +
      - name: Checkout
 +
        uses: actions/checkout@v3
 +
        with:
 +
          ref: ${{ github.event.pull_request.head.ref }}
 +
          repository: ${{github.event.pull_request.head.repo.full_name}}
 +
 
 +
      - name: Terraform min/max versions
 +
        id: minMax
 +
        uses: clowdhaus/[email protected]
 +
 
 +
      - name: Pre-commit Terraform ${{ steps.minMax.outputs.maxVersion }}
 +
        uses: clowdhaus/terraform-composite-actions/[email protected]
 +
        with:
 +
          terraform-version: ${{ steps.minMax.outputs.maxVersion }}
 +
          tflint-version: ${{ env.TFLINT_VERSION }}
 +
          terraform-docs-version: ${{ env.TERRAFORM_DOCS_VERSION }}
 +
          install-hcledit: true
 +
</pre>
 +
 
 +
 
 +
 
 +
== See also ==
 +
* {{pre-commit}}
 +
 
 +
[[Category:IT]]

Latest revision as of 06:31, 17 July 2024

name: Pre-Commit

on:
  pull_request:
    branches:
      - main
      - master

env:
  TERRAFORM_DOCS_VERSION: v0.16.0
  TFLINT_VERSION: v0.44.1

jobs:
  collectInputs:
    name: Collect workflow inputs
    runs-on: ubuntu-latest
    outputs:
      directories: ${{ steps.dirs.outputs.directories }}
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Get root directories
        id: dirs
        uses: clowdhaus/terraform-composite-actions/[email protected]

  preCommitMinVersions:
    name: Min TF pre-commit
    needs: collectInputs
    runs-on: ubuntu-latest
    strategy:
      matrix:
        directory: ${{ fromJson(needs.collectInputs.outputs.directories) }}
    steps:
      - name: Checkout
        uses: actions/checkout@v3

      - name: Terraform min/max versions
        id: minMax
        uses: clowdhaus/[email protected]
        with:
          directory: ${{ matrix.directory }}

      - name: Pre-commit Terraform ${{ steps.minMax.outputs.minVersion }}
        # Run only validate pre-commit check on min version supported
        if: ${{ matrix.directory !=  '.' }}
        uses: clowdhaus/terraform-composite-actions/[email protected]
        with:
          terraform-version: ${{ steps.minMax.outputs.minVersion }}
          tflint-version: ${{ env.TFLINT_VERSION }}
          args: 'terraform_validate --color=always --show-diff-on-failure --files ${{ matrix.directory }}/*'

      - name: Pre-commit Terraform ${{ steps.minMax.outputs.minVersion }}
        # Run only validate pre-commit check on min version supported
        if: ${{ matrix.directory ==  '.' }}
        uses: clowdhaus/terraform-composite-actions/[email protected]
        with:
          terraform-version: ${{ steps.minMax.outputs.minVersion }}
          tflint-version: ${{ env.TFLINT_VERSION }}
          args: 'terraform_validate --color=always --show-diff-on-failure --files $(ls *.tf)'

  preCommitMaxVersion:
    name: Max TF pre-commit
    runs-on: ubuntu-latest
    needs: collectInputs
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          ref: ${{ github.event.pull_request.head.ref }}
          repository: ${{github.event.pull_request.head.repo.full_name}}

      - name: Terraform min/max versions
        id: minMax
        uses: clowdhaus/[email protected]

      - name: Pre-commit Terraform ${{ steps.minMax.outputs.maxVersion }}
        uses: clowdhaus/terraform-composite-actions/[email protected]
        with:
          terraform-version: ${{ steps.minMax.outputs.maxVersion }}
          tflint-version: ${{ env.TFLINT_VERSION }}
          terraform-docs-version: ${{ env.TERRAFORM_DOCS_VERSION }}
          install-hcledit: true


See also[edit]

Advertising: