Deprecate cloud-bench #620
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Pre-Commit | |
on: | |
pull_request: | |
# only direct-push to master for small tasks such as markdown modifications and such | |
push: | |
branches: | |
- master | |
paths: | |
- '**.tf' | |
env: | |
GO_VERSION: "^1.17" | |
jobs: | |
# Min Terraform version(s) | |
getDirectories: | |
name: Get root directories | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install Python | |
uses: actions/setup-python@v2 | |
- name: Build matrix | |
id: matrix | |
run: | | |
DIRS=$(python -c "import json; import glob; print(json.dumps([x.replace('/versions.tf', '') for x in glob.glob('./examples/**/versions.tf', recursive=True)]))") | |
echo "::set-output name=directories::$DIRS" | |
outputs: | |
directories: ${{ steps.matrix.outputs.directories }} | |
preCommitMinVersions: | |
name: Min TF validate | |
needs: getDirectories | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
directory: ${{ fromJson(needs.getDirectories.outputs.directories) }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install Python | |
uses: actions/setup-python@v2 | |
- name: Set up Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Terraform min/max versions | |
id: minMax | |
uses: clowdhaus/[email protected] | |
with: | |
directory: ${{ matrix.directory }} | |
- name: Install Terraform v${{ steps.minMax.outputs.minVersion }} | |
uses: hashicorp/setup-terraform@v1 | |
with: | |
terraform_version: ${{ steps.minMax.outputs.minVersion }} | |
- name: Install pre-commit dependencies | |
run: | | |
pip install pre-commit | |
go install github.com/hashicorp/terraform-config-inspect@latest | |
make deps | |
- name: Initialize terraform modules | |
if: ${{ matrix.directory != '.' }} | |
run: | | |
make terraform-init | |
- name: Execute pre-commit | |
# Run only validate pre-commit check on min version supported | |
if: ${{ matrix.directory != '.' }} | |
run: pre-commit run terraform_validate --color=always --show-diff-on-failure --files ${{ matrix.directory }}/* | |
- name: Execute pre-commit | |
# Run only validate pre-commit check on min version supported | |
if: ${{ matrix.directory == '.' }} | |
run: pre-commit run terraform_validate --color=always --show-diff-on-failure --files $(ls *.tf) | |
# Max Terraform version | |
getBaseVersion: | |
name: Module max TF version | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Terraform min/max versions | |
id: minMax | |
uses: clowdhaus/[email protected] | |
outputs: | |
minVersion: ${{ steps.minMax.outputs.minVersion }} | |
maxVersion: ${{ steps.minMax.outputs.maxVersion }} | |
preCommitMaxVersion: | |
name: Max TF pre-commit | |
runs-on: ubuntu-latest | |
needs: getBaseVersion | |
strategy: | |
fail-fast: false | |
matrix: | |
version: | |
- ${{ needs.getBaseVersion.outputs.maxVersion }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install Python | |
uses: actions/setup-python@v2 | |
- name: Set up Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Install Terraform v${{ matrix.version }} | |
uses: hashicorp/setup-terraform@v1 | |
with: | |
terraform_version: ${{ matrix.version }} | |
- name: Install pre-commit dependencies | |
run: | | |
pip install pre-commit | |
make deps | |
- name: Execute pre-commit | |
# Run all pre-commit checks on max version supported | |
if: ${{ matrix.version == needs.getBaseVersion.outputs.maxVersion }} | |
run: pre-commit run --color=always --show-diff-on-failure --all-files |