34 lines
1.1 KiB
Bash
34 lines
1.1 KiB
Bash
|
|
#!/usr/bin/env bash
|
||
|
|
# test-local-runner.sh — start a short-lived runner for local workflow testing
|
||
|
|
# Requires a running Gitea instance and a valid registration token.
|
||
|
|
set -euo pipefail
|
||
|
|
|
||
|
|
: "${GITEA_INSTANCE_URL:?GITEA_INSTANCE_URL must be set}"
|
||
|
|
: "${GITEA_RUNNER_TOKEN:?GITEA_RUNNER_TOKEN must be set}"
|
||
|
|
: "${GITEA_RUNNER_NAME:?GITEA_RUNNER_NAME must be set}"
|
||
|
|
|
||
|
|
IMAGE="${IMAGE:-custom-gitea-runner:latest}"
|
||
|
|
CONFIG_DIR="$(mktemp -d /tmp/runner-test-config.XXXXXX)"
|
||
|
|
WORK_DIR="$(mktemp -d /tmp/runner-test-work.XXXXXX)"
|
||
|
|
|
||
|
|
cleanup() {
|
||
|
|
echo "Cleaning up temp dirs ..."
|
||
|
|
rm -rf "$CONFIG_DIR" "$WORK_DIR"
|
||
|
|
}
|
||
|
|
trap cleanup EXIT
|
||
|
|
|
||
|
|
echo "Starting local test runner ..."
|
||
|
|
echo " Image : ${IMAGE}"
|
||
|
|
echo " Config : ${CONFIG_DIR}"
|
||
|
|
echo " Work : ${WORK_DIR}"
|
||
|
|
|
||
|
|
docker run --rm \
|
||
|
|
-v "${CONFIG_DIR}:/config" \
|
||
|
|
-v "${WORK_DIR}:/work" \
|
||
|
|
-v /var/run/docker.sock:/var/run/docker.sock \
|
||
|
|
-e GITEA_INSTANCE_URL="${GITEA_INSTANCE_URL}" \
|
||
|
|
-e GITEA_RUNNER_TOKEN="${GITEA_RUNNER_TOKEN}" \
|
||
|
|
-e GITEA_RUNNER_NAME="${GITEA_RUNNER_NAME}" \
|
||
|
|
-e GITEA_RUNNER_LABELS="${GITEA_RUNNER_LABELS:-ubuntu-latest:docker://node:20-bullseye}" \
|
||
|
|
"${IMAGE}"
|