Skip to content

Commit e38002e

Browse files
authored
Merge pull request #45455 from hashicorp/speed-up-ci
speed up ci
2 parents 006d270 + c845dc6 commit e38002e

File tree

2 files changed

+34
-39
lines changed

2 files changed

+34
-39
lines changed

.github/workflows/provider.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ jobs:
148148
path: ~/go/pkg/mod
149149
key: ${{ runner.os }}-go-pkg-mod-${{ hashFiles('go.sum') }}
150150
- name: Go Test
151-
run: go test ./...
151+
run: go test -parallel 16 ./...
152152

153153
import-lint:
154154
needs: [go_build]
@@ -276,7 +276,7 @@ jobs:
276276
277277
tfproviderdocs:
278278
needs: [terraform_providers_schema]
279-
runs-on: ubuntu-latest
279+
runs-on: custom-ubuntu-22.04-large
280280
steps:
281281
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
282282
- uses: actions/setup-go@4dc6199c7b1a012772edbd06daecab0f50c9053c # v6.1.0

.github/workflows/website.yml

Lines changed: 32 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -142,45 +142,40 @@ jobs:
142142

143143
- run: tflint --config .ci/.tflint.hcl --init
144144

145+
- run: sudo apt-get update && sudo apt-get install -y parallel
146+
145147
- run: |
146-
exit_code=0
147-
148-
# Configure the rules for tflint.
149-
# The *_invalid_* rules disabled here prevent evaluation of expressions.
150-
# Do not disable *_invalid_name rules, since these are good checks for e.g. "%s" formatting verbs
151-
# being carried over from test cases.
152-
shared_rules=(
153-
"--disable-rule=aws_cloudwatch_event_target_invalid_arn"
154-
"--disable-rule=aws_db_instance_default_parameter_group"
155-
"--disable-rule=aws_elasticache_cluster_default_parameter_group"
156-
"--disable-rule=aws_elasticache_replication_group_default_parameter_group"
157-
"--disable-rule=aws_iam_policy_sid_invalid_characters"
158-
"--disable-rule=aws_iam_saml_provider_invalid_saml_metadata_document"
159-
"--disable-rule=aws_iam_server_certificate_invalid_certificate_body"
160-
"--disable-rule=aws_iam_server_certificate_invalid_private_key"
161-
"--disable-rule=aws_iot_certificate_invalid_csr"
162-
"--disable-rule=aws_lb_invalid_load_balancer_type"
163-
"--disable-rule=aws_lb_target_group_invalid_protocol"
164-
"--disable-rule=aws_networkfirewall_rule_group_invalid_rules"
165-
"--disable-rule=aws_s3_object_copy_invalid_source"
166-
"--disable-rule=aws_servicecatalog_portfolio_share_invalid_type"
167-
"--disable-rule=aws_transfer_ssh_key_invalid_body"
168-
"--disable-rule=terraform_unused_declarations"
169-
"--disable-rule=terraform_typed_variables"
170-
)
171-
while read -r filename; do
148+
validate_file() {
149+
filename=$1
150+
151+
# Configure the rules for tflint.
152+
shared_rules=(
153+
"--disable-rule=aws_cloudwatch_event_target_invalid_arn"
154+
"--disable-rule=aws_db_instance_default_parameter_group"
155+
"--disable-rule=aws_elasticache_cluster_default_parameter_group"
156+
"--disable-rule=aws_elasticache_replication_group_default_parameter_group"
157+
"--disable-rule=aws_iam_policy_sid_invalid_characters"
158+
"--disable-rule=aws_iam_saml_provider_invalid_saml_metadata_document"
159+
"--disable-rule=aws_iam_server_certificate_invalid_certificate_body"
160+
"--disable-rule=aws_iam_server_certificate_invalid_private_key"
161+
"--disable-rule=aws_iot_certificate_invalid_csr"
162+
"--disable-rule=aws_lb_invalid_load_balancer_type"
163+
"--disable-rule=aws_lb_target_group_invalid_protocol"
164+
"--disable-rule=aws_networkfirewall_rule_group_invalid_rules"
165+
"--disable-rule=aws_s3_object_copy_invalid_source"
166+
"--disable-rule=aws_servicecatalog_portfolio_share_invalid_type"
167+
"--disable-rule=aws_transfer_ssh_key_invalid_body"
168+
"--disable-rule=terraform_unused_declarations"
169+
"--disable-rule=terraform_typed_variables"
170+
)
171+
172172
rules=("${shared_rules[@]}")
173173
if [[ "$filename" == "./website/docs/guides/version-2-upgrade.html.markdown" ]]; then
174-
# ./website/docs/guides/version-2-upgrade.html.markdown should still include pre-0.12 syntax,
175-
# since v1.0 does not support Terraform 0.12.
176174
rules+=(
177175
"--disable-rule=terraform_deprecated_index"
178176
"--disable-rule=terraform_deprecated_interpolation"
179177
)
180178
elif [[ "$filename" == "./website/docs/guides/version-3-upgrade.html.markdown" ]]; then
181-
# ./website/docs/guides/version-3-upgrade.html.markdown has one example showing migration from
182-
# pre-0.12 syntax to 0.12 syntax. We can't customize rules per block, and adding a
183-
# tflint-ignore directive to documentation is not ideal.
184179
rules+=(
185180
"--enable-rule=terraform_deprecated_index"
186181
"--disable-rule=terraform_deprecated_interpolation"
@@ -192,10 +187,10 @@ jobs:
192187
)
193188
fi
194189
195-
# We need to capture the output and error code here. We don't want to exit on the first error
196-
set +e
197-
./.ci/scripts/validate-terraform-file.sh "$filename" "${rules[@]}" || exit_code=1
198-
set -e
199-
done < <(find ./website/docs -not \( -path ./website/docs/cdktf -prune \) -type f -name '*.markdown' | sort -u)
190+
./.ci/scripts/validate-terraform-file.sh "$filename" "${rules[@]}"
191+
}
192+
export -f validate_file
200193
201-
exit $exit_code
194+
find ./website/docs -not \( -path ./website/docs/cdktf -prune \) -type f -name '*.markdown' | \
195+
sort -u | \
196+
parallel -j 16 --halt soon,fail=1 validate_file {}

0 commit comments

Comments
 (0)