GITEA_WORKFLOW.md gelöscht
This commit is contained in:
parent
013eb78a7c
commit
3cd066ffe3
|
|
@ -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)
|
||||
Loading…
Reference in New Issue