name: Create Release
on:
push:
tags:
- 'v*'
jobs:
create-release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Extract version from tag
id: version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Generate release notes
id: notes
run: |
echo "NOTES<<EOF" >> $GITHUB_OUTPUT
# Extract release notes from CHANGELOG.md for this version
VERSION="${{ steps.version.outputs.VERSION }}"
# Use awk to extract the section for this version
awk -v ver="$VERSION" '
/^## \[/ {
if (found) exit
if ($0 ~ "\\[" ver "\\]") found=1
next
}
found && /^## \[/ { exit }
found { print }
' CHANGELOG.md >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo "## Installation" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo "### Universal Installer (Recommended)" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo "Install Claude Code with Voice Mode configured and ready to run on Linux, macOS, and Windows WSL:" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo '```bash' >> $GITHUB_OUTPUT
echo "curl -O https://getvoicemode.com/install.sh && bash install.sh" >> $GITHUB_OUTPUT
echo '```' >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo "This installer will:" >> $GITHUB_OUTPUT
echo "- Install all system dependencies (Node.js, audio libraries, etc.)" >> $GITHUB_OUTPUT
echo "- Install Claude Code if not already installed" >> $GITHUB_OUTPUT
echo "- Configure Voice Mode as an MCP server" >> $GITHUB_OUTPUT
echo "- Set up your system for voice conversations" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo "### Manual Installation" >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo "#### PyPI" >> $GITHUB_OUTPUT
echo '```bash' >> $GITHUB_OUTPUT
echo "pip install voice-mode==${{ steps.version.outputs.VERSION }}" >> $GITHUB_OUTPUT
echo '```' >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo "#### Claude Code MCP" >> $GITHUB_OUTPUT
echo '```bash' >> $GITHUB_OUTPUT
echo "claude mcp add voice-mode uvx voice-mode" >> $GITHUB_OUTPUT
echo '```' >> $GITHUB_OUTPUT
echo "" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Create GitHub Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ github.ref }}
name: Release v${{ steps.version.outputs.VERSION }}
body: ${{ steps.notes.outputs.NOTES }}
draft: false
prerelease: false