Skip to content

hero: tagline -> a Claude Code plugin to give Claude wings #1

hero: tagline -> a Claude Code plugin to give Claude wings

hero: tagline -> a Claude Code plugin to give Claude wings #1

Workflow file for this run

name: release
on:
push:
tags:
- "v*.*.*"
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
with:
fetch-depth: 0
- uses: actions/setup-node@v5
with:
node-version: 20
cache: npm
registry-url: "https://registry.npmjs.org"
- run: npm ci
- name: verify tag matches package.json version
run: |
tag="${GITHUB_REF#refs/tags/v}"
pkg=$(node -p "require('./package.json').version")
if [ "$tag" != "$pkg" ]; then
echo "tag v$tag does not match package.json v$pkg"
exit 1
fi
- run: node scripts/run-tests.mjs
- name: extract changelog section
id: changelog
run: |
version="${GITHUB_REF#refs/tags/v}"
awk -v v="$version" '
$0 ~ "^## \\["v"\\]" {flag=1; next}
flag && /^## \[/ {exit}
flag {print}
' CHANGELOG.md > RELEASE_NOTES.md
if [ ! -s RELEASE_NOTES.md ]; then
echo "no changelog section for v$version — aborting"
exit 1
fi
- uses: softprops/action-gh-release@v2
with:
body_path: RELEASE_NOTES.md
draft: false
prerelease: ${{ contains(github.ref, '-rc') || contains(github.ref, '-beta') || contains(github.ref, '-alpha') }}
- name: publish to npm
if: ${{ !contains(github.ref, '-rc') && !contains(github.ref, '-beta') && !contains(github.ref, '-alpha') }}
run: npm publish --access public
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
continue-on-error: true