Files
zulip-platform-plugins/docs/RUNNER-SETUP.md
Abiba (pi) 4938bad199
CI / validate (push) Failing after 0s
CI / deploy (push) Has been skipped
ci: staggered deployment pipeline + runner setup guide
Three-track deployment:
- v*.*.*-rc.* → Tanko canary (test first)
- v*.*.* → All Hermes agents (after canary)
- az-v*.*.* → kagentz (Agent Zero track)

Runner setup: docs/RUNNER-SETUP.md — deploy on CT 116 via Docker
2026-06-27 19:08:34 +00:00

2.1 KiB

Gitea Actions Runner Setup

Prerequisites

  • Gitea admin access (root user or token with admin:actions scope)
  • Docker on the runner host (CT 116 recommended — already has Docker)

Step 1: Get Runner Registration Token

# On the Gitea host (CT 110) or via Gitea admin API:
ssh root@192.168.68.17  # or via Proxmox: pct enter 110

# As git user:
su - git
gitea actions generate-runner-token
# Output: abc123def456...

Or via Gitea web UI: Settings → Actions → Runners → Create new runner → Copy token

Step 2: Deploy Runner on CT 116 (syslog-api)

ssh root@192.168.68.116

# Create runner directory
mkdir -p /opt/gitea-runner && cd /opt/gitea-runner

# Download act runner
wget -O act_runner https://code.gitea.io/act_runner/releases/latest/download/act_runner-linux-amd64
chmod +x act_runner

# Register runner
./act_runner register \
  --instance https://git.sysloggh.net \
  --token <REGISTRATION_TOKEN> \
  --name "zulip-runner" \
  --labels "ubuntu-latest:docker://node:20-bullseye"

# Create systemd service
cat > /etc/systemd/system/gitea-runner.service << 'SERVICE'
[Unit]
Description=Gitea Actions Runner
After=docker.service

[Service]
ExecStart=/opt/gitea-runner/act_runner daemon
WorkingDirectory=/opt/gitea-runner
Restart=always
RestartSec=5
User=root

[Install]
WantedBy=multi-user.target
SERVICE

systemctl daemon-reload
systemctl enable --now gitea-runner

Step 3: Verify

journalctl -u gitea-runner -f --no-pager
# Look for: "runner registered" or "listening for jobs"

# In Gitea UI: Settings → Actions → Runners → should show "zulip-runner" active

Step 4: Test

Push a tag to trigger the pipeline:

git tag v1.1.0-rc.1   # Canary → Tanko only
git push origin v1.1.0-rc.1

# If canary passes:
git tag v1.1.0          # Production → all Hermes
git push origin v1.1.0

# For Agent Zero:
git tag az-v1.0.0       # Agent Zero → kagentz
git push origin az-v1.0.0

Tag Convention

Tag Pattern Deploys To Environment
v*.*.*-rc.* Tanko only canary
v*.*.* All Hermes agents production
az-v*.*.* kagentz only agent-zero