GITEA_WORKFLOW.md gelöscht

This commit is contained in:
sebastian.zell 2026-01-16 09:23:16 +00:00
parent 013eb78a7c
commit 3cd066ffe3
1 changed files with 0 additions and 376 deletions

View File

@ -1,376 +0,0 @@
# Gitea Workflow - Best Practices
Diese Anleitung beschreibt den empfohlenen Git-Workflow für das PointCab Webexport Projekt.
## 🏗️ Repository erstellen
### In Gitea
1. **Anmelden** auf Ihrem Gitea-Server
2. **"+" → "Neues Repository"**
3. **Einstellungen:**
- Name: `pointcab-webexport`
- Beschreibung: `PointCab Webexport Server - Webbasiertes Sharing-System`
- Sichtbarkeit: Privat (oder Öffentlich)
- README initialisieren: Nein (wir haben bereits eine)
- .gitignore: Keine (wir haben bereits eine)
- Lizenz: MIT
### Lokales Repository verbinden
```bash
cd /home/ubuntu/pointcab_webexport_git
# Git initialisieren
git init
# Remote hinzufügen
git remote add origin https://ihr-gitea-server/username/pointcab-webexport.git
# Ersten Commit erstellen
git add .
git commit -m "Initial commit: PointCab Webexport Server"
# Auf Gitea pushen
git push -u origin main
```
## 🌿 Branch-Strategie
### Haupt-Branches
| Branch | Zweck | Schutz |
|--------|-------|--------|
| `main` | Produktions-Code | Geschützt |
| `develop` | Entwicklung | Optional geschützt |
### Feature-Branches
```
feature/neue-funktion
feature/upload-verbesserung
feature/multi-html-support
```
### Bugfix-Branches
```
bugfix/404-fehler
bugfix/passwort-problem
hotfix/kritischer-fehler
```
### Branch-Workflow
```
main ─────────────────────────────────────────►
↑ ↑
│ │
develop ──●────●─────●────────●────►
│ ↑ │ ↑
│ │ │ │
feature/a ─●───┘ │ │
│ │
feature/b ───────────●────────┘
```
## 📝 Commit-Konventionen
### Format
```
<typ>(<bereich>): <kurze beschreibung>
<optionale längere beschreibung>
<optionale referenzen>
```
### Typen
| Typ | Beschreibung |
|-----|--------------|
| `feat` | Neue Funktion |
| `fix` | Bugfix |
| `docs` | Dokumentation |
| `style` | Formatierung |
| `refactor` | Code-Verbesserung |
| `test` | Tests |
| `chore` | Wartung |
### Beispiele
```bash
# Neue Funktion
git commit -m "feat(upload): Multi-HTML-Datei-Auswahl hinzugefügt"
# Bugfix
git commit -m "fix(assets): 404-Fehler bei Subfolder-Assets behoben"
# Dokumentation
git commit -m "docs: Installationsanleitung aktualisiert"
# Refactoring
git commit -m "refactor(service): Asset-Pfad-Auflösung verbessert"
```
## 🔀 Pull Requests
### PR erstellen
1. **Branch erstellen:**
```bash
git checkout develop
git pull
git checkout -b feature/neue-funktion
```
2. **Änderungen machen:**
```bash
# Code ändern...
git add .
git commit -m "feat: Neue Funktion implementiert"
```
3. **Branch pushen:**
```bash
git push -u origin feature/neue-funktion
```
4. **PR in Gitea erstellen:**
- Ziel-Branch: `develop` (oder `main` für Hotfixes)
- Beschreibung mit Änderungen
- Reviewer zuweisen (falls vorhanden)
### PR-Checkliste
- [ ] Code getestet
- [ ] Dokumentation aktualisiert
- [ ] Keine Secrets im Code
- [ ] Commit-Messages korrekt
- [ ] Ziel-Branch korrekt
### PR mergen
1. **Review (falls vorhanden)**
2. **Merge in Gitea:**
- "Squash and Merge" für saubere Historie
- Oder "Merge Commit" für vollständige Historie
3. **Branch löschen** (optional)
## 🏷️ Releases
### Versionierung (Semantic Versioning)
```
MAJOR.MINOR.PATCH
1.0.0 → 1.0.1 (Bugfix)
1.0.1 → 1.1.0 (Neue Funktion)
1.1.0 → 2.0.0 (Breaking Change)
```
### Release erstellen
1. **Version aktualisieren:**
```bash
# package.json Version ändern
npm version patch # oder minor/major
```
2. **Changelog aktualisieren:**
```bash
# docs/CHANGELOG.md bearbeiten
```
3. **Tag erstellen:**
```bash
git tag -a v1.0.0 -m "Release v1.0.0"
git push origin v1.0.0
```
4. **In Gitea:**
- Releases → Neues Release
- Tag auswählen: `v1.0.0`
- Beschreibung mit Änderungen
### Release-Notes Template
```markdown
## v1.0.0 (2026-01-16)
### Neue Funktionen
- Multi-HTML-Datei-Unterstützung
- RAR-Entpacken auf dem Server
### Bugfixes
- 404-Fehler bei Subfolder-Assets behoben
- Passwort-Speicherung korrigiert
### Verbesserungen
- Performance-Optimierung beim Upload
- Bessere Fehlermeldungen
### Breaking Changes
- Keine
```
## 🔄 Typischer Workflow
### Neue Funktion entwickeln
```bash
# 1. Develop aktualisieren
git checkout develop
git pull
# 2. Feature-Branch erstellen
git checkout -b feature/neue-funktion
# 3. Entwickeln und committen
# ... code ändern ...
git add .
git commit -m "feat: Neue Funktion - Teil 1"
# ... weiter entwickeln ...
git add .
git commit -m "feat: Neue Funktion - Teil 2"
# 4. Branch pushen
git push -u origin feature/neue-funktion
# 5. PR in Gitea erstellen
# 6. Nach Merge: Branch löschen
git checkout develop
git pull
git branch -d feature/neue-funktion
```
### Bugfix (normal)
```bash
git checkout develop
git pull
git checkout -b bugfix/problem-beschreibung
# Fix implementieren
git add .
git commit -m "fix: Problem beschreibung behoben"
git push -u origin bugfix/problem-beschreibung
# PR erstellen → develop
```
### Hotfix (kritisch)
```bash
git checkout main
git pull
git checkout -b hotfix/kritischer-fehler
# Fix implementieren
git add .
git commit -m "fix: Kritischer Fehler behoben"
git push -u origin hotfix/kritischer-fehler
# PR erstellen → main (und develop!)
```
## ⚙️ CI/CD (Optional)
### Gitea Actions (falls verfügbar)
Erstellen Sie `.gitea/workflows/ci.yml`:
```yaml
name: CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node.js
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install dependencies
run: |
cd nodejs_space
npm install
- name: Build
run: |
cd nodejs_space
npm run build
- name: Lint (optional)
run: |
cd nodejs_space
npm run lint
```
### Manuelles Deployment
Nach erfolgreichem Merge in `main`:
```bash
# Auf dem Server
cd /var/www/pointcab_webexport_server
git pull origin main
cd nodejs_space
npm install
npm run build
pm2 restart pointcab-server
```
## 📋 Best Practices Zusammenfassung
1. **Niemals direkt auf `main` pushen**
2. **Immer über Pull Requests arbeiten**
3. **Aussagekräftige Commit-Messages**
4. **Regelmäßig `develop` aktualisieren**
5. **Feature-Branches klein halten**
6. **Branches nach Merge löschen**
7. **Tags für Releases verwenden**
8. **Changelog pflegen**
## 🔗 Nützliche Git-Befehle
```bash
# Status
git status
git log --oneline -10
# Branches
git branch -a
git checkout -b neuer-branch
# Remote
git remote -v
git fetch --all
# Stash (temporär speichern)
git stash
git stash pop
# Rebase (Historie aufräumen)
git rebase -i HEAD~3
# Diff
git diff
git diff develop
```
---
**Weitere Dokumentation:** [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md)