Files
hapi/.github/workflows/release.yml
T
weishu d11bfbef86 chore: prepare release 0.1.0 with native binary support
- Update CLI version to 0.1.0
- Change bin script extension from .js to .cjs for ES module compatibility
- Add release-it as dev dependency for version management
- Update all platform-specific binary package versions to 0.1.0
- Enhance release workflow to support custom RELEASE_NOTES.md
2025-12-25 11:31:03 +08:00

62 lines
2.2 KiB
YAML

name: Release
on:
push:
tags:
- 'v*'
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: oven-sh/setup-bun@v2
- run: bun install
- run: bun run build:single-exe:all
- name: Package release artifacts
run: |
cd cli/dist-exe
mkdir -p ../release-artifacts
for dir in bun-*/; do
target="${dir%/}"
# bun-darwin-arm64 -> hapi-darwin-arm64
name="hapi-${target#bun-}"
name="${name/windows/win32}"
if [[ "$target" == *"windows"* ]]; then
zip -j "../release-artifacts/${name}.zip" "$target"/hapi.exe
else
tar -czvf "../release-artifacts/${name}.tar.gz" -C "$target" hapi
fi
done
cd ../release-artifacts
sha256sum * > checksums.txt
- name: Create Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
NOTES_FILE="RELEASE_NOTES.md"
if [ -f "$NOTES_FILE" ]; then
gh release create "${GITHUB_REF#refs/tags/}" \
--title "Release ${GITHUB_REF#refs/tags/}" \
--notes-file "$NOTES_FILE" \
cli/release-artifacts/*
else
gh release create "${GITHUB_REF#refs/tags/}" \
--title "Release ${GITHUB_REF#refs/tags/}" \
--generate-notes \
cli/release-artifacts/*
fi
- name: Update Homebrew formula
continue-on-error: true
env:
GITHUB_TOKEN: ${{ secrets.HOMEBREW_TAP_TOKEN }}
run: |
VERSION="${GITHUB_REF#refs/tags/v}"
cd cli && bun run update-homebrew-formula --version "$VERSION" --push