Files
forgerunner/scripts/test-local-runner.sh
T

34 lines
1.1 KiB
Bash
Raw Normal View History

2026-06-29 21:56:12 -05:00
#!/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}"