* feat: move to new run.sh container friendly file (#1244)

* fix: unit tests were very broken

Co-authored-by: toast-gear <toast-gear@users.noreply.github.com>
This commit is contained in:
Callum Tait
2022-03-22 19:02:51 +00:00
committed by GitHub
parent 366f8927d8
commit 2cb04ddde7
25 changed files with 221 additions and 530 deletions

View File

@@ -1,12 +1,12 @@
#!/bin/bash
#!/usr/bin/env 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
# - the run.sh script to run without the --once flag
source ../logging.sh
source ../assets/logging.sh
entrypoint_log() {
while read I; do
@@ -14,18 +14,22 @@ entrypoint_log() {
done
}
log "Setting up test area"
export RUNNER_HOME=testarea
mkdir -p ${RUNNER_HOME}
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
# run.sh and config.sh get used by the runner's real entrypoint.sh and are part of actions/runner.
# We change symlink dummy versions so the entrypoint.sh can run allowing us to test the real entrypoint.sh
log "Symlink dummy config.sh and run.sh"
ln -s ../../assets/config.sh ${RUNNER_HOME}/config.sh
ln -s ../../assets/run.sh ${RUNNER_HOME}/run.sh
cleanup() {
rm -rf ${RUNNER_HOME}
@@ -37,16 +41,19 @@ cleanup() {
unset RUNNER_EPHEMERAL
}
# Always run cleanup when test ends regardless of how it ends
trap cleanup SIGINT SIGTERM SIGQUIT EXIT
log "Running the entrypoint"
log ""
# Run the runner entrypoint script which as a final step runs this
# unit tests run.sh as it was symlinked
../../../runner/entrypoint.sh 2> >(entrypoint_log)
if [ "$?" != "0" ]; then
error "==========================================="
error "Entrypoint script did not exit successfully"
error "FAIL | Entrypoint script did not exit successfully"
exit 1
fi
@@ -54,19 +61,19 @@ 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"
error "FAIL | The configuration step was not run exactly once"
exit 1
fi
success "The configuration ran ${count} time(s)"
success "PASS | The configuration ran ${count} time(s)"
log "Testing if runsvc ran"
if [ ! -f "${RUNNER_HOME}/runsvc_ran" ]; then
log "Testing if run.sh ran"
if [ ! -f "${RUNNER_HOME}/run_sh_ran" ]; then
error "=============================="
error "The runner service has not run"
error "FAIL | The runner service has not run"
exit 1
fi
success "The service ran"
success "PASS | run.sh ran"
success ""
success "==========================="
success "Test completed successfully"