a5badeaad0
[skip ci] Signed-off-by: gitea_1-h.cc <i@oo1.dev>
121 lines
4.0 KiB
YAML
121 lines
4.0 KiB
YAML
---
|
|
# yaml-language-server: $schema=https://raw.githubusercontent.com/compose-spec/compose-spec/master/schema/compose-spec.json
|
|
|
|
x-runner-env: &runner-env
|
|
TZ: Asia/Shanghai
|
|
MAX_PARALLEL_JOBS: "1"
|
|
GITEA_RUNNER_JOB_CONTAINER_FORCE_PULL: "true"
|
|
ACT_CACHE_SERVER_EXTERNAL_URL: "http://gitea-runner-cache-server.oo1.dev:9999/"
|
|
# CACHE_EXTERNAL_SECRET: "${CACHE_EXTERNAL_SECRET:?set CACHE_EXTERNAL_SECRET}"
|
|
CACHE_EXTERNAL_SECRET: 7990850f9cffc2a8504d629b401ca0667d26adf6d648ac29496fffd3f70282a5
|
|
|
|
x-runner-command: &runner-command
|
|
- -ec
|
|
- |
|
|
arch=$$(uname -m)
|
|
if [ "$$arch" = "x86_64" ]; then
|
|
arch="amd64"
|
|
elif [ "$$arch" = "aarch64" ]; then
|
|
arch="arm64"
|
|
else
|
|
echo "unknown arch: $$arch"
|
|
exit 1
|
|
fi
|
|
|
|
labels="$${GITEA_RUNNER_LABELS:-}"
|
|
if [ -z "$$labels" ]; then
|
|
labels="ubuntu-latest:docker://gitea/runner-images:ubuntu-latest"
|
|
labels="$$labels,ubuntu-$$arch:docker://gitea/runner-images:ubuntu-latest"
|
|
fi
|
|
|
|
if [ -z "$${GITEA_RUNNER_NAME:-}" ]; then
|
|
country=$$(wget -qO- https://ipinfo.io/country 2>/dev/null || true)
|
|
ip=$$(wget -qO- https://ipv4.icanhazip.com 2>/dev/null || true)
|
|
memTotal=$$(awk '/MemTotal/ {printf "%.2f", $$2 / 1024 / 1024}' /proc/meminfo)
|
|
|
|
country="$${country:-XX}"
|
|
ip="$${ip:-unknown-ip}"
|
|
GITEA_RUNNER_NAME="$$country-$$ip-$$arch-$$(nproc)C$${memTotal}G-$${RUNNER_INSTANCE_NAME}"
|
|
fi
|
|
|
|
{
|
|
printf '%s\n' 'log:'
|
|
printf '%s\n' ' level: info'
|
|
printf '%s\n' ''
|
|
printf '%s\n' 'runner:'
|
|
printf '%s\n' ' file: /data/.runner'
|
|
printf ' capacity: %s\n' "$${MAX_PARALLEL_JOBS}"
|
|
printf '%s\n' ' labels:'
|
|
|
|
old_ifs="$$IFS"
|
|
IFS=','
|
|
set -- $$labels
|
|
IFS="$$old_ifs"
|
|
for label in "$$@"; do
|
|
printf ' - "%s"\n' "$$label"
|
|
done
|
|
|
|
printf '%s\n' ''
|
|
printf '%s\n' 'cache:'
|
|
printf '%s\n' ' enabled: true'
|
|
printf '%s\n' ' dir: /data/cache/server'
|
|
printf ' external_server: "%s"\n' "$${ACT_CACHE_SERVER_EXTERNAL_URL}"
|
|
printf ' external_secret: "%s"\n' "$${CACHE_EXTERNAL_SECRET}"
|
|
printf '%s\n' ''
|
|
printf '%s\n' 'container:'
|
|
printf ' force_pull: %s\n' "$${GITEA_RUNNER_JOB_CONTAINER_FORCE_PULL}"
|
|
} >/tmp/runner-config.yaml
|
|
|
|
if [ ! -s /data/.runner ]; then
|
|
act_runner --config /tmp/runner-config.yaml register --no-interactive \
|
|
--instance "$${GITEA_INSTANCE_URL}" \
|
|
--token "$${GITEA_RUNNER_REGISTRATION_TOKEN}" \
|
|
--name "$${GITEA_RUNNER_NAME}" \
|
|
--labels "$$labels"
|
|
fi
|
|
|
|
exec act_runner --config /tmp/runner-config.yaml daemon
|
|
|
|
x-runner-common: &runner-common
|
|
# image: docker.io/gitea/act_runner:v0.6.0
|
|
image: docker.io/gitea/act_runner:nightly
|
|
restart: unless-stopped
|
|
# pull_policy: always
|
|
stop_signal: SIGINT
|
|
stop_grace_period: 30s
|
|
labels:
|
|
com.centurylinklabs.watchtower.enable: "true"
|
|
working_dir: /data
|
|
entrypoint: ["/sbin/tini", "--", "/bin/sh"]
|
|
command: *runner-command
|
|
|
|
services:
|
|
runner-yanhao_ren: # ❗️1️⃣
|
|
<<: *runner-common
|
|
container_name: gitea_runner_yanhao_ren # ❗️2️⃣
|
|
environment:
|
|
<<: *runner-env
|
|
RUNNER_INSTANCE_NAME: yanhao_ren # ❗️3️⃣
|
|
GITEA_INSTANCE_URL: "https://git.yanhao.ren" # ❗️4️⃣
|
|
GITEA_RUNNER_REGISTRATION_TOKEN: # ❗️5️⃣
|
|
volumes:
|
|
- gitea_runner_yanhao_ren_data:/data # ❗️6️⃣
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- /etc/localtime:/etc/localtime:ro
|
|
|
|
runner-git.1-h.cc: # ❗️1️⃣
|
|
<<: *runner-common
|
|
container_name: gitea_runner_git.1-h.cc # ❗️2️⃣
|
|
environment:
|
|
<<: *runner-env
|
|
RUNNER_INSTANCE_NAME: git.1-h.cc # ❗️3️⃣
|
|
GITEA_INSTANCE_URL: "https://git.1-h.cc" # ❗️4️⃣
|
|
GITEA_RUNNER_REGISTRATION_TOKEN: # ❗️5️⃣
|
|
volumes:
|
|
- gitea_runner_git.1-h.cc_data:/data # ❗️6️⃣
|
|
- /var/run/docker.sock:/var/run/docker.sock:ro
|
|
- /etc/localtime:/etc/localtime:ro
|
|
|
|
volumes:
|
|
gitea_runner_yanhao_ren_data:
|
|
gitea_runner_git.1-h.cc_data: |