2020-01-28 21:56:54 +09:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
2020-10-28 15:15:53 +02:00
|
|
|
if [ -z "${GITHUB_URL}" ]; then
|
|
|
|
|
echo "Working with public GitHub" 1>&2
|
|
|
|
|
GITHUB_URL="https://github.com/"
|
|
|
|
|
else
|
|
|
|
|
length=${#GITHUB_URL}
|
|
|
|
|
last_char=${GITHUB_URL:length-1:1}
|
|
|
|
|
|
|
|
|
|
[[ $last_char != "/" ]] && GITHUB_URL="$GITHUB_URL/"; :
|
|
|
|
|
echo "Github endpoint URL ${GITHUB_URL}"
|
|
|
|
|
fi
|
|
|
|
|
|
2020-01-28 21:56:54 +09:00
|
|
|
if [ -z "${RUNNER_NAME}" ]; then
|
|
|
|
|
echo "RUNNER_NAME must be set" 1>&2
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
2021-02-05 02:31:06 +02:00
|
|
|
if [ -n "${RUNNER_ORG}" ] && [ -n "${RUNNER_REPO}" ] && [ -n "${RUNNER_ENTERPRISE}" ]; then
|
2020-04-23 16:36:40 +02:00
|
|
|
ATTACH="${RUNNER_ORG}/${RUNNER_REPO}"
|
2020-04-24 07:17:09 +02:00
|
|
|
elif [ -n "${RUNNER_ORG}" ]; then
|
|
|
|
|
ATTACH="${RUNNER_ORG}"
|
|
|
|
|
elif [ -n "${RUNNER_REPO}" ]; then
|
|
|
|
|
ATTACH="${RUNNER_REPO}"
|
2021-02-05 02:31:06 +02:00
|
|
|
elif [ -n "${RUNNER_ENTERPRISE}" ]; then
|
|
|
|
|
ATTACH="enterprises/${RUNNER_ENTERPRISE}"
|
2020-04-24 07:17:09 +02:00
|
|
|
else
|
2021-02-05 02:31:06 +02:00
|
|
|
echo "At least one of RUNNER_ORG or RUNNER_REPO or RUNNER_ENTERPRISE must be set" 1>&2
|
2020-04-24 07:17:09 +02:00
|
|
|
exit 1
|
2020-04-23 16:36:40 +02:00
|
|
|
fi
|
|
|
|
|
|
2020-11-25 00:55:26 +01:00
|
|
|
if [ -n "${RUNNER_WORKDIR}" ]; then
|
|
|
|
|
WORKDIR_ARG="--work ${RUNNER_WORKDIR}"
|
|
|
|
|
fi
|
|
|
|
|
|
2020-04-24 11:29:52 +02:00
|
|
|
if [ -n "${RUNNER_LABELS}" ]; then
|
|
|
|
|
LABEL_ARG="--labels ${RUNNER_LABELS}"
|
|
|
|
|
fi
|
|
|
|
|
|
2020-01-28 21:56:54 +09:00
|
|
|
if [ -z "${RUNNER_TOKEN}" ]; then
|
|
|
|
|
echo "RUNNER_TOKEN must be set" 1>&2
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
2020-11-10 08:15:54 +00:00
|
|
|
if [ -z "${RUNNER_REPO}" ] && [ -n "${RUNNER_ORG}" ] && [ -n "${RUNNER_GROUP}" ];then
|
|
|
|
|
RUNNER_GROUP_ARG="--runnergroup ${RUNNER_GROUP}"
|
|
|
|
|
fi
|
|
|
|
|
|
2021-01-24 10:58:35 +09:00
|
|
|
# Hack due to https://github.com/summerwind/actions-runner-controller/issues/252#issuecomment-758338483
|
|
|
|
|
if [ ! -d /runner ]; then
|
|
|
|
|
echo "/runner should be an emptyDir mount. Please fix the pod spec." 1>&2
|
|
|
|
|
exit 1
|
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
sudo chown -R runner:docker /runner
|
|
|
|
|
mv /runnertmp/* /runner/
|
|
|
|
|
|
2020-01-28 21:56:54 +09:00
|
|
|
cd /runner
|
2020-11-25 00:55:26 +01:00
|
|
|
./config.sh --unattended --replace --name "${RUNNER_NAME}" --url "${GITHUB_URL}${ATTACH}" --token "${RUNNER_TOKEN}" ${RUNNER_GROUP_ARG} ${LABEL_ARG} ${WORKDIR_ARG}
|
2021-01-24 10:58:35 +09:00
|
|
|
mkdir ./externals
|
2020-11-25 01:53:47 +02:00
|
|
|
# Hack due to the DinD volumes
|
|
|
|
|
mv ./externalstmp/* ./externals/
|
|
|
|
|
|
2020-10-05 01:58:20 +02:00
|
|
|
for f in runsvc.sh RunnerService.js; do
|
|
|
|
|
diff {bin,patched}/${f} || :
|
|
|
|
|
sudo mv bin/${f}{,.bak}
|
|
|
|
|
sudo mv {patched,bin}/${f}
|
|
|
|
|
done
|
|
|
|
|
|
2020-02-06 22:15:26 +09:00
|
|
|
unset RUNNER_NAME RUNNER_REPO RUNNER_TOKEN
|
2020-10-05 01:58:20 +02:00
|
|
|
exec ./bin/runsvc.sh --once
|