feat(voice): expose reusable voice runtime #891
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ci-${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| CI: "true" | |
| FORCE_COLOR: "1" | |
| jobs: | |
| frontend: | |
| name: Frontend checks and unit tests | |
| runs-on: macos-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 | |
| with: | |
| persist-credentials: false | |
| - name: Activate Hermit | |
| uses: cashapp/activate-hermit@cea9af7913204a965fd488637a8d1811bba2e616 # v1 | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Build vendored SDK | |
| run: pnpm --filter @aaif/goose-sdk build | |
| - name: Run frontend checks | |
| run: just check | |
| - name: Run unit tests | |
| run: just test | |
| - name: Run release script tests | |
| run: just release-scripts-test | |
| - name: Upload test results | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: frontend-test-results | |
| path: | | |
| coverage/ | |
| test-results/ | |
| if-no-files-found: ignore | |
| retention-days: 7 | |
| rust: | |
| name: Tauri Rust checks (${{ matrix.platform }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - runner: macos-latest | |
| platform: macOS | |
| - runner: ubuntu-latest | |
| platform: Linux | |
| runs-on: ${{ matrix.runner }} | |
| timeout-minutes: 45 | |
| env: | |
| BERD_TAURI_CARGO_TARGET_DIR: ${{ github.workspace }}/src-tauri/target | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 | |
| with: | |
| persist-credentials: false | |
| - name: Activate Hermit | |
| uses: cashapp/activate-hermit@cea9af7913204a965fd488637a8d1811bba2e616 # v1 | |
| - name: Restore Rust cache | |
| uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 | |
| with: | |
| workspaces: src-tauri -> target | |
| - name: Install Linux Tauri dependencies | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y --no-install-recommends \ | |
| pkg-config \ | |
| libwebkit2gtk-4.1-dev \ | |
| libgtk-3-dev \ | |
| libayatana-appindicator3-dev \ | |
| librsvg2-dev | |
| - name: Check Rust formatting | |
| run: just tauri-fmt-check | |
| - name: Check Tauri and Rust crates | |
| run: just tauri-check | |
| - name: Run Rust tests | |
| run: just tauri-test | |
| - name: Run clippy | |
| run: just clippy | |
| rust-windows: | |
| name: Tauri Rust checks (Windows) | |
| runs-on: windows-latest | |
| timeout-minutes: 60 | |
| env: | |
| BERD_TAURI_CARGO_TARGET_DIR: ${{ github.workspace }}/src-tauri/target | |
| CARGO_PROFILE_DEV_DEBUG: "0" | |
| CARGO_PROFILE_TEST_DEBUG: "0" | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 | |
| with: | |
| persist-credentials: false | |
| - name: Install just | |
| uses: taiki-e/install-action@7f4eb899022d8fe70b20c4f3de697aa85c309026 # v2.85.11 | |
| with: | |
| tool: just@1.48.0 | |
| - name: Restore Rust cache | |
| uses: Swatinem/rust-cache@6323deb102c322ba6fcbdcafc7e3dddab59af2b6 # v2.9.2 | |
| with: | |
| workspaces: src-tauri -> target | |
| - name: Run Windows-native Rust tests | |
| shell: powershell | |
| run: just ci-windows | |
| transcript-virtualization: | |
| name: Transcript virtualization | |
| needs: frontend | |
| runs-on: macos-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 | |
| with: | |
| persist-credentials: false | |
| - name: Activate Hermit | |
| uses: cashapp/activate-hermit@cea9af7913204a965fd488637a8d1811bba2e616 # v1 | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Build vendored SDK | |
| run: pnpm --filter @aaif/goose-sdk build | |
| - name: Install Playwright browser | |
| run: pnpm exec playwright install chromium | |
| - name: Run transcript virtualization tests | |
| run: pnpm test:transcript-virtualization:ci | |
| - name: Upload Playwright results | |
| if: always() | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: transcript-virtualization-results | |
| path: | | |
| tests/transcript-virtualization/transcript-playwright-report/ | |
| test-results/ | |
| if-no-files-found: ignore | |
| retention-days: 7 | |
| build: | |
| name: Frontend build smoke | |
| needs: frontend | |
| runs-on: macos-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Check out repository | |
| uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6 | |
| with: | |
| persist-credentials: false | |
| - name: Activate Hermit | |
| uses: cashapp/activate-hermit@cea9af7913204a965fd488637a8d1811bba2e616 # v1 | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Build vendored SDK | |
| run: pnpm --filter @aaif/goose-sdk build | |
| - name: Build frontend | |
| run: just build | |
| - name: Upload frontend build | |
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | |
| with: | |
| name: frontend-build | |
| path: dist/ | |
| if-no-files-found: error | |
| retention-days: 7 |