@@ -36,21 +36,23 @@ examples:
36
36
37
37
documentation :
38
38
@echo " --> Generating documentation"
39
- @terraform-docs markdown table --output-file ${PWD} /README.md --output-mode inject .
39
+ @terraform-docs .
40
40
$(MAKE ) documentation-modules
41
41
$(MAKE ) documentation-examples
42
42
43
43
documentation-modules :
44
44
@echo " --> Generating documentation for modules"
45
- @if [ -d modules ]; then \
46
- find modules -type d -mindepth 1 -maxdepth 1 -exec terraform-docs markdown table --output-file README.md --output-mode inject {} \; ; \
47
- fi
45
+ @find . -type d -regex ' .*/modules/[a-za-z\-_$$]*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
46
+ echo " --> Generating documentation for module: $$ dir" ; \
47
+ terraform-docs $$ dir; \
48
+ done ;
48
49
49
50
documentation-examples :
50
- @echo " --> Generating documentation examples"
51
- @if [ -d examples ]; then \
52
- find examples -type d -mindepth 1 -maxdepth 1 -exec terraform-docs markdown table --output-file README.md --output-mode inject {} \; ; \
53
- fi
51
+ @echo " --> Generating documentation for examples"
52
+ @find . -type d -path ' */examples/*' -not -path ' *.terraform*' 2> /dev/null| while read -r dir; do \
53
+ echo " --> Generating documentation for example: $$ dir" ; \
54
+ terraform-docs $$ dir; \
55
+ done ;
54
56
55
57
upgrade-terraform-providers :
56
58
@printf " %s Upgrading Terraform providers for %-24s" " -->" " ."
@@ -59,7 +61,7 @@ upgrade-terraform-providers:
59
61
60
62
upgrade-terraform-example-providers :
61
63
@if [ -d examples ]; then \
62
- find examples -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
64
+ find examples -type d -mindepth 1 -maxdepth 1 2> /dev/null | while read -r dir; do \
63
65
printf " %s Upgrading Terraform providers for %-24s" " -->" " $$ dir" ; \
64
66
terraform -chdir=$$ dir init -upgrade > /dev/null && echo " [OK]" || echo " [FAILED]" ; \
65
67
done ; \
@@ -68,30 +70,32 @@ upgrade-terraform-example-providers:
68
70
init :
69
71
@echo " --> Running terraform init"
70
72
@terraform init -backend=false
73
+ @find . -type f -name " *.tf" -not -path ' *.terraform*' -exec dirname {} \; | sort -u | while read -r dir; do \
74
+ echo " --> Running terraform init in $$ dir" ; \
75
+ terraform -chdir=$$ dir init -backend=false; \
76
+ done ;
71
77
72
- security :
78
+ security : init
73
79
@echo " --> Running Security checks"
74
80
@trivy config .
75
81
$(MAKE ) security-modules
76
82
$(MAKE ) security-examples
77
83
78
84
security-modules :
79
85
@echo " --> Running Security checks on modules"
80
- @if [ -d modules ]; then \
81
- find modules -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
82
- echo " --> Validating $$ dir" ; \
83
- trivy config --format table --exit-code 1 --severity CRITICAL,HIGH --ignorefile .trivyignore $$ dir; \
84
- done ; \
85
- fi
86
+ @find . -type d -regex ' .*/modules/[a-zA-Z\-_$$]*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
87
+ echo " --> Validating $$ dir" ; \
88
+ terraform init -backend=false; \
89
+ trivy config --format table --exit-code 1 --severity CRITICAL,HIGH --ignorefile .trivyignore $$ dir; \
90
+ done ;
86
91
87
92
security-examples :
88
93
@echo " --> Running Security checks on examples"
89
- @if [ -d examples ]; then \
90
- find examples -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
91
- echo " --> Validating $$ dir" ; \
92
- trivy config --format table --exit-code 1 --severity CRITICAL,HIGH --ignorefile .trivyignore $$ dir; \
93
- done ; \
94
- fi
94
+ @find . -type d -path ' */examples/*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
95
+ echo " --> Validating $$ dir" ; \
96
+ terraform init -backend=false; \
97
+ trivy config --format table --exit-code 1 --severity CRITICAL,HIGH --ignorefile .trivyignore $$ dir; \
98
+ done ;
95
99
96
100
tests :
97
101
@echo " --> Running Terraform Tests"
@@ -103,29 +107,28 @@ validate:
103
107
@terraform validate
104
108
$(MAKE ) validate-modules
105
109
$(MAKE ) validate-examples
110
+ $(MAKE ) validate-commits
106
111
107
112
validate-modules :
108
113
@echo " --> Running terraform validate on modules"
109
- @if [ -d modules ]; then \
110
- find modules -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
111
- echo " --> Validating $$ dir" ; \
112
- terraform -chdir=$$ dir init -backend=false; \
113
- terraform -chdir=$$ dir validate; \
114
- done ; \
115
- fi
114
+ @find . -type d -regex ' .*/modules/[a-zA-Z\-_$$]*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
115
+ echo " --> Validating Module $$ dir" ; \
116
+ terraform -chdir=$$ dir init -backend=false; \
117
+ terraform -chdir=$$ dir validate; \
118
+ done ;
116
119
117
120
validate-examples :
118
121
@echo " --> Running terraform validate on examples"
119
- @if [ -d examples ]; then \
120
- find examples -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
121
- echo " --> Validating $$ dir" ; \
122
- terraform -chdir=$$ dir init -backend=false; \
123
- terraform -chdir=$$ dir validate; \
124
- done ; \
125
- fi
122
+ @find . -type d -path ' */examples/*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
123
+ echo " --> Validating $$ dir" ; \
124
+ terraform -chdir=$$ dir init -backend=false; \
125
+ terraform -chdir=$$ dir validate; \
126
+ done ;
126
127
127
128
validate-commits :
128
- @echo " --> Running commitlint against the "
129
+ @echo " --> Running commitlint against the main branch"
130
+ @command -v commitlint > /dev/null 2>&1 || { echo " commitlint is not installed. Please install it by running 'npm install -g commitlint'" ; exit 1; }
131
+ @git log --pretty=format:" %s" origin/main..HEAD | commitlint --from=origin/main
129
132
130
133
lint :
131
134
@echo " --> Running tflint"
@@ -136,31 +139,27 @@ lint:
136
139
137
140
lint-modules :
138
141
@echo " --> Running tflint on modules"
139
- @if [ -d modules ]; then \
140
- find modules -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
141
- echo " --> Linting $$ dir" ; \
142
- tflint --chdir=$$ dir --init; \
143
- tflint --chdir=$$ dir -f compact; \
144
- done ; \
145
- fi
142
+ @find . -type d -regex ' .*/modules/[a-zA-Z\-_$$]*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
143
+ echo " --> Linting $$ dir" ; \
144
+ tflint --chdir=$$ dir --init; \
145
+ tflint --chdir=$$ dir -f compact; \
146
+ done ;
146
147
147
148
lint-examples :
148
149
@echo " --> Running tflint on examples"
149
- @if [ -d examples ]; then \
150
- find examples -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
151
- echo " --> Linting $$ dir" ; \
152
- tflint --chdir=$$ dir --init; \
153
- tflint --chdir=$$ dir -f compact; \
154
- done ; \
155
- fi
150
+ @find . -type d -path ' */examples/*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
151
+ echo " --> Linting $$ dir" ; \
152
+ tflint --chdir=$$ dir --init; \
153
+ tflint --chdir=$$ dir -f compact; \
154
+ done ;
156
155
157
156
format :
158
157
@echo " --> Running terraform fmt"
159
158
@terraform fmt -recursive -write=true
160
159
161
160
clean :
162
161
@echo " --> Cleaning up"
163
- @find . -type d -name " .terraform" | while read -r dir; do \
162
+ @find . -type d -name " .terraform" 2> /dev/null | while read -r dir; do \
164
163
echo " --> Removing $$ dir" ; \
165
164
rm -rf $$ dir; \
166
165
done
0 commit comments