mirror of
https://github.com/actions/actions-runner-controller.git
synced 2025-12-10 19:50:30 +00:00
Create e2e test suite (#3136)
Co-authored-by: Bassem Dghaidi <568794+Link-@users.noreply.github.com>
This commit is contained in:
92
hack/e2e-test.sh
Executable file
92
hack/e2e-test.sh
Executable file
@@ -0,0 +1,92 @@
|
||||
#!/bin/bash
|
||||
|
||||
DIR="$(dirname "${BASH_SOURCE[0]}")"
|
||||
|
||||
DIR="$(realpath "${DIR}")"
|
||||
|
||||
TEST_DIR="$(realpath "${DIR}/../test/actions.github.com")"
|
||||
|
||||
export PLATFORMS="linux/amd64"
|
||||
|
||||
TARGETS=()
|
||||
|
||||
function set_targets() {
|
||||
local cases="$(find "${TEST_DIR}" -name '*.test.sh' | sed "s#^${TEST_DIR}/##g" )"
|
||||
|
||||
mapfile -t TARGETS < <(echo "${cases}")
|
||||
|
||||
echo $TARGETS
|
||||
}
|
||||
|
||||
function env_test() {
|
||||
if [[ -z "${GITHUB_TOKEN}" ]]; then
|
||||
echo "Error: GITHUB_TOKEN is not set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "${TARGET_ORG}" ]]; then
|
||||
echo "Error: TARGET_ORG is not set"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z "${TARGET_REPO}" ]]; then
|
||||
echo "Error: TARGET_REPO is not set"
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
function usage() {
|
||||
echo "Usage: $0 [test_name]"
|
||||
echo " test_name: the name of the test to run"
|
||||
echo " if not specified, all tests will be run"
|
||||
echo " test_name should be the name of the test file without the .test.sh suffix"
|
||||
echo ""
|
||||
exit 1
|
||||
}
|
||||
|
||||
function main() {
|
||||
local failed=()
|
||||
|
||||
env_test
|
||||
|
||||
if [[ -z "${1}" ]]; then
|
||||
echo "Running all tests"
|
||||
set_targets
|
||||
elif [[ -f "${TEST_DIR}/${1}.test.sh" ]]; then
|
||||
echo "Running test ${1}"
|
||||
TARGETS=("${1}.test.sh")
|
||||
else
|
||||
usage
|
||||
fi
|
||||
|
||||
for target in "${TARGETS[@]}"; do
|
||||
echo "============================================================"
|
||||
test="${TEST_DIR}/${target}"
|
||||
if [[ ! -x "${test}" ]]; then
|
||||
echo "Error: test ${test} is not executable or not found"
|
||||
failed+=("${test}")
|
||||
continue
|
||||
fi
|
||||
|
||||
echo "Running test ${target}"
|
||||
if ! "${test}"; then
|
||||
failed+=("${target}")
|
||||
echo "---------------------------------"
|
||||
echo "FAILED: ${target}"
|
||||
else
|
||||
echo "---------------------------------"
|
||||
echo "PASSED: ${target}"
|
||||
fi
|
||||
echo "============================================================"
|
||||
done
|
||||
|
||||
if [[ "${#failed[@]}" -gt 0 ]]; then
|
||||
echo "Failed tests:"
|
||||
for fail in "${failed[@]}"; do
|
||||
echo " ${fail}"
|
||||
done
|
||||
exit 1
|
||||
fi
|
||||
}
|
||||
|
||||
main $@
|
||||
Reference in New Issue
Block a user