22
33f=$1
44success=true
5+ exitCode=0
56
67f=$( echo $f | xargs echo -n)
78
8- exitCode=0
9+ # set up prerequisite resources
10+ varfile=" "
11+ if [ -d " $f /prepare" ]; then
12+ echo " "
13+ echo " ====> Found prepare directory. Creating prerequisite resources in $f /prepare"
14+ terraform -chdir=$f /prepare init -upgrade > /dev/null
15+ if [[ $? -ne 0 ]]; then
16+ success=false
17+ exitCode=1
18+ echo -e " \033[31m[ERROR]\033[0m: running terraform init in prepare directory failed."
19+ bash scripts/generate-test-record.sh $f " Prepare Init: running terraform init in prepare directory failed."
20+ else
21+ terraform -chdir=$f /prepare apply -auto-approve > /dev/null
22+ if [[ $? -ne 0 ]]; then
23+ success=false
24+ exitCode=3
25+ echo -e " \033[31m[ERROR]\033[0m: running terraform apply in prepare directory failed."
26+ bash scripts/generate-test-record.sh $f " Prepare Apply: running terraform apply in prepare directory failed."
27+ else
28+ echo -e " \033[32m - prepare apply: success\033[0m"
29+ terraform -chdir=$f /prepare output > $f /prepare/terraform.tfvars
30+ varfile=" -var-file=./prepare/terraform.tfvars"
31+ fi
32+ fi
33+ fi
34+ if [[ $success == " false" ]]; then
35+ rm -rf $f /prepare/.terraform
36+ rm -rf $f /prepare/.terraform.lock.hcl
37+ exit $exitCode
38+ fi
39+
40+
941echo " "
1042echo " ====> Terraform testing in" $f
1143terraform -chdir=$f init -upgrade > /dev/null
@@ -17,7 +49,7 @@ if [[ $? -ne 0 ]]; then
1749else
1850 echo " "
1951 echo " ----> Plan Testing"
20- terraform -chdir=$f plan > /dev/null
52+ terraform -chdir=$f plan $varfile > /dev/null
2153 if [[ $? -ne 0 ]]; then
2254 success=false
2355 exitCode=2
2759 echo -e " \033[32m - plan check: success\033[0m"
2860 echo " "
2961 echo " ----> Apply Testing"
30- terraform -chdir=$f apply -auto-approve > /dev/null
62+ terraform -chdir=$f apply -auto-approve $varfile > /dev/null
3163 if [[ $? -ne 0 ]]; then
3264 success=false
3365 exitCode=3
3769 echo -e " \033[32m - apply check: success\033[0m"
3870 echo " "
3971 echo -e " ----> Apply Diff Checking\n"
40- terraform -chdir=$f plan -detailed-exitcode
72+ terraform -chdir=$f plan $varfile -detailed-exitcode
4173 if [[ $? -ne 0 ]]; then
4274 success=false
4375 exitCode=4
5385 fi
5486 echo " "
5587 echo " ----> Destroying"
56- terraform -chdir=$f destroy -auto-approve > /dev/null
88+ terraform -chdir=$f destroy $varfile -auto-approve > /dev/null
5789 if [[ $? -ne 0 ]]; then
5890 success=false
5991 if [[ $exitCode -eq 0 ]]; then
6698 fi
6799 fi
68100
69- if [[ $success == " true" ]]; then
70- bash scripts/generate-test-record.sh $f
71- fi
72-
73101 rm -rf $f /.terraform
74102 rm -rf $f /.terraform.lock.hcl
75103fi
76104
105+ # destroy prerequisite resources
106+ if [ -d " $f /prepare" ]; then
107+ echo " "
108+ echo " ====> Destroying prerequisite resources in $f /prepare"
109+ terraform -chdir=$f /prepare destroy -auto-approve > /dev/null
110+ if [[ $? -ne 0 ]]; then
111+ success=false
112+ exitCode=5
113+ echo -e " \033[31m[ERROR]\033[0m: running terraform destroy in prepare directory failed."
114+ bash scripts/generate-test-record.sh $f " Prepare Destroy: running terraform destroy in prepare directory failed."
115+ else
116+ echo -e " \033[32m - prepare destroy: success\033[0m"
117+ fi
118+ rm -rf $f /prepare/.terraform
119+ rm -rf $f /prepare/.terraform.lock.hcl
120+ fi
121+
122+
123+ if [[ $success == " true" ]]; then
124+ bash scripts/generate-test-record.sh $f
125+ fi
77126echo -e " \n"
78127
79128exit $exitCode
0 commit comments