@@ -86,121 +86,4 @@ following APIs enabled:
8686- Cloud Storage API: ` storage-component.googleapis.com `
8787
8888The [ Project Factory module] [ project-factory-module-site ] can be used to
89- provision projects with specific APIs activated.
90-
91- ## Testing
92-
93- The [ fixtures directory] ( test/fixtures ) and
94- [ integration directory] ( test/integration ) comprise Terraform
95- modules and InSpec tests used to verify the behaviour of this module.
96-
97- ### Testing Software Dependencies
98-
99- The following software dependencies must be installed on the system
100- from which the tests will be invoked:
101-
102- - [ Ruby] [ ruby-site ] v2.5
103- - [ Bundler] [ bundler-site ] v1.17
104-
105- ### Integration Tests
106-
107- Integration tests are invoked using [ Kitchen] [ kitchen-site ] ,
108- [ Kitchen-Terraform] [ kitchen-terraform-site ] , and [ InSpec] [ inspec-site ] .
109-
110- Kitchen instances are configured in the
111- [ Kitchen configuration file] ( kitchen.yml ) . The instances use the modules
112- in [ fixtures directory] ( test/fixtures ) to invoke identically named
113- modules in the [ examples directory] ( examples ) and test this module.
114-
115- #### Integration Tests Configuration
116-
117- Each Kitchen instance requires a variable file named ` terraform.tfvars `
118- to be created and populated in the associated test fixture. For
119- convenience, a [ sample variable file] [ sameple-variable-file ] is
120- available.
121-
122- A key file for a Service Account with the required
123- [ IAM roles] ( #iam-roles ) must be downloaded from the GCP console and
124- placed in the root directory of this repository. The key file must be
125- renamed to ` credentials.json ` .
126-
127- #### Integration Tests Execution
128-
129- Run ` make test_integration_docker ` to execute all of the Kitchen
130- instances in a non-interactive manner within a Docker container.
131-
132- Alternatively, the Kitchen instances can be invoked interactively:
133-
134- 1 . Run ` make docker_run ` to start the Docker container. The root
135- directory of this repository will be mounted in the Docker container
136- at ` /cft/workdir/ ` .
137- 1 . Run ` kitchen create ` to initialize all Kitchen instances, or run
138- ` kitchen create <INSTANCE_NAME> ` to initialize a specific Kitchen
139- instance.
140- 1 . Run ` kitchen converge ` to apply all Kitchen instances, or run
141- ` kitchen converge <INSTANCE_NAME> ` to apply a specific Kitchen
142- instance.
143- 1 . Run ` kitchen verify ` to test all Kitchen instances, or run
144- ` kitchen verify <INSTANCE_NAME> ` to test a specific Kitchen instance.
145- 1 . Run ` kitchen destroy ` to destroy all Kitchen instances, or run
146- ` kitchen destroy <INSTANCE_NAME> ` to destroy a specific Kitchen
147- instance.
148-
149- ## Linting
150-
151- Linters are available for most of the filetypes in this repository.
152-
153- ### Linting Software Dependencies
154-
155- The following software dependencies must be installed on the system
156- from which the linting will be invoked:
157-
158- - [ flake8] [ flake8-site ] .
159- - [ ShellCheck] [ shellcheck-site ] .
160- - [ terrafom validate] [ terraform-validate-site ] .
161-
162- ### Linting Execution
163-
164- Run ` make check --silent ` to execute all of the linters.
165-
166- Alternatively, the linters can be invoked individually.
167-
168- - Run ` make check_python ` to lint Python files.
169- - Run ` make check_shell ` to lint Shell files.
170- - Run ` make check_terraform ` to lint Terraform files.
171-
172- ## Documentation
173-
174- The documentation of inputs and outputs for modules in this repository
175- is automatically generated in each module's ` README.md ` based on the
176- contents of the relevant ` .tf ` files.
177-
178- ### Documentation Software Dependencies
179-
180- The following software dependencies must be installed on the system
181- from which the documentation will be generated:
182-
183- - [ terraform-docs] [ terraform-docs-site ] v0.6.0
184-
185- ### Generation
186-
187- Run ` make generate_docs ` to update the documentation.
188-
189- [ automatic-labelling-from-localhost-example ] : examples/automatic-labelling-from-localhost
190- [ bundler-site ] : https://bundler.io/
191- [ event-project-log-entry-submodule ] : modules/event-project-log-entry
192- [ repository-function-submodule ] : modules/repository-function
193- [ flake8-site ] : https://pypi.org/project/flake8/
194- [ gofmt-site ] : https://golang.org/cmd/gofmt/
195- [ hadolint-site ] : https://github.com/hadolint/hadolint/
196- [ inspec-site ] : https://inspec.io/
197- [ kitchen-site ] : https://kitchen.ci/
198- [ kitchen-terraform-site ] : https://github.com/newcontext-oss/kitchen-terraform/
199- [ project-factory-module-site ] : https://github.com/terraform-google-modules/terraform-google-project-factory/
200- [ ruby-site ] : https://ruby-lang.org/
201- [ sample-variable-file ] : test/fixtures/shared/terraform.tfvars.sample
202- [ shellcheck-site ] : https://www.shellcheck.net/
203- [ terraform-docs-site ] : https://github.com/segmentio/terraform-docs/releases/
204- [ terraform-provider-gcp-site ] : https://github.com/terraform-providers/terraform-provider-google/
205- [ terraform-site ] : https://www.terraform.io/
206- [ terraform-validate-site ] : https://www.terraform.io/docs/commands/validate.html
89+ provision projects with specific APIs activated.
0 commit comments