Skip to content

only azure

only azure #36

name: Changed files
on:
push:
branches:
- Optimize-GH-CI-Workflow
jobs:
setup-matrix:
runs-on: ubuntu-latest
name: Setup test matrix scenarios
steps:
- name: Checkout Repository
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup test matrix scenarios
id: setup-matrix-scenarios
run: |
set -eu
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/,$/,/')
echo $matrix
# Remove .md, .sh, .py and github files from the changed list
file_changes=$(git diff --name-only -r origin/main HEAD | grep -Ev '\.md$|\.sh$|\.py$|\.github/')
echo "file_changes: $file_changes"
terraform_module_changes=$(echo "$file_changes" | grep -E '\.tf$' | awk -F'/' '{print $3}' | xargs)
echo "terraform_module_changes: $terraform_module_changes"
run_all_tests=false
if [ $(echo "$terraform_module_changes" | wc -w) -eq 1 ]; then
updated_matrix=$(echo "$matrix" | sed 's/,\s*}/}/' | jq 'any(.cloud == "$cloud")'; echo $?)
else
run_all_tests=true
updated_matrix=$(echo "$matrix" | sed 's/,\s*}/}/' )
fi
echo "updated_matrix: $updated_matrix"
if [ "$run_all_tests" = false ]; then
changed_scenario_names=$(echo "$changed_scenario_files" | grep -E '^scenarios/' | awk -F'/' '{print $3}' | xargs)
echo "scenario_names: $changed_scenario_names"
for scenario in $changed_scenario_names; do
scenario_matrix=$(echo "$updated_matrix" | jq "map(select(.scenario_name == \"$scenario\"))")
updated_matrix=$(echo "$updated_matrix $scenario_matrix" | jq -s '.[]')
done
echo "updated_matrix: $updated_matrix"
fi
updated_matrix="${updated_matrix//$'\n'/''}"
matrix_combinations="{\"include\": [${updated_matrix%?}]}"
echo "matrix_combinations={\"include\": [${updated_matrix%?}]}" >> "$GITHUB_OUTPUT"
echo "matrix_combinations: $matrix_combinations"