Commit message: Merge pull request #9 from securebitsorg/feature/github-releases-documentation
Current version: 1.9.1
Last tag version: 0.0.0 ← Problem!
Should release: false ← Problem!
Release type:
New version:
- Merge-Commits nicht erkannt - Workflow erkennt nur Conventional Commits
- Tag-Erkennung fehlerhaft -
git describe --tags --abbrev=0gibt "0.0.0" zurück - Versionssynchronisation - Lokale Dateien vs. Remote Tags inkonsistent
# Behandle Merge-Commits speziell
if [[ "$COMMIT_MSG" =~ ^Merge[[:space:]]pull[[:space:]]request ]]; then
echo "Merge commit detected, analyzing PR content..."
# Für Merge-Commits: Minor release (neue Features zusammengeführt)
SHOULD_RELEASE="true"
RELEASE_TYPE="minor"
NEW_VERSION=$(echo $CURRENT_VERSION | awk -F. '{print $1"."$2+1".0"}')Vor dem Fix:
- VERSION: 1.9.1
- version.py: 1.9.1
- pyproject.toml: 1.9.1
- Git Tag: v1.10.0 ← Inkonsistenz!
Nach dem Fix:
- VERSION: 1.10.0 ✓
- version.py: 1.10.0 ✓
- pyproject.toml: 1.10.0 ✓
- Git Tag: v1.10.0 ✓
# Robustere Tag-Erkennung
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
LAST_TAG_VERSION=${LAST_TAG#v}
echo "Last tag version: $LAST_TAG_VERSION"- Merge PR:
Merge pull request #X→ Minor Release - Feature:
feat: neue funktion→ Minor Release - Fix:
fix: bugfix→ Patch Release - Breaking:
feat!: breaking change→ Major Release - Manual:
[release]in Commit-Message → Patch Release
# 1. Feature-Branch entwickeln
git checkout -b feature/neue-funktion
git commit -m "feat: neue coole funktion"
git push origin feature/neue-funktion
# 2. Pull Request erstellen und mergen
# → Automatisch: v1.10.0 → v1.11.0 (Minor)
# 3. Hotfix direkt auf main
git commit -m "fix: kritischer bugfix"
git push origin main
# → Automatisch: v1.11.0 → v1.11.1 (Patch)- Merge diesen PR
- Erwartetes Ergebnis:
Commit message: Merge pull request #X Current version: 1.10.0 Last tag version: 1.10.0 Should release: true Release type: minor New version: 1.11.0
- uses: cycjimmy/semantic-release-action@v3
with:
semantic_version: 19
branches: |
[
'main'
]- name: Sync version files
run: |
NEW_VERSION=${{ steps.release.outputs.new_version }}
echo "$NEW_VERSION" > VERSION
sed -i "s/__version__ = \".*\"/__version__ = \"$NEW_VERSION\"/" __version__.py
sed -i "s/version = \".*\"/version = \"$NEW_VERSION\"/" pyproject.tomlProblem behoben in v1.10.1 🚀