39 lines
1.6 KiB
Bash
Executable File
39 lines
1.6 KiB
Bash
Executable File
#!/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
|