11#! /usr/bin/env sh
2- error=false
32
4- success=true
5- allSuccess=true
6- record=false
7- folders=$1
8- if [ ! -n " $1 " ] ; then
9- exit 0
10- fi
11- if [ -n " $2 " ] ; then
12- record=true
13- folders=$( find quickstarts -maxdepth 2 -mindepth 2 -type d)
3+ if [ ! $# -eq 1 ]; then
4+ exit 6
145fi
15- for f in ${folders// ,/ }
16- do
17- success=true
18- echo $f
19- f=$( echo $f | xargs echo -n)
20- export TF_LOG_PATH=${f} /terraform.log
21- echo " "
22- echo " ====> Terraform testing in" $f
23- terraform -chdir=$f init -upgrade
24- ~ /init_env.sh
25- source ~ /.terraform_profile
6+
7+ f=$1
8+ success=true
9+
10+ f=$( echo $f | xargs echo -n)
11+
12+ exitCode=0
13+ echo " "
14+ echo " ====> Terraform testing in" $f
15+ terraform -chdir=$f init -upgrade > /dev/null
16+ if [[ $? -ne 0 ]]; then
17+ success=false
18+ exitCode=1
19+ echo -e " \033[31m[ERROR]\033[0m: running terraform init failed."
20+ bash scripts/generate-test-record.sh $f " Init: running terraform init failed."
21+ else
2622 echo " "
27- echo " ----> Plan Testing"
28- cp scripts/plan.tftest.hcl $f /
29- terraform -chdir=$f test test -verbose
23+ echo " ----> Plan Testing"
24+ terraform -chdir=$f plan > /dev/null
3025 if [[ $? -ne 0 ]]; then
3126 success=false
32- allSuccess=false
33- echo -e " \033[31m[ERROR]\033[0m: running terraform test for plan failed."
34- bash scripts/generate-test-record.sh $record $ f " Plan: running terraform test for plan failed."
27+ exitCode=2
28+ echo -e " \033[31m[ERROR]\033[0m: running terraform plan failed."
29+ bash scripts/generate-test-record.sh $f " Plan: running terraform plan failed."
3530 else
31+ echo -e " \033[32m - plan check: success\033[0m"
3632 echo " "
37- echo " ----> Apply Testing"
38- rm -rf $f /plan.tftest.hcl
39- cp scripts/apply.tftest.hcl $f /
40- terraform -chdir=$f test test
33+ echo " ----> Apply Testing"
34+ terraform -chdir=$f apply -auto-approve > /dev/null
4135 if [[ $? -ne 0 ]]; then
4236 success=false
43- allSuccess=false
44- echo -e " \033[31m[ERROR]\033[0m: running terraform test for apply failed."
45- bash scripts/generate-test-record.sh $record $f " Apply: running terraform test for apply failed."
37+ exitCode=3
38+ echo -e " \033[31m[ERROR]\033[0m: running terraform apply failed."
39+ bash scripts/generate-test-record.sh $f " Apply: running terraform apply failed."
40+ else
41+ echo -e " \033[32m - apply check: success\033[0m"
42+ echo " "
43+ echo -e " ----> Apply Diff Checking\n"
44+ terraform -chdir=$f plan -detailed-exitcode
45+ if [[ $? -ne 0 ]]; then
46+ success=false
47+ exitCode=4
48+ echo -e " \033[31m[ERROR]\033[0m: running terraform plan for checking diff failed."
49+ bash scripts/generate-test-record.sh $f " Checking diff: running terraform plan for checking diff failed."
50+ else
51+ echo -e " \033[32m - apply diff check: success\033[0m"
52+ fi
53+ fi
54+ echo " "
55+ echo " ----> Destroying"
56+ terraform -chdir=$f destroy -auto-approve > /dev/null
57+ if [[ $? -ne 0 ]]; then
58+ success=false
59+ exitCode=5
60+ echo -e " \033[31m[ERROR]\033[0m: running terraform destroy failed."
61+ bash scripts/generate-test-record.sh $f " Destroy: running terraform destroy failed."
62+ else
63+ echo -e " \033[32m - destroy: success\033[0m"
4664 fi
47- rm -rf $f /apply.tftest.hcl
4865 fi
66+
4967 if [[ $success == " true" ]]; then
50- bash scripts/generate-test-record.sh $record $ f
68+ bash scripts/generate-test-record.sh $f
5169 fi
52- done
5370
54- # e2e
55- if [[ $allSuccess == " false" && $record == " false" ]]; then
56- exit 1
71+ rm -rf $f /.terraform
72+ rm -rf $f /.terraform.lock.hcl
5773fi
5874
59- exit 0
75+ echo -e " \n"
76+
77+ exit $exitCode
0 commit comments