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

148 lines
3.8 KiB
Markdown

# 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
```bash
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`
```bash
nano .env
```
Sätt dessa värden:
```env
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
```bash
docker compose up -d
```
### 5. Verifiera att den är online
```bash
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
```bash
# 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](../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:**
```bash
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:**
```bash
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`:
```bash
# 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
- [Gitea Actions Documentation](https://docs.gitea.com/usage/actions/overview)
- [Act Runner Setup Guide](https://docs.gitea.com/usage/actions/act-runner)
- [Recipe App CI Workflow](.../recipe-app/.gitea/workflows/test.yml)