Files
opentf/website/docs/cli/commands/test/examples/test.sh
2024-02-08 09:48:59 +00:00

50 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# Copyright (c) The OpenTofu Authors
# SPDX-License-Identifier: MPL-2.0
# Copyright (c) 2023 HashiCorp, Inc.
# SPDX-License-Identifier: MPL-2.0
tofu version 2>/dev/null >/dev/null
if [ $? -ne 0 ]; then
set -e
TOFU_VERSION="1.6.0-alpha2"
OS="$(uname | tr '[:upper:]' '[:lower:]')"
ARCH="$(uname -m | sed -e 's/aarch64/arm64/' -e 's/x86_64/amd64/')"
TEMPDIR="$(mktemp -d)"
pushd "${TEMPDIR}" >/dev/null
wget "https://github.com/opentofu/opentofu/releases/download/v${TOFU_VERSION}/tofu_${TOFU_VERSION}_${OS}_${ARCH}.zip"
unzip "tofu_${TOFU_VERSION}_${OS}_${ARCH}.zip"
sudo mv tofu /usr/local/bin/tofu
popd >/dev/null
rm -rf "${TEMPDIR}"
set +e
fi
ERROR=0
for testcase in $(ls -d */); do
testcase=$(echo -n "${testcase}" | sed -e 's$/$$')
(
cd $testcase
tofu init
RESULT=$?
if [ "$RESULT" -ne 0 ]; then
exit "$RESULT"
fi
tofu test
exit $?
) 2>/tmp/${testcase}.log >/tmp/${testcase}.log
RESULT=$?
echo -n "::group::"
if [ "${RESULT}" -ne 0 ]; then
echo -e "\033[0;31m${testcase} (FAIL)\033[0m"
ERROR="${RESULT}"
else
echo -e "\033[0;32m${testcase} (PASS)\033[0m"
fi
cat /tmp/${testcase}.log
echo "::endgroup::"
done
exit "${ERROR}"