name: Test Release on: workflow_dispatch: inputs: tag: description: "Release tag to test (leave empty for latest)" required: false type: string jobs: test: timeout-minutes: 10 strategy: fail-fast: false matrix: include: - runner: macos-14 pattern: vibe_aarch64.app.tar.gz - runner: macos-15-intel pattern: vibe_x64.app.tar.gz - runner: ubuntu-24.04 pattern: "vibe_*_amd64.deb" - runner: ubuntu-24.04-arm pattern: "vibe_*_arm64.deb" - runner: windows-latest pattern: "vibe_*_x64-setup.exe" runs-on: ${{ matrix.runner }} steps: - uses: actions/checkout@v4 with: sparse-checkout: samples - name: Setup MSYS2 wget (Windows) if: runner.os == 'Windows' uses: msys2/setup-msys2@v2 with: msystem: MINGW64 install: wget - name: Download latest release artifact (including pre-releases) shell: bash env: GH_TOKEN: ${{ github.token }} run: | tag="${{ inputs.tag }}" if [ -z "$tag" ]; then tag=$(gh release list --repo ${{ github.repository }} --limit 1 --json tagName --jq '.[0].tagName') fi echo "Downloading from release: $tag" gh release download "$tag" --repo ${{ github.repository }} --pattern "${{ matrix.pattern }}" - name: Download tiny whisper model if: runner.os != 'Windows' shell: bash run: wget -q https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-tiny.bin - name: Download tiny whisper model (Windows) if: runner.os == 'Windows' shell: pwsh run: C:\msys64\usr\bin\wget.exe --progress=bar:force:noscroll https://huggingface.co/ggerganov/whisper.cpp/resolve/main/ggml-tiny.bin -O ggml-tiny.bin - name: Extract and test (macOS) if: runner.os == 'macOS' run: | tar xzf ${{ matrix.pattern }} ./vibe.app/Contents/MacOS/vibe transcribe ggml-tiny.bin samples/short.mp4 - name: Install and test (Linux) if: runner.os == 'Linux' run: | sudo apt-get update sudo apt-get install -y xvfb ./${{ matrix.pattern }} xvfb-run -a vibe transcribe ggml-tiny.bin samples/short.mp4 - name: Install and test (Windows) if: runner.os == 'Windows' shell: pwsh run: | $installer = (Get-Item vibe_*_x64-setup.exe).FullName Start-Process -FilePath $installer -ArgumentList "/S" -Wait & "$env:LOCALAPPDATA\vibe\vibe.exe" transcribe ggml-tiny.bin samples\short.mp4