From de6ad1db934abdca0ab8ce679cfb69680c1544a7 Mon Sep 17 00:00:00 2001 From: j Date: Wed, 17 Dec 2025 23:33:14 +1300 Subject: [PATCH] Update 4 files --- gitea-runner-docker/config/service.env | 5 ++++- gitea-runner-docker/install.sh | 15 ++++++++++++++- gitea-runner-docker/start.sh | 26 +++++++++++++------------- gitea-runner-docker/uninstall.sh | 4 ++-- 4 files changed, 33 insertions(+), 17 deletions(-) diff --git a/gitea-runner-docker/config/service.env b/gitea-runner-docker/config/service.env index f1a6d3e..f798702 100644 --- a/gitea-runner-docker/config/service.env +++ b/gitea-runner-docker/config/service.env @@ -1,8 +1,11 @@ -# Service settings specific to this server +# Service settings specific to this server # (can also override anything in the .template_info.env file in the template to make it specific to this server) # $HOME etc expanded on remote server by bash. GITEA_RUNNER_DIRECTORY="${HOME}/.gitea-runner" + +# Change this to force re-registration (e.g., after changing name/labels/token) +REGISTRATION_ID=1 ACT_RUNNER_VERSION="0.2.11" GITEA_URL="https://gitea.jde.nz" GITEA_TOKEN="GITEA_TOKEN" diff --git a/gitea-runner-docker/install.sh b/gitea-runner-docker/install.sh index 4d68344..fa10c3f 100755 --- a/gitea-runner-docker/install.sh +++ b/gitea-runner-docker/install.sh @@ -5,11 +5,24 @@ source "${AGENT_PATH}/common.sh" _check_required_env_vars "SERVER" "SERVICE" "TEMP_DIR" \ "GITEA_RUNNER_DIRECTORY" "ACT_RUNNER_VERSION" \ "GITEA_URL" "GITEA_TOKEN" "GITEA_RUNNER_NAME" "GITEA_RUNNER_LABELS" \ - "CONTAINER_NAME" + "CONTAINER_NAME" "REGISTRATION_ID" mkdir -p "${GITEA_RUNNER_DIRECTORY}" || _die "Failed to create ${GITEA_RUNNER_DIRECTORY}" +# Check if registration ID changed - if so, clear old registration +STORED_REG_ID_FILE="${GITEA_RUNNER_DIRECTORY}/.registration_id" +STORED_REG_ID="" +if [[ -f "$STORED_REG_ID_FILE" ]]; then + STORED_REG_ID=$(cat "$STORED_REG_ID_FILE") +fi + +if [[ "$STORED_REG_ID" != "$REGISTRATION_ID" ]]; then + echo "Registration ID changed ($STORED_REG_ID -> $REGISTRATION_ID), clearing old registration..." + rm -f "${GITEA_RUNNER_DIRECTORY}/.runner" + echo "$REGISTRATION_ID" > "$STORED_REG_ID_FILE" +fi + ./start.sh || _die "Failed to start" echo "Installation complete for service ${SERVICE}." diff --git a/gitea-runner-docker/start.sh b/gitea-runner-docker/start.sh index 37d1a9f..37ca79c 100755 --- a/gitea-runner-docker/start.sh +++ b/gitea-runner-docker/start.sh @@ -7,20 +7,20 @@ _check_required_env_vars "SERVER" "SERVICE" \ "GITEA_URL" "GITEA_TOKEN" "GITEA_RUNNER_NAME" "GITEA_RUNNER_LABELS" \ "CONTAINER_NAME" -DOCKER_RUN_CMD="docker run -d \ - --restart unless-stopped \ - --name ${CONTAINER_NAME} \ - -e GITEA_INSTANCE_URL=${GITEA_URL} \ - -e GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_TOKEN} \ - -e GITEA_RUNNER_NAME=${GITEA_RUNNER_NAME} \ - -e GITEA_RUNNER_LABELS=${GITEA_RUNNER_LABELS} \ - -v /var/run/docker.sock:/var/run/docker.sock \ - -v ${GITEA_RUNNER_DIRECTORY}:/data \ - gitea/act_runner:nightly" +# Stop and remove existing container if present +_remove_container "$CONTAINER_NAME" 2>/dev/null || true - -if ! _create_and_start_container "$DOCKER_RUN_CMD" "$CONTAINER_NAME"; then - echo "${DOCKER_RUN_CMD}" +# Start the container directly to avoid quoting issues with _create_and_start_container +if ! docker run -d \ + --restart unless-stopped \ + --name "${CONTAINER_NAME}" \ + -e GITEA_INSTANCE_URL="${GITEA_URL}" \ + -e GITEA_RUNNER_REGISTRATION_TOKEN="${GITEA_TOKEN}" \ + -e GITEA_RUNNER_NAME="${GITEA_RUNNER_NAME}" \ + -e GITEA_RUNNER_LABELS="${GITEA_RUNNER_LABELS}" \ + -v /var/run/docker.sock:/var/run/docker.sock \ + -v "${GITEA_RUNNER_DIRECTORY}:/data" \ + gitea/act_runner:nightly; then _die "Failed to start container ${CONTAINER_NAME}" fi diff --git a/gitea-runner-docker/uninstall.sh b/gitea-runner-docker/uninstall.sh index 47000c3..a389bc4 100755 --- a/gitea-runner-docker/uninstall.sh +++ b/gitea-runner-docker/uninstall.sh @@ -7,8 +7,8 @@ _check_required_env_vars "SERVER" "SERVICE" "GITEA_RUNNER_DIRECTORY" "CONTAINER_ _remove_container "$CONTAINER_NAME" || _die "Failed to remove container ${CONTAINER_NAME}" -_is_container_running && _die "Couldn't stop existing container" -_is_container_exists && _die "Couldn't remove existing container" +_is_container_running "$CONTAINER_NAME" && _die "Couldn't stop existing container" +_is_container_exists "$CONTAINER_NAME" && _die "Couldn't remove existing container" echo "Uninstallation of ${CONTAINER_NAME} complete." echo "Local data folder ${GITEA_RUNNER_DIRECTORY} still in place."