Deprecate cloud-bench #917
Workflow file for this run
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: CI - Pull Request | |
on: | |
pull_request: | |
paths: | |
- '**.tf' | |
- '**.md' | |
- '.pre-commit-config.yaml' | |
# 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: | |
getModules: | |
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('./**/versions.tf', recursive=True)]))") | |
echo "::set-output name=directories::$DIRS" | |
outputs: | |
directories: ${{ steps.matrix.outputs.directories }} | |
# min Terraform version(s) | |
preCommitMinVersions: | |
name: Min TF validate | |
needs: getModules | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
directory: ${{ fromJson(needs.getModules.outputs.directories) }} | |
steps: | |
- name: Checkout | |
uses: actions/checkout@v2 | |
- name: Install Python | |
uses: actions/setup-python@v2 | |
- name: Terraform min/max versions | |
id: minMax | |
uses: clowdhaus/[email protected] | |
with: | |
directory: ${{ matrix.directory }} | |
- name: Echo Terraform min/max versions | |
run: | | |
echo "min version for ${{ matrix.directory }}: ${{ steps.minMax.outputs.minVersion }}" | |
echo "max version for ${{ matrix.directory }}: ${{ steps.minMax.outputs.maxVersion }}" | |
- name: Install Terraform v${{ steps.minMax.outputs.minVersion }} | |
uses: hashicorp/setup-terraform@v1 | |
with: | |
terraform_version: ${{ steps.minMax.outputs.minVersion }} | |
- name: Set up Go | |
uses: actions/setup-go@v3 | |
with: | |
go-version: ${{ env.GO_VERSION }} | |
- name: Install pre-commit dependencies | |
run: | | |
pip install pre-commit | |
make deps | |
- name: Execute generate-terraform-providers for organizational | |
if: ${{ matrix.directory != '.' }} | |
run: | | |
pre-commit run generate_tf_providers -a | |
- name: Execute pre-commit min_version for non root path | |
# 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 min_version for root path | |
# 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) | |
# pre-commit hook for teraform max versions | |
getTerraformMinMaxVersion: | |
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 }} #not used | |
maxVersion: ${{ steps.minMax.outputs.maxVersion }} | |
preCommitMaxVersion: | |
name: Max TF pre-commit | |
runs-on: ubuntu-latest | |
needs: getTerraformMinMaxVersion | |
strategy: | |
fail-fast: false | |
matrix: | |
version: | |
- ${{ needs.getTerraformMinMaxVersion.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: Clean pre-commit cache | |
run: pre-commit clean | |
- name: Execute pre-commit max_version | |
# Run all pre-commit checks on max version supported | |
if: ${{ matrix.version == needs.getTerraformMinMaxVersion.outputs.maxVersion }} | |
run: pre-commit run --color=always --show-diff-on-failure --all-files |