From 15a3cc9bd0571bfa8e5241153732bad9837acb85 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 25 Oct 2026 16:56:10 -0700 Subject: [PATCH] runner: cron lane (green-tea-runner-cron) and og-badges on it New Fly app green-tea-runner-cron (shared-cpu-1x, 2GB, label cron, same config.yaml: 30s fetch timeout, 1h job cap) takes scheduled/ops jobs so deploys on green-tea-runner never wait behind them. og-badges now runs-on: cron. Co-Authored-By: Claude Opus 5.5 Claude-Session: https://claude.ai/code/session_01VVFi3wvLWKaEkpDw6eLnQC --- .gitea/workflows/og-badges.yml | 2 +- runner/fly.cron.toml | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 runner/fly.cron.toml diff --git a/.gitea/workflows/og-badges.yml b/.gitea/workflows/og-badges.yml index 1595324..975172e 100644 --- a/.gitea/workflows/og-badges.yml +++ b/.gitea/workflows/og-badges.yml @@ -16,7 +16,7 @@ on: default: 'false' jobs: badges: - runs-on: ubuntu-latest + runs-on: cron timeout-minutes: 8 steps: - name: define, diff, award diff --git a/runner/fly.cron.toml b/runner/fly.cron.toml new file mode 100644 index 0000000..0707da2 --- /dev/null +++ b/runner/fly.cron.toml @@ -0,0 +1,30 @@ +# Fly app green-tea-runner-cron: cron-lane Gitea Actions runner (label `cron`) for scheduled/ops jobs, so they never queue ahead of deploys. +# Deploy: cd runner && fly deploy -c fly.cron.toml. Registration token is a Fly secret. +app = "green-tea-runner-cron" +primary_region = "iad" + +[build] + image = "docker.gitea.com/act_runner:5.0.0-dind" + +[experimental] + # Fly's rootfs is overlay, so Docker's data root must live on the volume. + entrypoint = ["sh", "-c", "mkdir -p /data/docker && rm -rf /var/lib/docker && ln -sfn /data/docker /var/lib/docker && exec s6-svscan /etc/s6"] + +[env] + DOCKER_HOST = "unix:///var/run/docker.sock" + GITEA_INSTANCE_URL = "https://teahub.xyz" + GITEA_RUNNER_LABELS = "cron:docker://node:22-bookworm" + GITEA_RUNNER_NAME = "fly-iad-cron-1" + CONFIG_FILE = "/etc/gitea-runner/config.yaml" + +[[files]] + guest_path = "/etc/gitea-runner/config.yaml" + local_path = "config.yaml" + +[mounts] + source = "runner_cron_data" + destination = "/data" + +[[vm]] + size = "shared-cpu-1x" + memory = "2gb"