From cbcfaa004a6ac8c17972410337c2e2c51aba87d8 Mon Sep 17 00:00:00 2001 From: Sumanth Reddy CH <38838077+sumanthreddy29@users.noreply.github.com> Date: Tue, 5 Mar 2024 12:41:53 -0500 Subject: [PATCH] Update terraform plan to support multi-region (#87) 1. Updated Terraform plan workflows to run validation for multi-region files. --------- Co-authored-by: Sumanth Reddy Chinna Pullaiah --- .github/workflows/terraform-plan.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/terraform-plan.yml b/.github/workflows/terraform-plan.yml index 4f95fc37c..a3e6db848 100644 --- a/.github/workflows/terraform-plan.yml +++ b/.github/workflows/terraform-plan.yml @@ -16,9 +16,9 @@ jobs: - name: Setup test matrix scenarios id: setup-matrix-scenarios run: | - matrix=$(find $GITHUB_WORKSPACE/scenarios/ -name "azure.json" -o -name "aws.json" | awk -F'/' '{gsub(".json", "", $11); print "{\"cloud\": \"" $11 "\", \"scenario_type\": \"" $8 "\", \"scenario_name\": \"" $9 "\"},"}' | sort | uniq | sed 's/,$/,/') - matrix="${matrix//$'\n'/''}" - echo "matrix_combinations={\"include\": [${matrix%?}]}" >> "$GITHUB_OUTPUT" + matrix=$(find $GITHUB_WORKSPACE/scenarios/ -name "*.json" | awk -F'/' '{split($11, file_name, "."); split(file_name[1], cloud_region, "-");region= (length(cloud_region) > 1) ? substr($11, index($11, "-") + 1) : ""; cloud=cloud_region[1]; gsub(".json", "", region); print "{\"cloud\": \"" cloud "\", \"file_name\": \"" file_name[1] "\", " (region != "" ? "\"region\": \"" region "\", " : "") "\"scenario_type\": \"" $8 "\", \"scenario_name\": \"" $9 "\"},"}' | sort | uniq | sed 's/,$/,/') + matrix="${matrix//$'\n'/''}" + echo "matrix_combinations={\"include\": [${matrix%?}]}" >> "$GITHUB_OUTPUT" outputs: matrix-combinations: ${{ steps.setup-matrix-scenarios.outputs.matrix_combinations }} @@ -30,7 +30,7 @@ jobs: max-parallel: 3 matrix: ${{ fromJson(needs.setup-matrix.outputs.matrix-combinations) }} runs-on: ubuntu-latest - name: ${{ matrix.cloud }}-${{ matrix.scenario_type }}-${{ matrix.scenario_name }} + name: ${{ matrix.cloud }}-${{ matrix.scenario_type }}-${{ matrix.scenario_name }} ${{ matrix.region }} steps: - name: Checkout Repository @@ -39,8 +39,8 @@ jobs: - name: Get job id and set env run: | echo "RUN_ID=123456789" >> "$GITHUB_ENV" - echo "TERRAFORM_INPUT_FILE=$GITHUB_WORKSPACE/scenarios/${{ matrix.scenario_type }}/${{ matrix.scenario_name }}/terraform-inputs/${{ matrix.cloud }}.tfvars" >> "$GITHUB_ENV" - echo "TERRAFORM_TEST_INPUT_FILE=$GITHUB_WORKSPACE/scenarios/${{ matrix.scenario_type }}/${{ matrix.scenario_name }}/terraform-test-inputs/${{ matrix.cloud }}.json" >> "$GITHUB_ENV" + echo "TERRAFORM_INPUT_FILE=$GITHUB_WORKSPACE/scenarios/${{ matrix.scenario_type }}/${{ matrix.scenario_name }}/terraform-inputs/${{ matrix.file_name }}.tfvars" >> "$GITHUB_ENV" + echo "TERRAFORM_TEST_INPUT_FILE=$GITHUB_WORKSPACE/scenarios/${{ matrix.scenario_type }}/${{ matrix.scenario_name }}/terraform-test-inputs/${{ matrix.file_name }}.json" >> "$GITHUB_ENV" echo "USER_DATA_PATH=$GITHUB_WORKSPACE/scenarios/${{ matrix.scenario_type }}/${{ matrix.scenario_name }}/bash-scripts" >> "$GITHUB_ENV" echo "TERRAFORM_MODULES_DIR=modules/terraform/${{ matrix.cloud }}" >> "$GITHUB_ENV" ssh_key_path=$GITHUB_WORKSPACE/modules/terraform/${{ matrix.cloud }}/private_key.pem