Files
hyprvoice/.github/workflows/release.yml
T
leonardotrapani 30ce13b7c1 move test-models from cli to integration tests
- removes test-models command to reduce binary size
- adds integration_test.go with build tag (go test -tags=integration)
- tests all provider/model combinations with language/keywords variations
- adds testdata/sample.wav for deterministic testing
- updates e2e.yml workflow to use go test instead of cli
- uses go-version-file in all workflows for consistency
2026-02-02 10:44:15 +01:00

103 lines
2.8 KiB
YAML

# .github/workflows/release.yml
name: Release
on:
push:
tags:
- "v*"
permissions:
contents: write
jobs:
ci:
# Run your CI first and fail fast if tests fail
uses: ./.github/workflows/ci.yml
secrets: inherit
build:
name: Build and Release
needs: ci
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version-file: go.mod
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
pkg-config \
libasound2-dev \
libpulse-dev \
libpipewire-0.3-dev \
pipewire-bin \
wl-clipboard \
wtype
- name: Extract version from tag (drop the "v")
id: version
run: echo "VERSION=${GITHUB_REF_NAME#v}" >> "$GITHUB_OUTPUT"
- name: Build binary
env:
CGO_ENABLED: 1
GOOS: linux
GOARCH: amd64
run: |
go mod download
go build -ldflags="-s -w" -o hyprvoice-linux-x86_64 ./cmd/hyprvoice
chmod +x hyprvoice-linux-x86_64
- name: Generate checksums
run: |
sha256sum hyprvoice-linux-x86_64 > hyprvoice-linux-x86_64.sha256
echo "Binary SHA256:"
cat hyprvoice-linux-x86_64.sha256
- name: Create release
uses: softprops/action-gh-release@v1
with:
# Use the exact tag that triggered this run
tag_name: ${{ github.ref_name }} # e.g., v1.2.3
name: Release ${{ steps.version.outputs.VERSION }}
body: |
## Hyprvoice v${{ steps.version.outputs.VERSION }}
### Installation
**From AUR (Recommended):**
```bash
yay -S hyprvoice-bin
hyprvoice configure
systemctl --user enable --now hyprvoice.service
```
**Manual installation:**
```bash
wget https://github.com/leonardotrapani/hyprvoice/releases/download/${{ github.ref_name }}/hyprvoice-linux-x86_64
chmod +x hyprvoice-linux-x86_64
mv hyprvoice-linux-x86_64 ~/.local/bin/hyprvoice
```
### What's Changed
- See commit history for detailed changes
### Requirements
- Wayland desktop environment
- PipeWire audio system
- OpenAI API key for transcription
**Full Changelog**: https://github.com/leonardotrapani/hyprvoice/commits/${{ github.ref_name }}
files: |
./hyprvoice-linux-x86_64
./hyprvoice-linux-x86_64.sha256
token: ${{ secrets.GITHUB_TOKEN }}