Initial runner configuration
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
# Gitea Actions Runner Configuration
|
||||
|
||||
# Gitea instance URL (external, accessible from runner host)
|
||||
GITEA_INSTANCE_URL=https://gitea.gynther.se
|
||||
|
||||
# Runner registration token
|
||||
# Hämta från: https://gitea.gynther.se/repo/settings/actions/runners
|
||||
# Klicka "Create New Runner" eller "Create Instance-level Runner"
|
||||
# Kopiera tokenen och sätt här
|
||||
GITEA_RUNNER_REGISTRATION_TOKEN=
|
||||
|
||||
# Runner name (optional, defaults to hostname if empty)
|
||||
GITEA_RUNNER_NAME=recipe-app
|
||||
|
||||
# Runner labels (optional, defaults to ubuntu-latest if empty)
|
||||
# Format: label:docker://image,label:docker://image
|
||||
GITEA_RUNNER_LABELS=backend-node24:docker://node:24-bullseye,flutter-3-41:docker://ghcr.io/cirruslabs/flutter:stable
|
||||
+17
@@ -0,0 +1,17 @@
|
||||
# Environment and secrets
|
||||
.env
|
||||
.env.local
|
||||
|
||||
# Runner data and state
|
||||
/data
|
||||
.runner
|
||||
|
||||
# Docker and system
|
||||
.DS_Store
|
||||
*.log
|
||||
|
||||
# IDE
|
||||
.vscode/
|
||||
.idea/
|
||||
*.swp
|
||||
*.swo
|
||||
@@ -0,0 +1,147 @@
|
||||
# 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)
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
services:
|
||||
gitea-runner:
|
||||
image: gitea/act_runner:latest
|
||||
container_name: gitea-runner
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
GITEA_INSTANCE_URL: ${GITEA_INSTANCE_URL}
|
||||
GITEA_RUNNER_REGISTRATION_TOKEN: ${GITEA_RUNNER_REGISTRATION_TOKEN}
|
||||
GITEA_RUNNER_NAME: ${GITEA_RUNNER_NAME:-recipe-app}
|
||||
GITEA_RUNNER_LABELS: ${GITEA_RUNNER_LABELS:-backend-node24:docker://node:24-bullseye,flutter-3-41:docker://ghcr.io/cirruslabs/flutter:stable}
|
||||
volumes:
|
||||
- ./data:/data
|
||||
- /var/run/docker.sock:/var/run/docker.sock
|
||||
restart: always
|
||||
Reference in New Issue
Block a user