Files
recipe-gitea-runner/README.md
T
2026-05-12 19:16:53 +02:00

3.8 KiB

Gitea Actions Runner for Recipe App

Dedikerad runner för att köra Gitea Actions workflows för Recipe App CI/CD pipeline.

Förutsättningar

  • Docker och Docker Compose installerat
  • Åtkomst till Gitea-instansen (https://gitea.gynther.se)
  • En registrerings-token från Gitea

Snabbstart

1. Kopiera miljövariabler

cp .env.example .env

2. Hämta registrerings-token från Gitea

Gå till en av dessa URL:er beroende på var du vill registrera runnern:

Instance-level runner (kör jobb för alla repos):

https://gitea.gynther.se/-/admin/actions/runners

Organization-level runner (kör jobb för org):

https://gitea.gynther.se/din-org/settings/actions/runners

Repository-level runner (kör jobb bara för repo):

https://gitea.gynther.se/owner/recipe-app/settings/actions/runners

Klicka "Create Runner" eller "Create New Runner", kopiera registrerings-tokenen.

3. Konfigurера .env

nano .env

Sätt dessa värden:

GITEA_INSTANCE_URL=https://gitea.gynther.se
GITEA_RUNNER_REGISTRATION_TOKEN=<din-token-här>
GITEA_RUNNER_NAME=recipe-app
GITEA_RUNNER_LABELS=backend-node24:docker://node:24-bullseye,flutter-3-41:docker://ghcr.io/cirruslabs/flutter:stable

4. Starta runnern

docker compose up -d

5. Verifiera att den är online

docker compose logs -f

Du bör se output som:

level=info msg="Runner registered successfully."
level=info msg="Listening on..."

Gå sedan till Gitea-instansen och verifiera att runnern visas som online under Actions → Runners.

Daglig drift

# Se status och loggar
docker compose logs -f

# Starta om runnern
docker compose restart

# Stoppa runnern
docker compose down

# Rensa runner-data (varning: raderar allt data)
docker compose down -v

Labels och Job-matchning

Workflown i recipe-app definieras i recipe-app/.gitea/workflows/test.yml.

Aktuella labels:

  • backend-node24: Node.js 24 i Bullseye — för backend-jobb (build, test, linting)
  • flutter-3-41: Flutter 3.41 — för Flutter-jobb (analyze, test)

Om en workflow kör med runs-on: backend-node24 eller runs-on: flutter-3-41, kommer denna runner att köra jobbet i motsvarande Docker-image.

Troubleshooting

Runner visas som offline

Kontrollera loggarna:

docker compose logs

Vanliga felorsaker:

  • Token är fel eller utgånget → skapa ny token i Gitea
  • URL är felaktig → verifiera att https://gitea.gynther.se är nåbar från runner-hosten
  • Docker-socketen är inte tillgänglig → verifiera att runner är medlem av docker-gruppen eller att socketen är monterad

Jobb slutförs inte

Verifiera labels: Säkra att workflow använder en av de definierade labels. Om runs-on matchar ingen label, kommer jobbet att sitta i kö.

Verifiera Docker-image:

docker pull node:24-bullseye
docker pull ghcr.io/cirruslabs/flutter:stable

Token är exponerad

Skapa omedelbar en ny token i Gitea och uppdatera .env:

# Skapa ny token i Gitea UI
nano .env
# Uppdatera GITEA_RUNNER_REGISTRATION_TOKEN

docker compose restart

Säkerhet

  • Secrets: .env-filen innehåller sensitiv data. Lägg den ALDRIG i Git.
  • Docker socket: Montering av /var/run/docker.sock ger effektivt root-access. Använd enbart på betrodda hostar.
  • Runner data: Allt runner-tillstånd lagras under ./data. Säkerhetskopiera denna mapp regelbundet.

Referenser