11version : 2.1
22
33orbs :
4- win : circleci/windows@5.0
54 go : circleci/go@1.11
65
76env : &env
87 environment :
98 GO111MODULE : auto
109 GRUNTWORK_INSTALLER_VERSION : v0.0.40
1110 MODULE_CI_VERSION : v0.58.1
12- TERRATEST_LOG_PARSER_VERSION : v0.37.0
1311 GOLANG_VERSION : 1.25.5
14- TOFU_VERSION : 1.10.2
1512
1613defaults : &defaults
1714 docker :
1815 - image : 087285199408.dkr.ecr.us-east-1.amazonaws.com/circle-ci-test-image-base:go1.24.3-tf1.5-tg58.8-pck1.8-ci58.2
1916 << : *env
2017
21- run_precommit : &run_precommit
22- # Fail the build if the pre-commit hooks don't pass. Note: if you run $ pre-commit install locally within this repo, these hooks will
23- # execute automatically every time before you commit, ensuring the build never fails at this step!
24- name : run pre-commit hooks
25- command : |
26- pre-commit install
27- pre-commit run --all-files
28-
29- install_tofu : &install_tofu
30- name : Install OpenTofu
31- command : |
32- pushd .
33- cd /tmp
34- curl -L "https://github.com/opentofu/opentofu/releases/download/v${TOFU_VERSION}/tofu_${TOFU_VERSION}_linux_amd64.zip" -o tofu.zip
35- unzip -o tofu.zip
36- sudo install -m 0755 tofu /usr/local/bin/tofu
37- rm -rf tofu
38- rm -rf tofu.zip
39- popd
40- tofu --version
41-
4218install_gruntwork_utils : &install_gruntwork_utils
4319 name : install gruntwork utils
4420 command : |
4521 curl -Ls https://raw.githubusercontent.com/gruntwork-io/gruntwork-installer/master/bootstrap-gruntwork-installer.sh | bash /dev/stdin --version "${GRUNTWORK_INSTALLER_VERSION}"
4622 gruntwork-install --module-name "gruntwork-module-circleci-helpers" --repo "https://github.com/gruntwork-io/terraform-aws-ci" --tag "${MODULE_CI_VERSION}"
4723 gruntwork-install --module-name "git-helpers" --repo "https://github.com/gruntwork-io/terraform-aws-ci" --tag "${MODULE_CI_VERSION}"
48- gruntwork-install --binary-name "terratest_log_parser" --repo "https://github.com/gruntwork-io/terratest" --tag "${TERRATEST_LOG_PARSER_VERSION}"
4924 configure-environment-for-gruntwork-module \
5025 --mise-version "NONE" \
5126 --terraform-version "NONE" \
@@ -56,105 +31,6 @@ install_gruntwork_utils: &install_gruntwork_utils
5631# BUILD JOBS
5732# ----------------------------------------------------------------------------------------------------------------------
5833jobs :
59- precommit :
60- << : *env
61- docker :
62- - image : 087285199408.dkr.ecr.us-east-1.amazonaws.com/circle-ci-test-image-base:go1.21.9-tf1.5-tg39.1-pck1.8-ci54.0
63- steps :
64- - checkout
65- # Fail the build if the pre-commit hooks don't pass. Note: if you run pre-commit install locally, these hooks will
66- # execute automatically every time before you commit, ensuring the build never fails at this step!
67- - run :
68- << : *run_precommit
69- tests :
70- << : *defaults
71- steps :
72- - checkout
73- - attach_workspace :
74- at : /home/circleci
75- - run :
76- << : *install_gruntwork_utils
77- - run :
78- << : *install_tofu
79- - run :
80- name : Install tools
81- command : |
82- make tools
83- - run :
84- name : Tidy check
85- command : |
86- go mod tidy
87- - run :
88- name : Run lint
89- command : |
90- make lint
91- - run :
92- command : |
93- mkdir -p logs
94- run-go-tests --parallelism 1 --packages "$(go list ./... | grep -v /test | tr '\n' ' ')" | tee logs/unit.log
95- - run :
96- name : Terratest log parser
97- command : |
98- terratest_log_parser --testlog logs/unit.log --outputdir logs
99- when : always
100- - store_artifacts :
101- path : logs
102- - store_test_results :
103- path : logs
104- integration_tests :
105- << : *defaults
106- steps :
107- - checkout
108- - attach_workspace :
109- at : /home/circleci
110- - run :
111- << : *install_gruntwork_utils
112- - run :
113- << : *install_tofu
114- - run :
115- name : Install tools
116- command : |
117- make tools
118- - run :
119- name : Tidy check
120- command : |
121- go mod tidy
122- - run :
123- command : |
124- mkdir -p logs
125- run-go-tests --packages "$(go list ./... | grep /test | tr '\n' ' ')" | tee logs/integration.log
126- - run :
127- name : Terratest log parser
128- command : |
129- terratest_log_parser --testlog logs/integration.log --outputdir logs
130- when : always
131- - store_artifacts :
132- path : logs
133- - store_test_results :
134- path : logs
135- test_windows :
136- executor :
137- name : win/default
138- size : " large"
139- steps :
140- - checkout
141- - run :
142- name : Install golang
143- shell : powershell.exe
144- command : ./.circleci/install-golang.ps1
145- - run :
146- name : Install Opentofu
147- shell : powershell.exe
148- command : ./.circleci/install-opentofu.ps1
149- - run :
150- name : Run go terraform tests
151- shell : powershell.exe
152- command : |
153- # to save time, we're running the tests in one go
154-
155- go mod tidy
156- go test -v ./...
157-
15834 build :
15935 resource_class : xlarge
16036 << : *defaults
@@ -234,57 +110,18 @@ jobs:
234110# ----------------------------------------------------------------------------------------------------------------------
235111workflows :
236112 version : 2
237- build-and-test :
113+ release :
238114 jobs :
239- - precommit :
240- context :
241- - AWS__PHXDEVOPS__circle-ci-test
242- - GITHUB__PAT__gruntwork-ci
243- filters :
244- tags :
245- only : /^v.*/
246- - tests :
247- context :
248- - AWS__PHXDEVOPS__circle-ci-test
249- - GITHUB__PAT__gruntwork-ci
250- - SLACK__TOKEN__refarch-deployer-test
251- - SLACK__WEBHOOK__refarch-deployer-test
252- - SLACK__CHANNEL__test-workflow-approvals
253- requires :
254- - precommit
255- filters :
256- tags :
257- only : /^v.*/
258- - integration_tests :
259- filters :
260- tags :
261- only : /^v.*/
262- context :
263- - AWS__PHXDEVOPS__circle-ci-test
264- - GCP__automated-tests
265- - GITHUB__PAT__gruntwork-ci
266- requires :
267- - precommit
268- - test_windows :
269- filters :
270- tags :
271- only : /^v.*/
272- context :
273- - AWS__PHXDEVOPS__circle-ci-test
274- - GCP__automated-tests
275- - GITHUB__PAT__gruntwork-ci
276- requires :
277- - precommit
278115 - build :
279116 filters :
280117 tags :
281118 only : /^v.*/
119+ branches :
120+ ignore : /.*/
282121 context :
283122 - AWS__PHXDEVOPS__circle-ci-test
284123 - GCP__automated-tests
285124 - GITHUB__PAT__gruntwork-ci
286- requires :
287- - precommit
288125 - release :
289126 requires :
290127 - build
0 commit comments