mirror of
https://github.com/coder/coder.git
synced 2026-06-07 15:08:20 +00:00
76 lines
1.6 KiB
Bash
Executable File
76 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
cd "$(dirname "${BASH_SOURCE[0]}")"
|
|
|
|
generate() {
|
|
local name="$1"
|
|
|
|
echo "=== BEGIN: $name"
|
|
terraform init -upgrade &&
|
|
terraform plan -out terraform.tfplan &&
|
|
terraform show -json ./terraform.tfplan | jq >"$name".tfplan.json &&
|
|
terraform graph -type=plan >"$name".tfplan.dot &&
|
|
rm terraform.tfplan &&
|
|
terraform apply -auto-approve &&
|
|
terraform show -json ./terraform.tfstate | jq >"$name".tfstate.json &&
|
|
rm terraform.tfstate &&
|
|
terraform graph -type=plan >"$name".tfstate.dot
|
|
ret=$?
|
|
echo "=== END: $name"
|
|
if [[ $ret -ne 0 ]]; then
|
|
return $ret
|
|
fi
|
|
}
|
|
|
|
run() {
|
|
d="$1"
|
|
cd "$d"
|
|
name=$(basename "$(pwd)")
|
|
|
|
# This needs care to update correctly.
|
|
if [[ $name == "kubernetes-metadata" ]]; then
|
|
echo "== Skipping: $name"
|
|
return 0
|
|
fi
|
|
|
|
# This directory is used for a different purpose (quick workaround).
|
|
if [[ $name == "cleanup-stale-plugins" ]]; then
|
|
echo "== Skipping: $name"
|
|
return 0
|
|
fi
|
|
|
|
if [[ $name == "timings-aggregation" ]]; then
|
|
echo "== Skipping: $name"
|
|
return 0
|
|
fi
|
|
|
|
echo "== Generating test data for: $name"
|
|
if ! out="$(generate "$name" 2>&1)"; then
|
|
echo "$out"
|
|
echo "== Error generating test data for: $name"
|
|
return 1
|
|
fi
|
|
echo "== Done generating test data for: $name"
|
|
exit 0
|
|
}
|
|
|
|
declare -a jobs=()
|
|
for d in */; do
|
|
run "$d" &
|
|
jobs+=($!)
|
|
done
|
|
|
|
err=0
|
|
for job in "${jobs[@]}"; do
|
|
if ! wait "$job"; then
|
|
err=$((err + 1))
|
|
fi
|
|
done
|
|
if [[ $err -ne 0 ]]; then
|
|
echo "ERROR: Failed to generate test data for $err modules"
|
|
exit 1
|
|
fi
|
|
|
|
terraform version -json | jq -r '.terraform_version' >version.txt
|