create release command

This commit is contained in:
2026-08-11 14:04:59 +02:00
parent 28eeeda58e
commit 50ad7d7335
2 changed files with 50 additions and 1 deletions
+15 -1
View File
@@ -75,6 +75,20 @@ jobs:
needs: build needs: build
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- name: Extract release notes from commit message
id: release
run: |
MSG=$(git log -1 --pretty=format:"%B" "${{ github.sha }}")
{
echo 'body<<EOF'
echo "$MSG"
echo 'EOF'
} >> "$GITHUB_OUTPUT"
- uses: actions/download-artifact@v8 - uses: actions/download-artifact@v8
with: with:
path: dist path: dist
@@ -83,5 +97,5 @@ jobs:
- name: Create release and upload binaries - name: Create release and upload binaries
uses: softprops/action-gh-release@v3 uses: softprops/action-gh-release@v3
with: with:
body: ${{ steps.release.outputs.body }}
files: dist/* files: dist/*
generate_release_notes: true
+35
View File
@@ -0,0 +1,35 @@
---
description: Create and push a release tag (e.g. /create-release 1.0.0)
---
Create a release tag and push it to origin. The GitHub Action will automatically build for all platforms and create the GitHub Release.
## Steps
1. Validate the version argument ($ARGUMENTS):
- Must be provided, otherwise show error and stop
- Must match semver format (e.g. 1.0.0, 0.9.1, 2.0.0-beta.1)
2. Check for uncommitted changes:
- Run `git status --porcelain`
- If any output, warn the user and stop (commit first)
3. Analyze changes since last release:
- Run `git log --oneline $(git describe --tags --abbrev=0 HEAD)..HEAD` to list all commits
- Read the changed files to understand context
- Write a concise, well-structured release summary in English with:
- A one-line overview
- Bullet points for each notable change (features, fixes, breaking changes)
- Keep it developer-friendly, no fluff
4. Create release commit with the summary as message:
- Run `git commit --allow-empty -m "release v$ARGUMENTS\n\n<summary>"`
- The commit message IS the release notes — the GitHub Action picks it up automatically
5. Create annotated tag on that commit:
- Run `git tag -a v$ARGUMENTS -m "Release v$ARGUMENTS"`
6. Push commit and tag:
- Run `git push origin main --tags` (or current branch)
7. Confirm success with the version number