#!/usr/bin/env bash # Installe et enregistre le runner CI production à partir des fichiers versionnés. set -Eeuo pipefail readonly SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" readonly APP_DIR="$(dirname "${SCRIPT_DIR}")" readonly RUNNER_DIR="/opt/manus-deploy/gitea-runner" readonly GITEA_CONTAINER="gitea" readonly GITEA_URL="https://git.santinova-soft.org" readonly RUNNER_NAME="production-docker-runner" readonly RUNNER_IMAGE="gitea-runner-node:22" readonly RUNNER_LABELS="ci-node22:docker://${RUNNER_IMAGE}" readonly LABEL_FILE="${RUNNER_DIR}/labels" install -d -m 0750 "${RUNNER_DIR}" "${RUNNER_DIR}/cache" install -m 0640 "${SCRIPT_DIR}/gitea-act-runner-config.yaml" "${RUNNER_DIR}/config.yaml" install -D -m 0644 "${SCRIPT_DIR}/gitea-act-runner.service" /etc/systemd/system/gitea-act-runner.service docker build --tag "${RUNNER_IMAGE}" --file "${SCRIPT_DIR}/Dockerfile.gitea-runner" "${APP_DIR}" if [[ ! -f "${RUNNER_DIR}/.runner" || ! -f "${LABEL_FILE}" || "$(<"${LABEL_FILE}")" != "${RUNNER_LABELS}" ]]; then systemctl stop gitea-act-runner.service 2>/dev/null || true rm -f "${RUNNER_DIR}/.runner" token="$(docker exec -u git "${GITEA_CONTAINER}" gitea actions generate-runner-token)" ( cd "${RUNNER_DIR}" /usr/local/bin/act_runner register --no-interactive \ --instance "${GITEA_URL}" \ --token "${token}" \ --name "${RUNNER_NAME}" \ --labels "${RUNNER_LABELS}" \ --config "${RUNNER_DIR}/config.yaml" ) printf '%s\n' "${RUNNER_LABELS}" > "${LABEL_FILE}" fi systemctl daemon-reload systemctl enable --now gitea-act-runner.service systemctl is-active gitea-act-runner.service