#!/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}"