|
1 |
| -# Copyright 2018 Google LLC |
| 1 | +# Copyright 2019 Google LLC |
2 | 2 | #
|
3 | 3 | # Licensed under the Apache License, Version 2.0 (the "License");
|
4 | 4 | # you may not use this file except in compliance with the License.
|
|
12 | 12 | # See the License for the specific language governing permissions and
|
13 | 13 | # limitations under the License.
|
14 | 14 |
|
| 15 | +# Please note that this file was generated from [terraform-google-module-template](https://github.com/terraform-google-modules/terraform-google-module-template). |
| 16 | +# Please make sure to contribute relevant changes upstream! |
| 17 | + |
15 | 18 | # Make will use bash instead of sh
|
16 | 19 | SHELL := /usr/bin/env bash
|
17 | 20 |
|
18 |
| -# Docker build config variables |
19 |
| -CREDENTIALS_PATH ?= /cft/workdir/credentials.json |
20 |
| -DOCKER_ORG := gcr.io/cloud-foundation-cicd |
21 |
| -DOCKER_TAG_BASE_KITCHEN_TERRAFORM ?= 2.3.0 |
22 |
| -DOCKER_REPO_BASE_KITCHEN_TERRAFORM := ${DOCKER_ORG}/cft/kitchen-terraform:${DOCKER_TAG_BASE_KITCHEN_TERRAFORM} |
23 |
| - |
24 |
| -# All is the first target in the file so it will get picked up when you just run 'make' on its own |
25 |
| -.PHONY: all |
26 |
| -all: check generate_docs |
27 |
| - |
28 |
| -.PHONY: check |
29 |
| -check: check_shell check_python check_golang check_terraform check_base_files test_check_headers check_headers check_trailing_whitespace check_generate check_generate_docs |
30 |
| - |
31 |
| -# The .PHONY directive tells make that this isn't a real target and so |
32 |
| -# the presence of a file named 'check_shell' won't cause this target to stop |
33 |
| -# working |
34 |
| -.PHONY: check_shell |
35 |
| -check_shell: |
36 |
| - @source test/make.sh && check_shell |
37 |
| - |
38 |
| -.PHONY: check_python |
39 |
| -check_python: |
40 |
| - @source test/make.sh && check_python |
41 |
| - |
42 |
| -.PHONY: check_golang |
43 |
| -check_golang: |
44 |
| - @source test/make.sh && golang |
45 |
| - |
46 |
| -.PHONY: check_terraform |
47 |
| -check_terraform: |
48 |
| - @source test/make.sh && check_terraform |
49 |
| - |
50 |
| -.PHONY: check_base_files |
51 |
| -check_base_files: |
52 |
| - @source test/make.sh && basefiles |
| 21 | +DOCKER_TAG_VERSION_DEVELOPER_TOOLS := 0.1.0 |
| 22 | +DOCKER_IMAGE_DEVELOPER_TOOLS := cft/developer-tools |
| 23 | +REGISTRY_URL := gcr.io/cloud-foundation-cicd |
53 | 24 |
|
54 |
| -.PHONY: check_shebangs |
55 |
| -check_shebangs: |
56 |
| - @source test/make.sh && check_bash |
57 |
| - |
58 |
| -.PHONY: check_trailing_whitespace |
59 |
| -check_trailing_whitespace: |
60 |
| - @source test/make.sh && check_trailing_whitespace |
61 |
| - |
62 |
| -.PHONY: test_check_headers |
63 |
| -test_check_headers: |
64 |
| - @echo "Testing the validity of the header check" |
65 |
| - @python test/test_verify_boilerplate.py |
66 |
| - |
67 |
| -.PHONY: check_headers |
68 |
| -check_headers: |
69 |
| - @echo "Checking file headers" |
70 |
| - @python test/verify_boilerplate.py |
71 |
| - |
72 |
| -.PHONY: check_generate |
73 |
| -check_generate: ## Check that `make generate` does not generate a diff |
74 |
| - @source test/make.sh && check_generate |
75 |
| - |
76 |
| -.PHONY: check_generate_docs |
77 |
| -check_generate_docs: ## Check that `make generate_docs` does not generate a diff |
78 |
| - @source test/make.sh && check_generate_docs |
79 |
| - |
80 |
| -# Integration tests |
81 |
| -.PHONY: test_integration |
82 |
| -test_integration: |
83 |
| - test/ci_integration.sh |
84 |
| - |
85 |
| -.PHONY: generate_docs |
86 |
| -generate_docs: |
87 |
| - @source test/make.sh && generate_docs |
88 |
| - |
89 |
| -.PHONY: generate |
90 |
| -generate: |
91 |
| - @source test/make.sh && generate |
92 |
| - |
93 |
| -.PHONY: dev |
94 |
| -dev: generate generate_docs |
95 |
| - @echo "Updated files" |
96 |
| - |
97 |
| -# Versioning |
98 |
| -.PHONY: version |
99 |
| -version: |
100 |
| - @source helpers/version-repo.sh |
101 |
| - |
102 |
| -# Run docker |
| 25 | +# Enter docker container for local development |
103 | 26 | .PHONY: docker_run
|
104 | 27 | docker_run:
|
105 | 28 | docker run --rm -it \
|
106 |
| - -e COMPUTE_ENGINE_SERVICE_ACCOUNT \ |
107 |
| - -e PROJECT_ID \ |
108 |
| - -e REGION \ |
109 |
| - -e ZONES \ |
110 | 29 | -e SERVICE_ACCOUNT_JSON \
|
111 |
| - -e CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE=${CREDENTIALS_PATH} \ |
112 |
| - -e GOOGLE_APPLICATION_CREDENTIALS=${CREDENTIALS_PATH} \ |
113 |
| - -v "$(CURDIR)":/cft/workdir \ |
114 |
| - ${DOCKER_REPO_BASE_KITCHEN_TERRAFORM} \ |
115 |
| - /bin/bash -c "source test/ci_integration.sh && setup_environment && exec /bin/bash" |
| 30 | + -v $(CURDIR):/workspace \ |
| 31 | + $(REGISTRY_URL)/${DOCKER_IMAGE_DEVELOPER_TOOLS}:${DOCKER_TAG_VERSION_DEVELOPER_TOOLS} \ |
| 32 | + /bin/bash |
116 | 33 |
|
117 |
| -.PHONY: docker_create |
118 |
| -docker_create: docker_build_kitchen_terraform |
| 34 | +# Execute prepare tests within the docker container |
| 35 | +.PHONY: docker_test_prepare |
| 36 | +docker_test_prepare: |
119 | 37 | docker run --rm -it \
|
120 |
| - -e COMPUTE_ENGINE_SERVICE_ACCOUNT \ |
121 |
| - -e PROJECT_ID \ |
122 |
| - -e REGION \ |
123 |
| - -e ZONES \ |
124 | 38 | -e SERVICE_ACCOUNT_JSON \
|
125 |
| - -e CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE=${CREDENTIALS_PATH} \ |
126 |
| - -e GOOGLE_APPLICATION_CREDENTIALS=${CREDENTIALS_PATH} \ |
127 |
| - -v "$(CURDIR)":/cft/workdir \ |
128 |
| - ${DOCKER_REPO_BASE_KITCHEN_TERRAFORM} \ |
129 |
| - /bin/bash -c "source test/ci_integration.sh && setup_environment && kitchen create" |
130 |
| - |
131 |
| -.PHONY: docker_converge |
132 |
| -docker_converge: |
| 39 | + -e TF_VAR_org_id \ |
| 40 | + -e TF_VAR_folder_id \ |
| 41 | + -e TF_VAR_billing_account \ |
| 42 | + -v $(CURDIR):/workspace \ |
| 43 | + $(REGISTRY_URL)/${DOCKER_IMAGE_DEVELOPER_TOOLS}:${DOCKER_TAG_VERSION_DEVELOPER_TOOLS} \ |
| 44 | + /usr/local/bin/execute_with_credentials.sh prepare_environment |
| 45 | + |
| 46 | +# Clean up test environment within the docker container |
| 47 | +.PHONY: docker_test_cleanup |
| 48 | +docker_test_cleanup: |
133 | 49 | docker run --rm -it \
|
134 |
| - -e COMPUTE_ENGINE_SERVICE_ACCOUNT \ |
135 |
| - -e PROJECT_ID \ |
136 |
| - -e REGION \ |
137 |
| - -e ZONES \ |
138 | 50 | -e SERVICE_ACCOUNT_JSON \
|
139 |
| - -e CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE=${CREDENTIALS_PATH} \ |
140 |
| - -e GOOGLE_APPLICATION_CREDENTIALS=${CREDENTIALS_PATH} \ |
141 |
| - -v "$(CURDIR)":/cft/workdir \ |
142 |
| - ${DOCKER_REPO_BASE_KITCHEN_TERRAFORM} \ |
143 |
| - /bin/bash -c "source test/ci_integration.sh && setup_environment && kitchen converge && kitchen converge" |
144 |
| - |
145 |
| -.PHONY: docker_verify |
146 |
| -docker_verify: |
| 51 | + -e TF_VAR_org_id \ |
| 52 | + -e TF_VAR_folder_id \ |
| 53 | + -e TF_VAR_billing_account \ |
| 54 | + -v $(CURDIR):/workspace \ |
| 55 | + $(REGISTRY_URL)/${DOCKER_IMAGE_DEVELOPER_TOOLS}:${DOCKER_TAG_VERSION_DEVELOPER_TOOLS} \ |
| 56 | + /usr/local/bin/execute_with_credentials.sh cleanup_environment |
| 57 | + |
| 58 | +# Execute integration tests within the docker container |
| 59 | +.PHONY: docker_test_integration |
| 60 | +docker_test_integration: |
147 | 61 | docker run --rm -it \
|
148 |
| - -e COMPUTE_ENGINE_SERVICE_ACCOUNT \ |
149 |
| - -e PROJECT_ID \ |
150 |
| - -e REGION \ |
151 |
| - -e ZONES \ |
152 | 62 | -e SERVICE_ACCOUNT_JSON \
|
153 |
| - -e CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE=${CREDENTIALS_PATH} \ |
154 |
| - -e GOOGLE_APPLICATION_CREDENTIALS=${CREDENTIALS_PATH} \ |
155 |
| - -v "$(CURDIR)":/cft/workdir \ |
156 |
| - ${DOCKER_REPO_BASE_KITCHEN_TERRAFORM} \ |
157 |
| - /bin/bash -c "source test/ci_integration.sh && setup_environment && kitchen verify" |
| 63 | + -v $(CURDIR):/workspace \ |
| 64 | + $(REGISTRY_URL)/${DOCKER_IMAGE_DEVELOPER_TOOLS}:${DOCKER_TAG_VERSION_DEVELOPER_TOOLS} \ |
| 65 | + /usr/local/bin/test_integration.sh |
158 | 66 |
|
159 |
| -.PHONY: docker_destroy |
160 |
| -docker_destroy: |
| 67 | +# Execute lint tests within the docker container |
| 68 | +.PHONY: docker_test_lint |
| 69 | +docker_test_lint: |
161 | 70 | docker run --rm -it \
|
162 |
| - -e COMPUTE_ENGINE_SERVICE_ACCOUNT \ |
163 |
| - -e PROJECT_ID \ |
164 |
| - -e REGION \ |
165 |
| - -e ZONES \ |
166 |
| - -e SERVICE_ACCOUNT_JSON \ |
167 |
| - -e CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE=${CREDENTIALS_PATH} \ |
168 |
| - -e GOOGLE_APPLICATION_CREDENTIALS=${CREDENTIALS_PATH} \ |
169 |
| - -v "$(CURDIR)":/cft/workdir \ |
170 |
| - ${DOCKER_REPO_BASE_KITCHEN_TERRAFORM} \ |
171 |
| - /bin/bash -c "source test/ci_integration.sh && setup_environment && kitchen destroy" |
| 71 | + -v $(CURDIR):/workspace \ |
| 72 | + $(REGISTRY_URL)/${DOCKER_IMAGE_DEVELOPER_TOOLS}:${DOCKER_TAG_VERSION_DEVELOPER_TOOLS} \ |
| 73 | + /usr/local/bin/test_lint.sh |
172 | 74 |
|
173 |
| -.PHONY: test_integration_docker |
174 |
| -test_integration_docker: |
| 75 | +# Generate documentation |
| 76 | +.PHONY: docker_generate_docs |
| 77 | +docker_generate_docs: |
175 | 78 | docker run --rm -it \
|
176 |
| - -e COMPUTE_ENGINE_SERVICE_ACCOUNT \ |
177 |
| - -e PROJECT_ID \ |
178 |
| - -e REGION \ |
179 |
| - -e ZONES \ |
180 |
| - -e SERVICE_ACCOUNT_JSON \ |
181 |
| - -v "$(CURDIR)":/cft/workdir \ |
182 |
| - ${DOCKER_REPO_BASE_KITCHEN_TERRAFORM} \ |
183 |
| - /bin/bash -c "test/ci_integration.sh" |
| 79 | + -v $(CURDIR):/workspace \ |
| 80 | + $(REGISTRY_URL)/${DOCKER_IMAGE_DEVELOPER_TOOLS}:${DOCKER_TAG_VERSION_DEVELOPER_TOOLS} \ |
| 81 | + /bin/bash -c 'source /usr/local/bin/task_helper_functions.sh && generate_docs' |
| 82 | + |
| 83 | +# Generate files from autogen |
| 84 | +.PHONY: docker_generate |
| 85 | +docker_generate: |
| 86 | + docker run --rm -it \ |
| 87 | + -v $(CURDIR):/workspace \ |
| 88 | + $(REGISTRY_URL)/${DOCKER_IMAGE_DEVELOPER_TOOLS}:${DOCKER_TAG_VERSION_DEVELOPER_TOOLS} \ |
| 89 | + /bin/bash -c 'source /usr/local/bin/task_helper_functions.sh && generate' |
| 90 | + |
| 91 | +# Alias for backwards compatibility |
| 92 | +.PHONY: generate_docs |
| 93 | +generate_docs: docker_generate_docs |
| 94 | + |
| 95 | +.PHONY: generate |
| 96 | +generate: docker_generate |
0 commit comments