|
1 | 1 | #!/usr/bin/env sh
|
2 | 2 |
|
| 3 | +if [ ! $# -eq 1 ];then |
| 4 | + exit 1 |
| 5 | +fi |
| 6 | + |
3 | 7 | terraformVersionFile="tfversion.md"
|
4 | 8 | echo "" > $terraformVersionFile
|
5 | 9 | version=""
|
6 | 10 |
|
| 11 | +exitCode=0 |
7 | 12 | f=${1}
|
8 | 13 | success=true
|
9 | 14 | # echo $f
|
10 | 15 | echo ""
|
11 | 16 | echo "====> Terraform testing in" $f
|
12 | 17 | terraform -chdir=$f init -upgrade >/dev/null
|
| 18 | + |
| 19 | +echo "" |
| 20 | +echo "----> Plan Testing" |
| 21 | +terraform -chdir=$f plan >/dev/null |
13 | 22 | if [[ $? -ne 0 ]]; then
|
14 | 23 | success=false
|
15 |
| - echo -e "\033[31m[ERROR]\033[0m: running terraform init failed." |
| 24 | + exitCode=2 |
| 25 | + echo -e "\033[31m[ERROR]\033[0m: running terraform plan failed." |
16 | 26 | else
|
| 27 | + echo -e "\033[32m - plan check: success\033[0m" |
17 | 28 | echo ""
|
18 |
| - echo "----> Plan Testing" |
19 |
| - terraform -chdir=$f plan >/dev/null |
| 29 | + echo "----> Apply Testing" |
| 30 | + terraform -chdir=$f apply -auto-approve >/dev/null |
20 | 31 | if [[ $? -ne 0 ]]; then
|
21 |
| - success=false |
22 |
| - echo -e "\033[31m[ERROR]\033[0m: running terraform plan failed." |
| 32 | + success=false |
| 33 | + exitCode=3 |
| 34 | + echo -e "\033[31m[ERROR]\033[0m: running terraform apply failed." |
23 | 35 | else
|
24 |
| - echo -e "\033[32m - plan check: success\033[0m" |
25 |
| - echo "" |
26 |
| - echo "----> Apply Testing" |
27 |
| - terraform -chdir=$f apply -auto-approve >/dev/null |
28 |
| - if [[ $? -ne 0 ]]; then |
| 36 | + echo -e "\033[32m - apply check: success\033[0m" |
| 37 | + echo "" |
| 38 | + echo -e " ----> Apply Diff Checking\n" |
| 39 | + terraform -chdir=$f plan -detailed-exitcode |
| 40 | + if [[ $? -ne 0 ]]; then |
29 | 41 | success=false
|
30 |
| - echo -e "\033[31m[ERROR]\033[0m: running terraform apply failed." |
31 |
| - else |
32 |
| - echo -e "\033[32m - apply check: success\033[0m" |
33 |
| - echo "" |
34 |
| - echo -e " ----> Apply Diff Checking\n" |
35 |
| - terraform -chdir=$f plan -detailed-exitcode |
36 |
| - if [[ $? -ne 0 ]]; then |
37 |
| - success=false |
38 |
| - echo -e "\033[31m[ERROR]\033[0m: running terraform plan for checking diff failed." |
39 |
| - else |
40 |
| - echo -e "\033[32m - apply diff check: success\033[0m" |
41 |
| - fi |
42 |
| - fi |
43 |
| - echo "" |
44 |
| - echo " ----> Destroying" |
45 |
| - terraform -chdir=$f destroy -auto-approve >/dev/null |
46 |
| - if [[ $? -ne 0 ]]; then |
47 |
| - success=false |
48 |
| - echo -e "\033[31m[ERROR]\033[0m: running terraform destroy failed." |
49 |
| - else |
50 |
| - echo -e "\033[32m - destroy: success\033[0m" |
51 |
| - fi |
| 42 | + exitCode=4 |
| 43 | + echo -e "\033[31m[ERROR]\033[0m: running terraform plan for checking diff failed." |
| 44 | + else |
| 45 | + echo -e "\033[32m - apply diff check: success\033[0m" |
| 46 | + fi |
| 47 | + fi |
| 48 | + echo "" |
| 49 | + echo " ----> Destroying" |
| 50 | + terraform -chdir=$f destroy -auto-approve >/dev/null |
| 51 | + if [[ $? -ne 0 ]]; then |
| 52 | + success=false |
| 53 | + exitCode=5 |
| 54 | + echo -e "\033[31m[ERROR]\033[0m: running terraform destroy failed." |
| 55 | + else |
| 56 | + echo -e "\033[32m - destroy: success\033[0m" |
52 | 57 | fi
|
53 |
| - rm -rf $f/.terraform |
54 |
| - rm -rf $f/.terraform.lock.hcl |
55 | 58 | fi
|
56 | 59 |
|
57 | 60 | version=$(terraform -chdir=$f version)
|
|
63 | 66 | echo -e "### Versions\n" >> $terraformVersionFile
|
64 | 67 | echo -e "${version}" >> $terraformVersionFile
|
65 | 68 |
|
66 |
| -if [[ $success == false ]]; then |
67 |
| - exit 1 |
68 |
| -fi |
| 69 | +rm -rf $f/.terraform |
| 70 | +rm -rf $f/.terraform.lock.hcl |
69 | 71 |
|
70 |
| -exit 0 |
| 72 | +exit $exitCode |
0 commit comments