feat(ci): add docker-compose setup for Gitea act_runner and local build script
This commit is contained in:
@@ -44,3 +44,6 @@ app.*.map.json
|
|||||||
/android/app/release
|
/android/app/release
|
||||||
/android/app/build/
|
/android/app/build/
|
||||||
.gradle/
|
.gradle/
|
||||||
|
release-apks/
|
||||||
|
gitea-runner/data/
|
||||||
|
gitea-runner/.env
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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
|
||||||
|
```
|
||||||
@@ -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
|
||||||
Reference in New Issue
Block a user