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
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
# 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
|
||||
```bash
|
||||
# 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)
|
||||
```bash
|
||||
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
|
||||
```bash
|
||||
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:
|
||||
```bash
|
||||
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` |
|
||||
Reference in New Issue
Block a user