Skip to content

Commit 1f2dcfc

Browse files
Add function to ensure code autogeneration has been run
1 parent d687f6e commit 1f2dcfc

File tree

2 files changed

+37
-4
lines changed

2 files changed

+37
-4
lines changed

Makefile

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ DOCKER_IMAGE_KITCHEN_TERRAFORM := cft/kitchen-terraform_terraform-google-kuberne
2828
all: check generate_docs
2929

3030
.PHONY: check
31-
check: check_shell check_python check_golang check_terraform check_docker check_base_files test_check_headers check_headers check_trailing_whitespace check_generate_docs
31+
check: check_shell check_python check_golang check_terraform check_docker check_base_files test_check_headers check_headers check_trailing_whitespace check_generate check_generate_docs
3232

3333
# The .PHONY directive tells make that this isn't a real target and so
3434
# the presence of a file named 'check_shell' won't cause this target to stop
@@ -75,6 +75,10 @@ check_headers:
7575
@echo "Checking file headers"
7676
@python test/verify_boilerplate.py
7777

78+
.PHONY: check_generate
79+
check_generate: ## Check that `make generate` does not generate a diff
80+
@source test/make.sh && check_generate
81+
7882
.PHONY: check_generate_docs
7983
check_generate_docs: ## Check that `make generate_docs` does not generate a diff
8084
@source test/make.sh && check_generate_docs
@@ -90,8 +94,7 @@ generate_docs:
9094

9195
.PHONY: generate
9296
generate:
93-
@pip install --user -r ./helpers/generate_modules/requirements.txt
94-
@./helpers/generate_modules/generate_modules.py
97+
@source test/make.sh && generate
9598

9699
# Versioning
97100
.PHONY: version

test/make.sh

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,11 @@ function check_trailing_whitespace() {
8686
fi
8787
}
8888

89+
function generate() {
90+
pip install --user -r ./helpers/generate_modules/requirements.txt
91+
./helpers/generate_modules/generate_modules.py
92+
}
93+
8994
function generate_docs() {
9095
echo "Generating markdown docs with terraform-docs"
9196
TMPFILE=$(mktemp)
@@ -97,12 +102,35 @@ function generate_docs() {
97102
rm -f "$TMPFILE"
98103
}
99104

105+
function check_generate() {
106+
TMPDIR=$(mktemp -d)
107+
git worktree add --detach "$TMPDIR" >/dev/null
108+
cd "$TMPDIR" || exit 1
109+
110+
generate >/dev/null
111+
generate_docs >/dev/null
112+
113+
git diff --stat --exit-code >/dev/null
114+
rc=$?
115+
cd - >/dev/null || exit 1
116+
117+
if [[ $rc -ne 0 ]]; then
118+
echo '"make generate" creates a diff, run "make generate" and commit the results'
119+
fi
120+
rm -rf "$TMPDIR"
121+
git worktree prune >/dev/null
122+
123+
echo "Code was generated properly"
124+
125+
exit $rc
126+
}
127+
100128
function check_generate_docs() {
101129
TMPDIR=$(mktemp -d)
102130
git worktree add --detach "$TMPDIR" >/dev/null
103131
cd "$TMPDIR" || exit 1
104132

105-
make generate_docs >/dev/null
133+
generate_docs >/dev/null
106134
git diff --stat --exit-code >/dev/null
107135
rc=$?
108136
cd - >/dev/null || exit 1
@@ -113,5 +141,7 @@ function check_generate_docs() {
113141
rm -rf "$TMPDIR"
114142
git worktree prune >/dev/null
115143

144+
echo "Docs were generated properly"
145+
116146
exit $rc
117147
}

0 commit comments

Comments
 (0)