This commit is contained in:
commit
41816fbbae
21 files changed
+1003
No files matched your search
@@ -0,0 +1,64 @@
|
||||
name: Release
|
||||
|
||||
# Ausloeser: Tag im Format <skill-name>/v<x.y.z>, z. B. wordcraft-mcp/v0.1.0
|
||||
on:
|
||||
push:
|
||||
tags: ['*/v*']
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
|
||||
jobs:
|
||||
release:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Tag zerlegen
|
||||
id: tag
|
||||
run: |
|
||||
TAG="$GITHUB_REF_NAME"
|
||||
SKILL="${TAG%%/v*}"
|
||||
VERSION="${TAG#*/v}"
|
||||
if [ ! -d "skills/$SKILL" ]; then
|
||||
echo "::error::Skill '$SKILL' aus Tag '$TAG' existiert nicht unter skills/."
|
||||
exit 1
|
||||
fi
|
||||
echo "skill=$SKILL" >> "$GITHUB_OUTPUT"
|
||||
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Version gegen CHANGELOG pruefen
|
||||
env:
|
||||
SKILL: ${{ steps.tag.outputs.skill }}
|
||||
VERSION: ${{ steps.tag.outputs.version }}
|
||||
run: |
|
||||
source scripts/lib.sh
|
||||
CL="$(skill_version "skills/$SKILL")"
|
||||
if [ "$CL" != "$VERSION" ]; then
|
||||
echo "::error::Tag-Version $VERSION passt nicht zur CHANGELOG-Version '$CL' von $SKILL."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: Verpacken
|
||||
run: bash scripts/package.sh "${{ steps.tag.outputs.skill }}"
|
||||
|
||||
- name: Release-Text aus CHANGELOG
|
||||
env:
|
||||
SKILL: ${{ steps.tag.outputs.skill }}
|
||||
VERSION: ${{ steps.tag.outputs.version }}
|
||||
run: |
|
||||
awk -v v="$VERSION" '
|
||||
index($0, "## " v " ") == 1 { on = 1; next }
|
||||
/^## / && on { exit }
|
||||
on { print }' "skills/$SKILL/CHANGELOG.md" > notes.md
|
||||
cat notes.md
|
||||
|
||||
- name: Release anlegen
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
SKILL: ${{ steps.tag.outputs.skill }}
|
||||
VERSION: ${{ steps.tag.outputs.version }}
|
||||
run: |
|
||||
gh release create "$GITHUB_REF_NAME" "dist/$SKILL-$VERSION.zip" \
|
||||
--title "$SKILL $VERSION" \
|
||||
--notes-file notes.md
|
||||
Reference in new issue
Block a user