Adding some unit testing for entrypoint.sh
The unit tests are simulating a run for entrypoint. It creates some dummy config.sh and runsvc.sh and makes sure the logic behind entrypoint.sh is correct. Unfortunately the entrypoint.sh contains some sections that are not mockable so I had to put some logic in there too. Testing includes for now: - the normal scenario - the normal non-ephemeral scenario - the configuration failure scenario Also tested the entrypoint.sh on a real runner, still works as expected.
This commit is contained in:
parent
d355f05ac0
commit
ec0915ce7c
|
|
@ -1,20 +1,22 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
RUNNER_HOME=${RUNNER_HOME:-/runner}
|
||||||
|
|
||||||
LIGHTGREEN="\e[0;32m"
|
LIGHTGREEN="\e[0;32m"
|
||||||
LIGHTRED="\e[0;31m"
|
LIGHTRED="\e[0;31m"
|
||||||
WHITE="\e[0;97m"
|
WHITE="\e[0;97m"
|
||||||
RESET="\e[0m"
|
RESET="\e[0m"
|
||||||
|
|
||||||
log(){
|
log(){
|
||||||
echo -e "${WHITE}${@}${RESET}" 1>&2
|
printf "${WHITE}${@}${RESET}\n" 1>&2
|
||||||
}
|
}
|
||||||
|
|
||||||
success(){
|
success(){
|
||||||
echo -e "${LIGHTGREEN}${@}${RESET}" 1>&2
|
printf "${LIGHTGREEN}${@}${RESET}\n" 1>&2
|
||||||
}
|
}
|
||||||
|
|
||||||
error(){
|
error(){
|
||||||
echo -e "${LIGHTRED}${@}${RESET}" 1>&2
|
printf "${LIGHTRED}${@}${RESET}\n" 1>&2
|
||||||
}
|
}
|
||||||
|
|
||||||
if [ ! -z "${STARTUP_DELAY_IN_SECONDS}" ]; then
|
if [ ! -z "${STARTUP_DELAY_IN_SECONDS}" ]; then
|
||||||
|
|
@ -22,6 +24,7 @@ if [ ! -z "${STARTUP_DELAY_IN_SECONDS}" ]; then
|
||||||
sleep ${STARTUP_DELAY_IN_SECONDS}
|
sleep ${STARTUP_DELAY_IN_SECONDS}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
if [ -z "${GITHUB_URL}" ]; then
|
if [ -z "${GITHUB_URL}" ]; then
|
||||||
log "Working with public GitHub"
|
log "Working with public GitHub"
|
||||||
GITHUB_URL="https://github.com/"
|
GITHUB_URL="https://github.com/"
|
||||||
|
|
@ -61,15 +64,19 @@ if [ -z "${RUNNER_REPO}" ] && [ -n "${RUNNER_GROUP}" ];then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Hack due to https://github.com/actions-runner-controller/actions-runner-controller/issues/252#issuecomment-758338483
|
# Hack due to https://github.com/actions-runner-controller/actions-runner-controller/issues/252#issuecomment-758338483
|
||||||
if [ ! -d /runner ]; then
|
if [ ! -d ${RUNNER_HOME} ]; then
|
||||||
error "/runner should be an emptyDir mount. Please fix the pod spec."
|
error "${RUNNER_HOME} should be an emptyDir mount. Please fix the pod spec."
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
sudo chown -R runner:docker /runner
|
# if this is not a testing environment
|
||||||
cp -r /runnertmp/* /runner/
|
if [ -z "$UNITTEST" ]; then
|
||||||
|
sudo chown -R runner:docker ${RUNNER_HOME}
|
||||||
|
mv /runnertmp/* ${RUNNER_HOME}/
|
||||||
|
fi
|
||||||
|
|
||||||
cd /runner
|
cd ${RUNNER_HOME}
|
||||||
|
# past that point, it's all relative pathes from /runner
|
||||||
|
|
||||||
config_args=()
|
config_args=()
|
||||||
if [ "${RUNNER_FEATURE_FLAG_EPHEMERAL:-}" == "true" -a "${RUNNER_EPHEMERAL}" != "false" ]; then
|
if [ "${RUNNER_FEATURE_FLAG_EPHEMERAL:-}" == "true" -a "${RUNNER_EPHEMERAL}" != "false" ]; then
|
||||||
|
|
@ -88,16 +95,17 @@ while [[ ${retries_left} -gt 0 ]]; do
|
||||||
--labels "${RUNNER_LABELS}" \
|
--labels "${RUNNER_LABELS}" \
|
||||||
--work "${RUNNER_WORKDIR}" "${config_args[@]}"
|
--work "${RUNNER_WORKDIR}" "${config_args[@]}"
|
||||||
|
|
||||||
if [ -f /runner/.runner ]; then
|
if [ -f .runner ]; then
|
||||||
success "Runner successfully configured."
|
success "Runner successfully configured."
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
error "Configuration failed. Retrying"
|
||||||
retries_left=$((retries_left - 1))
|
retries_left=$((retries_left - 1))
|
||||||
sleep 1
|
sleep 1
|
||||||
done
|
done
|
||||||
|
|
||||||
if [ ! -f /runner/.runner ]; then
|
if [ ! -f .runner ]; then
|
||||||
# we couldn't configure and register the runner; no point continuing
|
# we couldn't configure and register the runner; no point continuing
|
||||||
error "Configuration failed!"
|
error "Configuration failed!"
|
||||||
exit 2
|
exit 2
|
||||||
|
|
@ -130,15 +138,17 @@ if [ -n "${RUNNER_REGISTRATION_ONLY}" ]; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir ./externals
|
if [ -z "$UNITTEST" ]; then
|
||||||
# Hack due to the DinD volumes
|
mkdir ./externals
|
||||||
mv ./externalstmp/* ./externals/
|
# Hack due to the DinD volumes
|
||||||
|
mv ./externalstmp/* ./externals/
|
||||||
|
|
||||||
for f in runsvc.sh RunnerService.js; do
|
for f in runsvc.sh RunnerService.js; do
|
||||||
diff {bin,patched}/${f} || :
|
diff {bin,patched}/${f} || :
|
||||||
sudo mv bin/${f}{,.bak}
|
sudo mv bin/${f}{,.bak}
|
||||||
sudo mv {patched,bin}/${f}
|
sudo mv {patched,bin}/${f}
|
||||||
done
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
args=()
|
args=()
|
||||||
if [ "${RUNNER_FEATURE_FLAG_EPHEMERAL:-}" != "true" -a "${RUNNER_EPHEMERAL}" != "false" ]; then
|
if [ "${RUNNER_FEATURE_FLAG_EPHEMERAL:-}" != "true" -a "${RUNNER_EPHEMERAL}" != "false" ]; then
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,37 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
source logging.sh
|
||||||
|
|
||||||
|
for unittest in ./should*; do
|
||||||
|
log "**********************************"
|
||||||
|
log " UNIT TEST: ${unittest}"
|
||||||
|
log "**********************************"
|
||||||
|
log ""
|
||||||
|
|
||||||
|
cd ${unittest}
|
||||||
|
./test.sh
|
||||||
|
ret_code=$?
|
||||||
|
cd ..
|
||||||
|
|
||||||
|
log ""
|
||||||
|
log ""
|
||||||
|
if [ "${ret_code}" = "0" ]; then
|
||||||
|
success "Completed: unit test ${unittest}"
|
||||||
|
else
|
||||||
|
error "Completed: unit test ${unittest} with errors"
|
||||||
|
failed="true"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
|
if [ -n "${failed:-}" ]; then
|
||||||
|
error ""
|
||||||
|
error "*************************************"
|
||||||
|
error "All unit tests completed, with errors"
|
||||||
|
error "*************************************"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
success ""
|
||||||
|
success "***************************************"
|
||||||
|
success "All unit tests completed with no errors"
|
||||||
|
success "***************************************"
|
||||||
|
fi
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export LIGHTGREEN='\e[0;32m'
|
||||||
|
export LIGHTRED='\e[0;31m'
|
||||||
|
export WHITE='\e[0;97m'
|
||||||
|
export RESET='\e[0m'
|
||||||
|
|
||||||
|
log(){
|
||||||
|
printf "${WHITE}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
success(){
|
||||||
|
printf "${LIGHTGREEN}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
error(){
|
||||||
|
printf "${LIGHTRED}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
export LIGHTGREEN='\e[0;32m'
|
||||||
|
export LIGHTRED='\e[0;31m'
|
||||||
|
export WHITE='\e[0;97m'
|
||||||
|
export RESET='\e[0m'
|
||||||
|
|
||||||
|
log(){
|
||||||
|
printf "\t${WHITE}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
success(){
|
||||||
|
printf "\t${LIGHTGREEN}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
error(){
|
||||||
|
printf "\t${LIGHTRED}$@${RESET}\n" 2>&1
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
success "I'm pretending the configuration is not successful"
|
||||||
|
# increasing a counter to measure how many times we restarted
|
||||||
|
count=`cat counter 2>/dev/null|| echo "0"`
|
||||||
|
count=$((count + 1))
|
||||||
|
echo ${count} > counter
|
||||||
|
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
export LIGHTGREEN='\e[0;32m'
|
||||||
|
export LIGHTRED='\e[0;31m'
|
||||||
|
export WHITE='\e[0;97m'
|
||||||
|
export RESET='\e[0m'
|
||||||
|
|
||||||
|
log(){
|
||||||
|
printf "\t${WHITE}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
success(){
|
||||||
|
printf "\t${LIGHTGREEN}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
error(){
|
||||||
|
printf "\t${LIGHTRED}$@${RESET}\n" 2>&1
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
success ""
|
||||||
|
success "Running the service..."
|
||||||
|
# SHOULD NOT HAPPEN
|
||||||
|
# creating a file to show this script has run
|
||||||
|
touch runsvc_ran
|
||||||
|
success "...successful"
|
||||||
|
success ""
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,74 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# UNITTEST: retry config
|
||||||
|
# Will simulate a configuration failure and expects:
|
||||||
|
# - the configuration step to be run 10 times
|
||||||
|
# - the entrypoint script to exit with error code 2
|
||||||
|
# - the runsvc.sh script to never run.
|
||||||
|
|
||||||
|
source ../logging.sh
|
||||||
|
|
||||||
|
entrypoint_log() {
|
||||||
|
while read I; do
|
||||||
|
printf "\tentrypoint.sh: $I\n"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
log "Setting up the test"
|
||||||
|
export UNITTEST=true
|
||||||
|
export RUNNER_HOME=localhome
|
||||||
|
export RUNNER_NAME="example_runner_name"
|
||||||
|
export RUNNER_REPO="myorg/myrepo"
|
||||||
|
export RUNNER_TOKEN="xxxxxxxxxxxxx"
|
||||||
|
|
||||||
|
mkdir -p ${RUNNER_HOME}/bin
|
||||||
|
# add up the config.sh and runsvc.sh
|
||||||
|
ln -s ../config.sh ${RUNNER_HOME}/config.sh
|
||||||
|
ln -s ../../runsvc.sh ${RUNNER_HOME}/bin/runsvc.sh
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
rm -rf ${RUNNER_HOME}
|
||||||
|
unset UNITTEST
|
||||||
|
unset RUNNERHOME
|
||||||
|
unset RUNNER_NAME
|
||||||
|
unset RUNNER_REPO
|
||||||
|
unset RUNNER_TOKEN
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup SIGINT SIGTERM SIGQUIT EXIT
|
||||||
|
|
||||||
|
log "Running the entrypoint"
|
||||||
|
log ""
|
||||||
|
|
||||||
|
../../../runner/entrypoint.sh 2> >(entrypoint_log)
|
||||||
|
|
||||||
|
if [ "$?" != "2" ]; then
|
||||||
|
error "========================================="
|
||||||
|
error "Configuration should have thrown an error"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
success "Entrypoint didn't complete successfully"
|
||||||
|
success ""
|
||||||
|
|
||||||
|
log "Checking the counter, should have 10 iterations"
|
||||||
|
count=`cat ${RUNNER_HOME}/counter || "notfound"`
|
||||||
|
if [ "${count}" != "10" ]; then
|
||||||
|
error "============================================="
|
||||||
|
error "The retry loop should have done 10 iterations"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
success "Retry loop went up to 10"
|
||||||
|
success
|
||||||
|
|
||||||
|
log "Checking that runsvc never ran"
|
||||||
|
if [ -f ${RUNNER_HOME}/runsvc_ran ]; then
|
||||||
|
error "================================================================="
|
||||||
|
error "runsvc was invoked, entrypoint.sh should have failed before that."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
success "runsvc.sh never ran"
|
||||||
|
success
|
||||||
|
success "==========================="
|
||||||
|
success "Test completed successfully"
|
||||||
|
exit 0
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export LIGHTGREEN='\e[0;32m'
|
||||||
|
export LIGHTRED='\e[0;31m'
|
||||||
|
export WHITE='\e[0;97m'
|
||||||
|
export RESET='\e[0m'
|
||||||
|
|
||||||
|
log(){
|
||||||
|
printf "\t${WHITE}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
success(){
|
||||||
|
printf "\t${LIGHTGREEN}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
error(){
|
||||||
|
printf "\t${LIGHTRED}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
success "I'm configured normally"
|
||||||
|
touch .runner
|
||||||
|
success "created a dummy config file"
|
||||||
|
success
|
||||||
|
# adding a counter to see how many times we've gone through a configuration step
|
||||||
|
count=`cat counter 2>/dev/null|| echo "0"`
|
||||||
|
count=$((count + 1))
|
||||||
|
echo ${count} > counter
|
||||||
|
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
export LIGHTGREEN='\e[0;32m'
|
||||||
|
export LIGHTRED='\e[0;31m'
|
||||||
|
export WHITE='\e[0;97m'
|
||||||
|
export RESET='\e[0m'
|
||||||
|
|
||||||
|
log(){
|
||||||
|
printf "\t${WHITE}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
success(){
|
||||||
|
printf "\t${LIGHTGREEN}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
error(){
|
||||||
|
printf "\t${LIGHTRED}$@${RESET}\n" 2>&1
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
success ""
|
||||||
|
success "Running the service..."
|
||||||
|
# test if --once is present as a parameter
|
||||||
|
echo "$*" | grep -q 'once' && error "Should not include --once in the parameters"
|
||||||
|
success "...successful"
|
||||||
|
touch runsvc_ran
|
||||||
|
success ""
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,72 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# UNITTEST: should work as non ephemeral
|
||||||
|
# Will simulate a scenario where ephemeral=false. expects:
|
||||||
|
# - the configuration step to be run exactly once
|
||||||
|
# - the entrypoint script to exit with no error
|
||||||
|
# - the runsvc.sh script to run without the --once flag
|
||||||
|
|
||||||
|
source ../logging.sh
|
||||||
|
|
||||||
|
entrypoint_log() {
|
||||||
|
while read I; do
|
||||||
|
printf "\tentrypoint.sh: $I\n"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
log "Setting up the test"
|
||||||
|
export UNITTEST=true
|
||||||
|
export RUNNER_HOME=localhome
|
||||||
|
export RUNNER_NAME="example_runner_name"
|
||||||
|
export RUNNER_REPO="myorg/myrepo"
|
||||||
|
export RUNNER_TOKEN="xxxxxxxxxxxxx"
|
||||||
|
export RUNNER_EPHEMERAL=false
|
||||||
|
|
||||||
|
mkdir -p ${RUNNER_HOME}/bin
|
||||||
|
# add up the config.sh and runsvc.sh
|
||||||
|
ln -s ../config.sh ${RUNNER_HOME}/config.sh
|
||||||
|
ln -s ../../runsvc.sh ${RUNNER_HOME}/bin/runsvc.sh
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
rm -rf ${RUNNER_HOME}
|
||||||
|
unset UNITTEST
|
||||||
|
unset RUNNERHOME
|
||||||
|
unset RUNNER_NAME
|
||||||
|
unset RUNNER_REPO
|
||||||
|
unset RUNNER_TOKEN
|
||||||
|
unset RUNNER_EPHEMERAL
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup SIGINT SIGTERM SIGQUIT EXIT
|
||||||
|
|
||||||
|
log "Running the entrypoint"
|
||||||
|
log ""
|
||||||
|
|
||||||
|
../../../runner/entrypoint.sh 2> >(entrypoint_log)
|
||||||
|
|
||||||
|
if [ "$?" != "0" ]; then
|
||||||
|
error "==========================================="
|
||||||
|
error "Entrypoint script did not exit successfully"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Testing if we went through the configuration step only once"
|
||||||
|
count=`cat ${RUNNER_HOME}/counter || echo "not_found"`
|
||||||
|
if [ ${count} != "1" ]; then
|
||||||
|
error "==============================================="
|
||||||
|
error "The configuration step was not run exactly once"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
success "The configuration ran ${count} time(s)"
|
||||||
|
|
||||||
|
log "Testing if runsvc ran"
|
||||||
|
if [ ! -f "${RUNNER_HOME}/runsvc_ran" ]; then
|
||||||
|
error "=============================="
|
||||||
|
error "The runner service has not run"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
success "The service ran"
|
||||||
|
success ""
|
||||||
|
success "==========================="
|
||||||
|
success "Test completed successfully"
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
export LIGHTGREEN='\e[0;32m'
|
||||||
|
export LIGHTRED='\e[0;31m'
|
||||||
|
export WHITE='\e[0;97m'
|
||||||
|
export RESET='\e[0m'
|
||||||
|
|
||||||
|
log(){
|
||||||
|
printf "\t${WHITE}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
success(){
|
||||||
|
printf "\t${LIGHTGREEN}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
error(){
|
||||||
|
printf "\t${LIGHTRED}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
success "I'm configured normally"
|
||||||
|
touch .runner
|
||||||
|
success "created a dummy config file"
|
||||||
|
success
|
||||||
|
# Adding a counter to see how many times we've gone through the configuration step
|
||||||
|
count=`cat counter 2>/dev/null|| echo "0"`
|
||||||
|
count=$((count + 1))
|
||||||
|
echo ${count} > counter
|
||||||
|
|
||||||
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -euo pipefail
|
||||||
|
|
||||||
|
export LIGHTGREEN='\e[0;32m'
|
||||||
|
export LIGHTRED='\e[0;31m'
|
||||||
|
export WHITE='\e[0;97m'
|
||||||
|
export RESET='\e[0m'
|
||||||
|
|
||||||
|
log(){
|
||||||
|
printf "\t${WHITE}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
success(){
|
||||||
|
printf "\t${LIGHTGREEN}$@${RESET}\n" 2>&1
|
||||||
|
}
|
||||||
|
|
||||||
|
error(){
|
||||||
|
printf "\t${LIGHTRED}$@${RESET}\n" 2>&1
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
success ""
|
||||||
|
success "Running the service..."
|
||||||
|
# test if --once is present as a parameter
|
||||||
|
echo "$*" | grep -q 'once' || error "Should include --once in the parameters"j
|
||||||
|
success "...successful"
|
||||||
|
touch runsvc_ran
|
||||||
|
success ""
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,71 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# UNITTEST: should work normally
|
||||||
|
# Will simulate a normal execution scenario. expects:
|
||||||
|
# - the configuration step to be run exactly once
|
||||||
|
# - the entrypoint script to exit with no error
|
||||||
|
# - the runsvc.sh script to run with the --once flag activated.
|
||||||
|
|
||||||
|
source ../logging.sh
|
||||||
|
|
||||||
|
entrypoint_log() {
|
||||||
|
while read I; do
|
||||||
|
printf "\tentrypoint.sh: $I\n"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
log "Setting up the test"
|
||||||
|
export UNITTEST=true
|
||||||
|
export RUNNER_HOME=localhome
|
||||||
|
export RUNNER_NAME="example_runner_name"
|
||||||
|
export RUNNER_REPO="myorg/myrepo"
|
||||||
|
export RUNNER_TOKEN="xxxxxxxxxxxxx"
|
||||||
|
|
||||||
|
mkdir -p ${RUNNER_HOME}/bin
|
||||||
|
# add up the config.sh and runsvc.sh
|
||||||
|
ln -s ../config.sh ${RUNNER_HOME}/config.sh
|
||||||
|
ln -s ../../runsvc.sh ${RUNNER_HOME}/bin/runsvc.sh
|
||||||
|
|
||||||
|
cleanup() {
|
||||||
|
rm -rf ${RUNNER_HOME}
|
||||||
|
unset UNITTEST
|
||||||
|
unset RUNNERHOME
|
||||||
|
unset RUNNER_NAME
|
||||||
|
unset RUNNER_REPO
|
||||||
|
unset RUNNER_TOKEN
|
||||||
|
}
|
||||||
|
|
||||||
|
trap cleanup SIGINT SIGTERM SIGQUIT EXIT
|
||||||
|
|
||||||
|
log "Running the entrypoint"
|
||||||
|
log ""
|
||||||
|
|
||||||
|
../../../runner/entrypoint.sh 2> >(entrypoint_log)
|
||||||
|
|
||||||
|
if [ "$?" != "0" ]; then
|
||||||
|
error "=========================="
|
||||||
|
error "Test completed with errors"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
log "Testing if the configuration step was run only once"
|
||||||
|
count=`cat ${RUNNER_HOME}/counter || echo "not_found"`
|
||||||
|
if [ ${count} != "1" ]; then
|
||||||
|
error "==============================================="
|
||||||
|
error "The configuration step was not run exactly once"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
success "The configuration ran ${count} time(s)"
|
||||||
|
|
||||||
|
log "Testing if runsvc ran"
|
||||||
|
if [ ! -f "${RUNNER_HOME}/runsvc_ran" ]; then
|
||||||
|
error "=============================="
|
||||||
|
error "The runner service has not run"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
success "The service ran"
|
||||||
|
success ""
|
||||||
|
success "==========================="
|
||||||
|
success "Test completed successfully"
|
||||||
Loading…
Reference in New Issue