feat(ci): add docker-compose setup for Gitea act_runner and local build script

This commit is contained in:
2026-09-13 21:53:16 +02:00
parent 0aa5fda335
commit 8b4916246b
5 changed files with 119 additions and 0 deletions
+3
View File
@@ -44,3 +44,6 @@ app.*.map.json
/android/app/release
/android/app/build/
.gradle/
release-apks/
gitea-runner/data/
gitea-runner/.env
+59
View File
@@ -0,0 +1,59 @@
@echo off
setlocal enabledelayedexpansion
echo ========================================================
echo Oggauer Gemeindetrommler - Android APK Builder
echo ========================================================
echo.
set FLUTTER=C:\src\flutter\bin\flutter.bat
if not exist "%FLUTTER%" (
set FLUTTER=flutter
)
echo [1/4] Dependencies laden...
call %FLUTTER% pub get
if %ERRORLEVEL% NEQ 0 (
echo [FEHLER] 'flutter pub get' fehlgeschlagen.
pause
exit /b %ERRORLEVEL%
)
echo.
echo [2/4] Universelle Release APK bauen...
call %FLUTTER% build apk --release
if %ERRORLEVEL% NEQ 0 (
echo [FEHLER] 'flutter build apk --release' fehlgeschlagen.
pause
exit /b %ERRORLEVEL%
)
echo.
echo [3/4] Split-per-ABI APKs bauen (fuer schlankere Downloads)...
call %FLUTTER% build apk --release --split-per-abi
echo.
echo [4/4] APKs organisieren...
if not exist "release-apks" mkdir "release-apks"
if exist "build\app\outputs\flutter-apk\app-release.apk" (
copy /Y "build\app\outputs\flutter-apk\app-release.apk" "release-apks\oggauer-gemeindetrommler-universal.apk" >nul
)
if exist "build\app\outputs\flutter-apk\app-arm64-v8a-release.apk" (
copy /Y "build\app\outputs\flutter-apk\app-arm64-v8a-release.apk" "release-apks\oggauer-gemeindetrommler-arm64.apk" >nul
)
if exist "build\app\outputs\flutter-apk\app-armeabi-v7a-release.apk" (
copy /Y "build\app\outputs\flutter-apk\app-armeabi-v7a-release.apk" "release-apks\oggauer-gemeindetrommler-armv7.apk" >nul
)
if exist "build\app\outputs\flutter-apk\app-x86_64-release.apk" (
copy /Y "build\app\outputs\flutter-apk\app-x86_64-release.apk" "release-apks\oggauer-gemeindetrommler-x86_64.apk" >nul
)
echo.
echo ========================================================
echo ERFOLG! Alle APKs befinden sich im Ordner:
echo %CD%\release-apks\
echo ========================================================
echo.
explorer release-apks
pause
+9
View File
@@ -0,0 +1,9 @@
# Gitea URL
GITEA_INSTANCE_URL=https://git.djnizz.at
# Hier das Token einfügen aus Gitea:
# Website-Verwaltung -> Aktionen -> Runner -> "Neuen Runner erstellen"
GITEA_RUNNER_REGISTRATION_TOKEN=hier_dein_token_einfuegen
# Beliebiger Name für den Runner
GITEA_RUNNER_NAME=oracle-arm-runner
+25
View File
@@ -0,0 +1,25 @@
# Gitea Act Runner (Oracle Cloud ARM64 / Docker)
Docker Compose Setup für den Gitea CI/CD Runner zum automatischen Bauen der Android-APKs.
## Schnellstart
1. **Token holen:**
In Gitea unter **Website-Verwaltung** (oder Repo-Einstellungen) ➔ **Aktionen** ➔ **Runner** ➔ **Neuen Runner erstellen** das Registrierungs-Token kopieren.
2. **Konfiguration erstellen:**
```bash
cp .env.example .env
nano .env
```
Dort das kopierte Token bei `GITEA_RUNNER_REGISTRATION_TOKEN` eintragen.
3. **Runner starten:**
```bash
docker compose up -d
```
4. **Logs ansehen:**
```bash
docker compose logs -f
```
+23
View File
@@ -0,0 +1,23 @@
version: '3.8'
services:
gitea-runner:
image: gitea/act_runner:latest
container_name: gitea-runner
restart: always
environment:
# URL deiner Gitea-Instanz
- GITEA_INSTANCE_URL=${GITEA_INSTANCE_URL:-https://git.djnizz.at}
# Registrierungs-Token aus Gitea (Website-Verwaltung -> Aktionen -> Runner -> "Neuen Runner erstellen")
- GITEA_RUNNER_REGISTRATION_TOKEN=${GITEA_RUNNER_REGISTRATION_TOKEN}
# Name des Runners in Gitea
- GITEA_RUNNER_NAME=${GITEA_RUNNER_NAME:-oracle-arm-runner}
# TLS-Verifizierung überspringen (falls SSL abgelaufen/selbstsigniert ist)
- GITEA_RUNNER_INSECURE=true
# Maximale parallele Jobs
- GITEA_RUNNER_CAPACITY=2
volumes:
# Docker-Socket des Host-Systems (nötig für Container-Builds wie Flutter)
- /var/run/docker.sock:/var/run/docker.sock
# Persistenter Speicher: Registrierung bleibt nach Neustart erhalten
- ./data:/data