This commit is contained in:
commit
41816fbbae
21 files changed
+1003
No files matched your search
@@ -0,0 +1,43 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [main]
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
check:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Skills pruefen
|
||||
run: bash scripts/validate.sh
|
||||
|
||||
- name: README-Tabelle aktuell?
|
||||
run: bash scripts/update-readme.sh --check
|
||||
|
||||
- name: PowerShell-Skripte nur ASCII?
|
||||
run: |
|
||||
if grep -nP '[^\x00-\x7F]' scripts/*.ps1; then
|
||||
echo "::error::.ps1-Dateien duerfen nur ASCII enthalten (Windows PowerShell 5.1)."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
- name: ZIPs bauen
|
||||
run: bash scripts/package.sh
|
||||
|
||||
check-windows:
|
||||
runs-on: windows-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Skills pruefen und verpacken (Windows PowerShell 5.1)
|
||||
shell: powershell
|
||||
run: |
|
||||
.\scripts\validate.ps1
|
||||
if ($LASTEXITCODE -ne 0) { exit 1 }
|
||||
.\scripts\update-readme.ps1 -Check
|
||||
if ($LASTEXITCODE -ne 0) { exit 1 }
|
||||
.\scripts\package.ps1
|
||||
if ($LASTEXITCODE -ne 0) { exit 1 }
|
||||
@@ -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