Skip to content

Commit f61a7a6

Browse files
Merge pull request #12 from securebitsorg/feature/github-releases-documentation
Feature/GitHub releases documentation
2 parents 0824471 + ad3ccdc commit f61a7a6

7 files changed

Lines changed: 550 additions & 430 deletions

.github/workflows/auto-release-on-push.yml

Lines changed: 57 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -146,12 +146,13 @@ jobs:
146146
# pyproject.toml aktualisieren
147147
sed -i "s/^version = .*/version = \"$NEW_VERSION\"/" pyproject.toml
148148
149-
- name: Generate release notes
149+
- name: Generate release notes and update CHANGELOG
150150
id: release_notes
151151
run: |
152152
NEW_VERSION="${{ needs.check-for-release.outputs.version }}"
153153
RELEASE_TYPE="${{ needs.check-for-release.outputs.release_type }}"
154154
COMMIT_MSG="${{ github.event.head_commit.message }}"
155+
CURRENT_DATE=$(date '+%Y-%m-%d')
155156
156157
# Basis Release-Notes erstellen
157158
cat > release_notes.txt << EOF
@@ -180,17 +181,69 @@ jobs:
180181
181182
- Python Wheel (.whl)
182183
- Source Distribution (.tar.gz)
183-
- Flatpak Bundle (.flatpak)
184+
- Docker Image (ghcr.io)
184185
- Vollständiger Quellcode
185186
EOF
186187
188+
# CHANGELOG.md automatisch aktualisieren
189+
echo "📝 Aktualisiere CHANGELOG.md..."
190+
191+
# Backup der aktuellen CHANGELOG erstellen
192+
cp CHANGELOG.md CHANGELOG.md.bak
193+
194+
# Neue CHANGELOG-Einträge basierend auf Commit-Message generieren
195+
NEW_CHANGELOG_ENTRY=""
196+
197+
# Änderungen aus Commit-Message extrahieren und kategorisieren
198+
if [[ "$COMMIT_MSG" =~ ^(feat|feature)(\(.+\))?: ]]; then
199+
NEW_CHANGELOG_ENTRY="### Added
200+
- $(echo "$COMMIT_MSG" | sed 's/^[^:]*: //')"
201+
elif [[ "$COMMIT_MSG" =~ ^(fix|bugfix)(\(.+\))?: ]]; then
202+
NEW_CHANGELOG_ENTRY="### Fixed
203+
- $(echo "$COMMIT_MSG" | sed 's/^[^:]*: //')"
204+
elif [[ "$COMMIT_MSG" =~ ^(docs|doc)(\(.+\))?: ]]; then
205+
NEW_CHANGELOG_ENTRY="### Documentation
206+
- $(echo "$COMMIT_MSG" | sed 's/^[^:]*: //')"
207+
elif [[ "$COMMIT_MSG" =~ ^(style|refactor)(\(.+\))?: ]]; then
208+
NEW_CHANGELOG_ENTRY="### Changed
209+
- $(echo "$COMMIT_MSG" | sed 's/^[^:]*: //')"
210+
elif [[ "$COMMIT_MSG" =~ ^(test|tests)(\(.+\))?: ]]; then
211+
NEW_CHANGELOG_ENTRY="### Testing
212+
- $(echo "$COMMIT_MSG" | sed 's/^[^:]*: //')"
213+
elif [[ "$COMMIT_MSG" =~ ^Merge[[:space:]]pull[[:space:]]request ]]; then
214+
# Für Merge-Commits: PR-Titel extrahieren
215+
PR_TITLE=$(echo "$COMMIT_MSG" | grep -o 'Merge pull request #[0-9]* from .*/.*' | sed 's/.*\///')
216+
NEW_CHANGELOG_ENTRY="### Added
217+
- $PR_TITLE (Pull Request merged)"
218+
else
219+
NEW_CHANGELOG_ENTRY="### Changed
220+
- $COMMIT_MSG"
221+
fi
222+
223+
# Neue CHANGELOG mit Version am Anfang erstellen
224+
cat > CHANGELOG.md << EOF
225+
## [$NEW_VERSION] - $CURRENT_DATE
226+
227+
$NEW_CHANGELOG_ENTRY
228+
229+
EOF
230+
231+
# Rest der CHANGELOG (ab Zeile 8) anhängen, aber erste automatische Einträge überspringen
232+
sed -n '8,$p' CHANGELOG.md.bak >> CHANGELOG.md
233+
234+
echo "✅ CHANGELOG.md erfolgreich aktualisiert mit Version $NEW_VERSION"
235+
236+
# Überprüfung der CHANGELOG-Struktur
237+
echo "📋 Neue CHANGELOG-Struktur:"
238+
head -15 CHANGELOG.md
239+
187240
echo "Release-Notes erstellt für Version $NEW_VERSION"
188241
189242
- name: Commit version changes
190243
run: |
191244
NEW_VERSION="${{ needs.check-for-release.outputs.version }}"
192-
git add VERSION __version__.py pyproject.toml
193-
git commit -m "chore: bump version to $NEW_VERSION [skip ci]"
245+
git add VERSION __version__.py pyproject.toml CHANGELOG.md
246+
git commit -m "chore: bump version to $NEW_VERSION and update CHANGELOG [skip ci]"
194247
195248
- name: Create and push tag
196249
run: |

.github/workflows/semantic-release.yml

Lines changed: 0 additions & 252 deletions
This file was deleted.

0 commit comments

Comments
 (0)