Dieses Dokument beschreibt den automatisierten Release-Prozess für Bash-Script-Maker.
Der Release-Prozess wird durch GitHub Actions automatisiert und wird ausgelöst, wenn ein neuer Git-Tag erstellt wird.
- Tag erstellen → Automatischer Release wird gestartet
- GitHub Release → Release-Seite wird erstellt
- Build-Artefakte → Python-Pakete werden gebaut
- Upload → Alle Dateien werden zum Release hinzugefügt
- PyPI → Automatische Veröffentlichung auf PyPI (optional)
- CHANGELOG → Automatische Aktualisierung
Einfach committen und pushen - Release passiert automatisch:
# Bug-Fix → Patch Release (1.2.3 → 1.2.4)
git commit -m "fix: behebe kritischen Fehler"
git push origin main
# Feature → Minor Release (1.2.3 → 1.3.0)
git commit -m "feat: füge neue Export-Funktion hinzu"
git push origin main
# Breaking Change → Major Release (1.2.3 → 2.0.0)
git commit -m "feat!: neue API-Struktur"
git push origin mainVerfügbare Workflows:
- Semantic Release: Basiert auf Conventional Commits
- Simple Auto Release: Reagiert auf
[release],[minor],[major]Tags
Siehe: AUTO_RELEASE_GUIDE.md
# Interaktiv - wählen Sie die Art des Releases
./create_release.sh
# Oder direkt mit Version
./create_release.sh 1.2.3Das Script:
- Aktualisiert alle Versionsdateien
- Erstellt einen Commit
- Erstellt und pusht den Tag
- Startet automatisch den Release-Prozess
# 1. Version in allen Dateien aktualisieren
echo "1.2.3" > VERSION
# Aktualisiere auch __version__.py und pyproject.toml
# 2. Änderungen committen
git add .
git commit -m "chore: bump version to 1.2.3"
# 3. Tag erstellen und pushen
git tag -a v1.2.3 -m "Release version 1.2.3"
git push origin main
git push origin v1.2.3Jeder Release enthält automatisch:
bash-script-maker-X.Y.Z-py3-none-any.whl(Wheel)bash-script-maker-X.Y.Z.tar.gz(Source Distribution)
bash-script-maker-X.Y.Z-source.tar.gz(Vollständiger Quellcode)
Release-Notes werden automatisch aus dem CHANGELOG.md extrahiert:
## [Unreleased]
### Added
- Neue Features
### Changed
- Änderungen
### Fixed
- Bug-Fixes
## [1.2.3] - 2024-01-01
### Added
- Feature A
- Feature B
### Fixed
- Bug XDer Workflow extrahiert automatisch die Inhalte zwischen ## [X.Y.Z] und dem nächsten ## [ für die Release-Notes.
-
PyPI API Token erstellen:
- Gehen Sie zu https://pypi.org/manage/account/token/
- Erstellen Sie einen Token für das Projekt
-
GitHub Secret hinzufügen:
- Repository Settings → Secrets and variables → Actions
- Neues Secret:
PYPI_API_TOKENmit dem Token-Wert
- Erfolgt automatisch bei stabilen Releases (ohne
-im Tag) - Pre-Releases (z.B.
v1.2.3-beta) werden nicht auf PyPI veröffentlicht
- MAJOR (1.0.0): Breaking Changes
- MINOR (1.1.0): Neue Features (rückwärtskompatibel)
- PATCH (1.1.1): Bug-Fixes
- Alpha:
v1.2.3-alpha.1 - Beta:
v1.2.3-beta.1 - Release Candidate:
v1.2.3-rc.1
-
Überprüfen Sie die GitHub Actions:
https://github.com/securebitsorg/bash-script-maker/actions -
Häufige Probleme:
- PyPI-Token fehlt oder ungültig
- Versionsnummer bereits auf PyPI vorhanden
- Build-Fehler in der Anwendung
# Lokalen Tag löschen
git tag -d v1.2.3
# Remote Tag löschen
git push --delete origin v1.2.3
# Neuen Tag erstellen
git tag -a v1.2.3 -m "Release version 1.2.3"
git push origin v1.2.3.github/workflows/auto-release.yml- Hauptworkflowcreate_release.sh- Helper-Script für Releases
Überwachen Sie den Release-Fortschritt:
Alle Releases finden Sie hier:
Überprüfen Sie die PyPI-Veröffentlichung: