4.0 KiB
Gitea CI/CD Setup
Diese Anleitung erklärt, wie Sie die benötigten Variables und Secrets in Gitea für den automatischen Build und Push Workflow einrichten.
Gitea Workflow
Der Workflow .gitea/workflows/build-and-push.yaml wird automatisch ausgeführt und:
- Bestimmt automatisch den Image-Tag basierend auf dem Commit/Tag
- Baut das Docker Image
- Pusht das Image zur Gitea Registry
Automatische Tag-Generierung
Der IMAGE_TAG wird automatisch bestimmt:
| Trigger | Tag-Format | Beispiel |
|---|---|---|
Push auf main Branch |
latest |
latest |
| Git Tag (v*) | Tag-Name | v1.0.0, v2.1.3 |
| Andere Branches | {branch}-{sha} |
develop-a1b2c3d |
Sie müssen IMAGE_TAG NICHT mehr als Variable setzen - es wird automatisch generiert!
Benötigte Gitea Variables und Secrets
Variables (öffentlich)
Navigieren Sie zu: Settings → Actions → Variables
Erstellen Sie folgende Variables:
| Name | Wert | Beispiel |
|---|---|---|
REGISTRY_URL |
URL der Gitea Registry | gitea.moz-tech.de |
NAMESPACE |
Namespace/Benutzer | murat |
REPO_NAME |
Repository Name | enerport-web-app |
Hinweis: IMAGE_TAG wird automatisch aus dem Commit/Tag generiert und muss nicht als Variable gesetzt werden.
Secrets (vertraulich)
Navigieren Sie zu: Settings → Actions → Secrets
Erstellen Sie folgende Secrets:
| Name | Wert | Beispiel |
|---|---|---|
CI_GITEA_USER |
Gitea Benutzername | murat |
CI_GITEA_TOKEN |
Gitea Access Token | 74a7738116bfb99497a7781291efc5766901f497 |
Hinweis:
- User und Token werden zusammen als Secrets gespeichert für eine sichere Authentifizierung
- Der Prefix
CI_GITEA_ist erforderlich, da Gitea keine Variablen mit dem PrefixGITEA_erlaubt
Access Token erstellen
- Navigieren Sie zu Settings → Applications → Manage Access Tokens
- Klicken Sie auf Generate New Token
- Geben Sie einen Namen ein (z.B. "Docker Registry")
- Wählen Sie die Berechtigung: write:package (für Registry Push)
- Klicken Sie auf Generate Token
- Kopieren Sie den Token und fügen Sie ihn als Secret
CI_GITEA_TOKENhinzu
Workflow testen
Nach der Einrichtung der Variables und Secrets:
Test 1: Push auf main Branch (erstellt 'latest' Tag)
git add .
git commit -m "Test CI/CD workflow"
git push origin main
→ Erstellt Image: gitea.moz-tech.de/murat/enerport-web-app:latest
Test 2: Git Tag erstellen (erstellt versioniertes Image)
git tag v1.0.0
git push origin v1.0.0
→ Erstellt Image: gitea.moz-tech.de/murat/enerport-web-app:v1.0.0
Workflow-Status überprüfen:
- Navigieren Sie zu Actions in Ihrem Gitea Repository
- Sie sollten den Workflow "Build and Push Docker Image" sehen
- Klicken Sie darauf, um die Logs und den verwendeten Tag zu sehen
Troubleshooting
Fehler: "REGISTRY_URL not set in .env"
→ Stellen Sie sicher, dass alle Variables korrekt in Gitea eingerichtet sind
Fehler: "Failed to login to registry"
→ Überprüfen Sie das GITEA_TOKEN Secret und stellen Sie sicher, dass es die write:package Berechtigung hat
Fehler: "Image not found locally"
→ Der Build-Schritt ist fehlgeschlagen. Überprüfen Sie die Build-Logs im Workflow
Lokale Entwicklung vs. CI/CD
Lokal:
- Verwendet die
docker/.envDatei - Manuelle Ausführung von
./build.shund./push.sh
CI/CD (Gitea):
- Erstellt
.envDatei automatisch aus Gitea Variables/Secrets - Automatische Ausführung bei jedem Push auf
main
Sicherheit
⚠️ Wichtig:
- Committen Sie die
docker/.envDatei NIEMALS in Git (bereits in.gitignore) - Das
GITEA_TOKENsollte nur als Secret gespeichert werden - Alle anderen Werte können als Variables gespeichert werden
Image Pull
Nach erfolgreichem Push können Sie das Image wie folgt pullen:
# Login zur Registry
docker login gitea.moz-tech.de -u murat
# Image pullen
docker pull gitea.moz-tech.de/murat/enerport-web-app:latest
# Container starten
docker run -p 8080:8080 gitea.moz-tech.de/murat/enerport-web-app:latest