@@ -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 ; \
@@ -69,29 +71,27 @@ init:
69
71
@echo " --> Running terraform init"
70
72
@terraform init -backend=false
71
73
72
- security :
74
+ security : init
73
75
@echo " --> Running Security checks"
74
76
@trivy config .
75
77
$(MAKE ) security-modules
76
78
$(MAKE ) security-examples
77
79
78
80
security-modules :
79
81
@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
82
+ @find . -type d -regex ' .*/modules/[a-zA-Z\-_$$]*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
83
+ echo " --> Validating $$ dir" ; \
84
+ terraform init -backend=false; \
85
+ trivy config --format table --exit-code 1 --severity CRITICAL,HIGH --ignorefile .trivyignore $$ dir; \
86
+ done ;
86
87
87
88
security-examples :
88
89
@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
90
+ @find . -type d -path ' */examples/*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
91
+ echo " --> Validating $$ dir" ; \
92
+ terraform init -backend=false; \
93
+ trivy config --format table --exit-code 1 --severity CRITICAL,HIGH --ignorefile .trivyignore $$ dir; \
94
+ done ;
95
95
96
96
tests :
97
97
@echo " --> Running Terraform Tests"
@@ -103,26 +103,28 @@ validate:
103
103
@terraform validate
104
104
$(MAKE ) validate-modules
105
105
$(MAKE ) validate-examples
106
+ $(MAKE ) validate-commits
106
107
107
108
validate-modules :
108
109
@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
110
+ @find . -type d -regex ' .*/modules/[a-zA-Z\-_$$]*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
111
+ echo " --> Validating Module $$ dir" ; \
112
+ terraform -chdir=$$ dir init -backend=false; \
113
+ terraform -chdir=$$ dir validate; \
114
+ done ;
116
115
117
116
validate-examples :
118
117
@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
118
+ @find . -type d -path ' */examples/*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
119
+ echo " --> Validating $$ dir" ; \
120
+ terraform -chdir=$$ dir init -backend=false; \
121
+ terraform -chdir=$$ dir validate; \
122
+ done ;
123
+
124
+ validate-commits :
125
+ @echo " --> Running commitlint against the main branch"
126
+ @command -v commitlint > /dev/null 2>&1 || { echo " commitlint is not installed. Please install it by running 'npm install -g commitlint'" ; exit 1; }
127
+ @git log --pretty=format:" %s" origin/main..HEAD | commitlint --from=origin/main
126
128
127
129
lint :
128
130
@echo " --> Running tflint"
@@ -133,31 +135,27 @@ lint:
133
135
134
136
lint-modules :
135
137
@echo " --> Running tflint on modules"
136
- @if [ -d modules ]; then \
137
- find modules -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
138
- echo " --> Linting $$ dir" ; \
139
- tflint --chdir=$$ dir --init; \
140
- tflint --chdir=$$ dir -f compact; \
141
- done ; \
142
- fi
138
+ @find . -type d -regex ' .*/modules/[a-zA-Z\-_$$]*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
139
+ echo " --> Linting $$ dir" ; \
140
+ tflint --chdir=$$ dir --init; \
141
+ tflint --chdir=$$ dir -f compact; \
142
+ done ;
143
143
144
144
lint-examples :
145
145
@echo " --> Running tflint on examples"
146
- @if [ -d examples ]; then \
147
- find examples -type d -mindepth 1 -maxdepth 1 | while read -r dir; do \
148
- echo " --> Linting $$ dir" ; \
149
- tflint --chdir=$$ dir --init; \
150
- tflint --chdir=$$ dir -f compact; \
151
- done ; \
152
- fi
146
+ @find . -type d -path ' */examples/*' -not -path ' *.terraform*' 2> /dev/null | while read -r dir; do \
147
+ echo " --> Linting $$ dir" ; \
148
+ tflint --chdir=$$ dir --init; \
149
+ tflint --chdir=$$ dir -f compact; \
150
+ done ;
153
151
154
152
format :
155
153
@echo " --> Running terraform fmt"
156
154
@terraform fmt -recursive -write=true
157
155
158
156
clean :
159
157
@echo " --> Cleaning up"
160
- @find . -type d -name " .terraform" | while read -r dir; do \
158
+ @find . -type d -name " .terraform" 2> /dev/null | while read -r dir; do \
161
159
echo " --> Removing $$ dir" ; \
162
160
rm -rf $$ dir; \
163
161
done
0 commit comments