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 avdocker-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.sockger effektivt root-access. Använd enbart på betrodda hostar. - Runner data: Allt runner-tillstånd lagras under
./data. Säkerhetskopiera denna mapp regelbundet.