mirror of
https://github.com/actions/runner.git
synced 2025-12-10 12:36:23 +00:00
* Revert "Use better exit codes and comparison (#1708)" This reverts commit6abef8199f. * Revert "fix run.cmd script (#1633)" This reverts commit192ebfeccf. * Revert "Reopen 'Make run.sh|cmd handle update without quitting so containers using them as entrypoints don't exit on update ' (#1646)" This reverts commit8f160bc084. * Release 2.289.3 runner.
65 lines
2.0 KiB
Bash
Executable File
65 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Validate not sudo
|
|
user_id=`id -u`
|
|
if [ $user_id -eq 0 -a -z "$RUNNER_ALLOW_RUNASROOT" ]; then
|
|
echo "Must not run interactively with sudo"
|
|
exit 1
|
|
fi
|
|
|
|
# Change directory to the script root directory
|
|
# https://stackoverflow.com/questions/59895/getting-the-source-directory-of-a-bash-script-from-within
|
|
SOURCE="${BASH_SOURCE[0]}"
|
|
while [ -h "$SOURCE" ]; do # resolve $SOURCE until the file is no longer a symlink
|
|
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
|
SOURCE="$(readlink "$SOURCE")"
|
|
[[ $SOURCE != /* ]] && SOURCE="$DIR/$SOURCE" # if $SOURCE was a relative symlink, we need to resolve it relative to the path where the symlink file was located
|
|
done
|
|
DIR="$( cd -P "$( dirname "$SOURCE" )" && pwd )"
|
|
|
|
# Do not "cd $DIR". For localRun, the current directory is expected to be the repo location on disk.
|
|
|
|
# Run
|
|
shopt -s nocasematch
|
|
if [[ "$1" == "localRun" ]]; then
|
|
"$DIR"/bin/Runner.Listener $*
|
|
else
|
|
"$DIR"/bin/Runner.Listener run $*
|
|
|
|
# Return code 3 means the run once runner received an update message.
|
|
# Sleep 5 seconds to wait for the update process finish
|
|
returnCode=$?
|
|
if [[ $returnCode == 3 ]]; then
|
|
if [ ! -x "$(command -v sleep)" ]; then
|
|
if [ ! -x "$(command -v ping)" ]; then
|
|
COUNT="0"
|
|
while [[ $COUNT != 5000 ]]; do
|
|
echo "SLEEP" > /dev/null
|
|
COUNT=$[$COUNT+1]
|
|
done
|
|
else
|
|
ping -c 5 127.0.0.1 > /dev/null
|
|
fi
|
|
else
|
|
sleep 5
|
|
fi
|
|
elif [[ $returnCode == 4 ]]; then
|
|
if [ ! -x "$(command -v sleep)" ]; then
|
|
if [ ! -x "$(command -v ping)" ]; then
|
|
COUNT="0"
|
|
while [[ $COUNT != 5000 ]]; do
|
|
echo "SLEEP" > /dev/null
|
|
COUNT=$[$COUNT+1]
|
|
done
|
|
else
|
|
ping -c 5 127.0.0.1 > /dev/null
|
|
fi
|
|
else
|
|
sleep 5
|
|
fi
|
|
"$DIR"/bin/Runner.Listener run $*
|
|
else
|
|
exit $returnCode
|
|
fi
|
|
fi
|