Repository navigation
Ci/test install - #2701
Ci/test install#2701djsofianeofficial wants to merge 2 commits into
Conversation
…model smoke (no release) New workflow (dispatch + push on ci/test-install only) that mirrors release.yml's bundle steps (uv/ffmpeg sidecars, same tauri build targets) but unsigned, read-only token, artifacts-only — no tag, no release, no updater manifest, no version stamping. A parallel per-OS job replicates the app's first launch headlessly (uv sync --frozen --no-dev), boots the backend, waits for the required default model download, and runs one real /generate synthesis. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…oken), graceful skip for Intel-mac torch gap Two first-run smoke fixes from run 28576798706: - macOS Apple Silicon: GH runners advertise torch MPS but the virtualized Metal shared pool cannot allocate (256-byte alloc OOMs). Hide MPS via a CI-only sitecustomize on PYTHONPATH so device auto-detect picks CPU. - macOS Intel: uv sync --frozen fails because torch 2.8.0 ships no macOS x86_64 wheels (PyTorch dropped Intel macs after 2.2.x) — a real end-user first launch fails identically. Surface as a loud warning + skip instead of a permanently red leg; product-level dependency gap reported separately. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
Thank you for contributing to VoiceStudio. Before this pull request can merge, everyone who contributed to it must sign the Contributor License Agreement 1.0 once. You keep your copyright; the agreement lets Yupcha Softwares Private Limited, the company that maintains VoiceStudio, ship your work in both the AGPL-3.0 app and commercial builds. Still to sign: @djsofianeofficial, @claude To sign, post this as a new comment on its own line: Commits we cannot link to a GitHub account:
Add that email to your GitHub account (Settings → Emails), or rewrite the commits with an email that is on it ( Comment |
|
[High impact] Adds a new CI workflow that builds and tests the app. Fix the readiness wait before merging so a skipped startup load does not cause a false first-run failure.
|
| while [ $ELAPSED -lt 1800 ]; do | ||
| LAST=$(curl -sf "$BASE/model/status" 2>/dev/null || echo '{}') | ||
| STATUS=$(printf '%s' "$LAST" | python -c "import sys,json; d=json.load(sys.stdin); print(d.get('status','?'))" 2>/dev/null || echo '?') | ||
| DETAIL=$(printf '%s' "$LAST" | python -c "import sys,json; d=json.load(sys.stdin); print(d.get('sub_stage',''), d.get('progress',''), d.get('error',''))" 2>/dev/null || echo '') | ||
| echo " [${ELAPSED}s] model status: $STATUS $DETAIL" | ||
| if [ "$STATUS" = "ready" ]; then READY=1; break; fi |
There was a problem hiding this comment.
Skipped loading makes smoke fail
If the startup Hugging Face probe times out or briefly fails, preload_model() exits without loading anything, so this loop waits 30 minutes and fails before reaching /generate, even if the connection has recovered. /model/status only reports state; polling it cannot restart the skipped load. Trigger loading explicitly before waiting for ready, or let /generate start the load with a cold-start timeout.
Summary
Changes
Type
Testing
Checklist
package.json,pyproject.toml,backend/core/version.py, and lockfilestests/fixtures/omnivoice_data/still loads green on thesmoke-matrixCI job (macOS + Windows + Linux)Release cadence
VoiceStudio ships continuous-to-main — no release candidates, no soak windows.
Every merged PR is immediately part of rolling source (
main) and Docker:latest. Electron artifact rehearsals validate desktop packages without publishing.Version bumps require owner approval; validated releases are tagged from
mainand published explicitly under the release checklist.
Users who want stability install an Electron release or pin Docker
:stable.