mirror of
https://github.com/casjaysdevdocker/gitea
synced 2026-05-24 15:28:44 -04:00
🐛 Fix start-runners: wrong --config arg kept all runners permanently offline 🐛
Some checks failed
gitea / release-gitea (push) Has been cancelled
Some checks failed
gitea / release-gitea (push) Has been cancelled
The daemon was called with --config pointing at the .runner registration state file (JSON), not a YAML config. act_runner rejected it immediately on every start, so all runners were always offline and never reconnected. Also fix log truncation and stale fallback labels. - rootfs/usr/local/bin/start-runners: remove --config from act_runner daemon invocation (act_runner finds .runner in CWD automatically after cd "$runner_dir"); fix __log to append (>>) instead of truncate (>); update fallback RUNNER_LABELS to match the full label set defined in zz-act_runner.sh rootfs/usr/local/bin/start-runners
This commit is contained in:
@@ -6,7 +6,7 @@ trap 'retVal=$?; echo "❌ Fatal error occurred: Exit code $retVal at line $LINE
|
||||
trap 'retVal=$?;if [ "$SERVICE_IS_RUNNING" != "yes" ] && [ -f "$SERVICE_PID_FILE" ]; then rm -Rf "$SERVICE_PID_FILE"; fi;exit $retVal' SIGINT SIGTERM SIGPWR
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Function to __log messages with timestamp
|
||||
__log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >"$RUNNERS_LOG_DIR/runners" 2>&1; }
|
||||
__log() { echo "[$(date '+%Y-%m-%d %H:%M:%S')] $1" >>"$RUNNERS_LOG_DIR/runners" 2>&1; }
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Function to cleanup child processes on exit
|
||||
__cleanup() {
|
||||
@@ -33,7 +33,7 @@ if [ -z "$SERVER_TOKEN" ]; then
|
||||
exit 1
|
||||
fi
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
RUNNER_LABELS="${RUNNER_LABELS:-ubuntu-latest:docker://node:16-bullseye,ubuntu-22.04:docker://node:16-bullseye}"
|
||||
RUNNER_LABELS="${RUNNER_LABELS:-linux:host,node14:docker://node:14,node16:docker://node:16,node18:docker://node:18,node20:docker://node:20,node22:docker://node:22,node:docker://node:latest,perl:docker://perl:latest,ruby:docker://ruby:latest,python:docker://python:latest,python3:docker://python:latest,php7:docker://casjaysdevdocker/php:7,php8:docker://casjaysdevdocker/php:8,php:docker://casjaysdevdocker/php:latest,alpine:docker://casjaysdev/alpine:latest,debian:docker://casjaysdev/debian:latest,ubuntu:docker://casjaysdev/ubuntu:latest,rhel:docker://casjaysdev/almalinux:latest,redhat:docker://casjaysdev/almalinux:latest,almalinux:docker://casjaysdev/almalinux:latest,act_runner:docker://catthehacker/ubuntu:full-latest,ubuntu-latest:docker://catthehacker/ubuntu:full-latest}"
|
||||
# Determine number of runners to start
|
||||
RUNNERS_START=${RUNNERS_START:-1}
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
@@ -59,16 +59,16 @@ __start_runner() {
|
||||
|
||||
if [ ! -f "$runner_dir/.runner" ]; then
|
||||
__log "Registering runner: $runner_name (ID: $runner_id)"
|
||||
# Register the runner (this creates the .runner file)
|
||||
# Register the runner — creates .runner in CWD
|
||||
act_runner register --instance "$SERVER_ADDRESS" --token "$SERVER_TOKEN" --name "$runner_name" --labels "$RUNNER_LABELS" --no-interactive
|
||||
if [ $? -ne 0 ]; then
|
||||
__log "ERROR: Failed to register runner $runner_name"
|
||||
return 1
|
||||
fi
|
||||
fi
|
||||
# Start the daemon
|
||||
# Start the daemon — no --config; act_runner finds .runner in CWD automatically
|
||||
__log "Starting daemon for runner: $runner_name"
|
||||
exec act_runner daemon --config "$runner_dir/.runner"
|
||||
exec act_runner daemon
|
||||
}
|
||||
# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||
# Start runners in background
|
||||
|
||||
Reference in New Issue
Block a user