1515# Make will use bash instead of sh
1616SHELL := /usr/bin/env bash
1717
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 ?= 0.11.10_216.0.0_1.19.1_0.1.10
22+ DOCKER_REPO_BASE_KITCHEN_TERRAFORM := ${DOCKER_ORG}/cft/kitchen-terraform:${DOCKER_TAG_BASE_KITCHEN_TERRAFORM}
23+
1824# All is the first target in the file so it will get picked up when you just run 'make' on its own
1925all : check_shell check_python check_golang check_terraform check_docker check_base_files test_check_headers check_headers check_trailing_whitespace generate_docs
2026
@@ -45,10 +51,6 @@ check_docker:
4551check_base_files :
4652 @source test/make.sh && basefiles
4753
48- .PHONY : check_shebangs
49- check_shebangs :
50- @source test/make.sh && check_bash
51-
5254.PHONY : check_trailing_whitespace
5355check_trailing_whitespace :
5456 @source test/make.sh && check_trailing_whitespace
@@ -60,9 +62,73 @@ test_check_headers:
6062
6163.PHONY : check_headers
6264check_headers :
63- @echo " Checking file headers"
64- @python test/verify_boilerplate.py
65+ @source test/make.sh && check_headers
66+
67+ # Integration tests
68+ .PHONY : test_integration
69+ test_integration :
70+ bundle install
71+ bundle exec kitchen create
72+ bundle exec kitchen converge
73+ bundle exec kitchen converge
74+ bundle exec kitchen verify
75+ bundle exec kitchen destroy
6576
6677.PHONY : generate_docs
6778generate_docs :
6879 @source test/make.sh && generate_docs
80+
81+ # Versioning
82+ .PHONY : version
83+ version :
84+ @source helpers/version-repo.sh
85+
86+ # Run docker
87+ .PHONY : docker_run
88+ docker_run :
89+ docker run --rm -it \
90+ -e CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE=${CREDENTIALS_PATH} \
91+ -e GOOGLE_APPLICATION_CREDENTIALS=${CREDENTIALS_PATH} \
92+ -v $(CURDIR ) :/cft/workdir \
93+ ${DOCKER_REPO_BASE_KITCHEN_TERRAFORM} \
94+ /bin/bash
95+
96+ .PHONY : docker_create
97+ docker_create :
98+ docker run --rm -it \
99+ -e CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE=${CREDENTIALS_PATH} \
100+ -e GOOGLE_APPLICATION_CREDENTIALS=${CREDENTIALS_PATH} \
101+ -v $(CURDIR ) :/cft/workdir \
102+ ${DOCKER_REPO_BASE_KITCHEN_TERRAFORM} \
103+ /bin/bash -c " kitchen create"
104+
105+ .PHONY : docker_converge
106+ docker_converge :
107+ docker run --rm -it \
108+ -e CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE=${CREDENTIALS_PATH} \
109+ -e GOOGLE_APPLICATION_CREDENTIALS=${CREDENTIALS_PATH} \
110+ -v $(CURDIR ) :/cft/workdir \
111+ ${DOCKER_REPO_BASE_KITCHEN_TERRAFORM} \
112+ /bin/bash -c " kitchen converge && kitchen converge"
113+
114+ .PHONY : docker_verify
115+ docker_verify :
116+ docker run --rm -it \
117+ -e CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE=${CREDENTIALS_PATH} \
118+ -e GOOGLE_APPLICATION_CREDENTIALS=${CREDENTIALS_PATH} \
119+ -v $(CURDIR ) :/cft/workdir \
120+ ${DOCKER_REPO_BASE_KITCHEN_TERRAFORM} \
121+ /bin/bash -c " kitchen verify"
122+
123+ .PHONY : docker_destroy
124+ docker_destroy :
125+ docker run --rm -it \
126+ -e CLOUDSDK_AUTH_CREDENTIAL_FILE_OVERRIDE=${CREDENTIALS_PATH} \
127+ -e GOOGLE_APPLICATION_CREDENTIALS=${CREDENTIALS_PATH} \
128+ -v $(CURDIR ) :/cft/workdir \
129+ ${DOCKER_REPO_BASE_KITCHEN_TERRAFORM} \
130+ /bin/bash -c " kitchen destroy"
131+
132+ .PHONY : test_integration_docker
133+ test_integration_docker : docker_create docker_converge docker_verify docker_destroy
134+ @echo " Running test-kitchen tests in docker"
0 commit comments