Skip to content

chore: bump version to v0.12.15 #85

chore: bump version to v0.12.15

chore: bump version to v0.12.15 #85

Workflow file for this run

name: Release
on:
push:
tags:
- "v*.*.*"
permissions:
contents: write
packages: write
jobs:
# Build whisper.cpp for CLI embedding
# Skip for pre-release tags (e.g., v1.0.0-beta)
build-darwin-arm64:
if: ${{ !contains(github.ref_name, '-') }}
runs-on: macos-14
steps:
- uses: actions/checkout@v5
- name: Build whisper.cpp with Metal (static)
run: |
git clone --depth 1 --branch v1.8.2 https://github.com/ggerganov/whisper.cpp
cd whisper.cpp
cmake -B build -DCMAKE_BUILD_TYPE=Release -DWHISPER_METAL=ON -DBUILD_SHARED_LIBS=OFF
cmake --build build --config Release -j$(sysctl -n hw.ncpu)
mkdir -p ../internal/core/ai/transcriber/bin
cp build/bin/whisper-cli ../internal/core/ai/transcriber/bin/whisper-darwin-arm64
- uses: actions/upload-artifact@v4
with:
name: bin-darwin-arm64
path: internal/core/ai/transcriber/bin/
build-windows-amd64:
if: ${{ !contains(github.ref_name, '-') }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Download whisper.cpp (pre-built CUDA)
run: |
mkdir -p internal/core/ai/transcriber/bin
curl -SL https://github.com/ggerganov/whisper.cpp/releases/download/v1.8.2/whisper-cublas-12.4.0-bin-x64.zip -o whisper.zip
unzip whisper.zip
cp Release/whisper-cli.exe internal/core/ai/transcriber/bin/whisper-windows-amd64.exe
- uses: actions/upload-artifact@v4
with:
name: bin-windows-amd64
path: internal/core/ai/transcriber/bin/
build-linux-amd64:
if: ${{ !contains(github.ref_name, '-') }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v5
- name: Install CUDA Toolkit
uses: Jimver/cuda-toolkit@v0.2.30
with:
cuda: "12.6.0"
method: network
sub-packages: '["nvcc", "cudart-dev"]'
non-cuda-sub-packages: '["libcublas-dev"]'
- name: Build whisper.cpp with CUDA (static)
run: |
git clone --depth 1 --branch v1.8.2 https://github.com/ggerganov/whisper.cpp
cd whisper.cpp
cmake -B build -DCMAKE_BUILD_TYPE=Release -DGGML_CUDA=ON -DBUILD_SHARED_LIBS=OFF
cmake --build build --config Release -j$(nproc)
mkdir -p ../internal/core/ai/transcriber/bin
cp build/bin/whisper-cli ../internal/core/ai/transcriber/bin/whisper-linux-amd64
- uses: actions/upload-artifact@v4
with:
name: bin-linux-amd64
path: internal/core/ai/transcriber/bin/
release:
if: always()
needs: [build-darwin-arm64, build-windows-amd64, build-linux-amd64]
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v5
with:
fetch-depth: 0
- name: Download binaries
if: ${{ !contains(github.ref_name, '-') }}
uses: actions/download-artifact@v4
with:
pattern: bin-*
path: internal/core/ai/transcriber/bin/
merge-multiple: true
- name: Set up Go
uses: actions/setup-go@v5
with:
go-version: "1.25.4"
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
- name: Build UI
run: |
cd ui && npm install && npm run build
cd ..
mkdir -p internal/server/dist
rm -rf internal/server/dist/*
cp -r ui/dist/* internal/server/dist/
- name: Run GoReleaser
uses: goreleaser/goreleaser-action@v6
with:
distribution: goreleaser
version: "~> v2"
args: release --clean
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
TAP_GITHUB_TOKEN: ${{ secrets.TAP_GITHUB_TOKEN }}
- name: Extract version
id: version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Prepare latest zips
run: |
mkdir -p latest
cp dist/vget_${{ steps.version.outputs.VERSION }}_darwin_amd64.zip latest/vget-darwin-amd64.zip
cp dist/vget_${{ steps.version.outputs.VERSION }}_darwin_arm64.zip latest/vget-darwin-arm64.zip
cp dist/vget_${{ steps.version.outputs.VERSION }}_linux_amd64.zip latest/vget-linux-amd64.zip
cp dist/vget_${{ steps.version.outputs.VERSION }}_linux_arm64.zip latest/vget-linux-arm64.zip
cp dist/vget_${{ steps.version.outputs.VERSION }}_windows_amd64.zip latest/vget-windows-amd64.zip
- name: Upload latest zips
uses: softprops/action-gh-release@v2
with:
files: |
latest/vget-darwin-amd64.zip
latest/vget-darwin-arm64.zip
latest/vget-linux-amd64.zip
latest/vget-linux-arm64.zip
latest/vget-windows-amd64.zip
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
docker-amd64:
if: ${{ !contains(github.ref_name, '-') }}
runs-on: ubuntu-latest
outputs:
digest: ${{ steps.build.outputs.digest }}
steps:
- name: Free disk space
run: |
sudo rm -rf /usr/share/dotnet /usr/local/lib/android /opt/ghc /opt/hostedtoolcache/CodeQL
sudo docker image prune --all --force
- name: Checkout
uses: actions/checkout@v5
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push by digest
id: build
uses: docker/build-push-action@v6
with:
context: .
file: ./docker/vget/Dockerfile
platforms: linux/amd64
outputs: type=image,name=ghcr.io/${{ github.repository }},push-by-digest=true,name-canonical=true,push=true
docker-arm64:
if: ${{ !contains(github.ref_name, '-') }}
runs-on: ubuntu-24.04-arm
outputs:
digest: ${{ steps.build.outputs.digest }}
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Build and push by digest
id: build
uses: docker/build-push-action@v6
with:
context: .
file: ./docker/vget/Dockerfile.arm64
platforms: linux/arm64
outputs: type=image,name=ghcr.io/${{ github.repository }},push-by-digest=true,name-canonical=true,push=true
docker-manifest:
if: ${{ !contains(github.ref_name, '-') }}
runs-on: ubuntu-latest
needs: [docker-amd64, docker-arm64]
steps:
- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.repository_owner }}
password: ${{ secrets.GITHUB_TOKEN }}
- name: Extract metadata
id: meta
uses: docker/metadata-action@v5
with:
images: ghcr.io/${{ github.repository }}
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=raw,value=latest
- name: Create and push manifest
run: |
for tag in $(echo "${{ steps.meta.outputs.tags }}" | tr ',' '\n'); do
docker buildx imagetools create -t "$tag" \
"ghcr.io/${{ github.repository }}@${{ needs.docker-amd64.outputs.digest }}" \
"ghcr.io/${{ github.repository }}@${{ needs.docker-arm64.outputs.digest }}"
done