Repository navigation
Merge pull request #15 from dotdevdotdev/fix-samplerate #6
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: Smoke test | |
| on: | |
| push: | |
| branches: [master] | |
| pull_request: | |
| branches: [master] | |
| workflow_dispatch: {} | |
| jobs: | |
| smoke: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, windows-latest, macos-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install system dependencies (Linux) | |
| if: runner.os == 'Linux' | |
| run: sudo apt-get update && sudo apt-get install -y ffmpeg python3-tk rubberband-cli | |
| - name: Install system dependencies (macOS) | |
| if: runner.os == 'macOS' | |
| run: brew install ffmpeg rubberband | |
| - name: Install system dependencies (Windows) | |
| if: runner.os == 'Windows' | |
| run: choco install ffmpeg -y | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v3 | |
| - name: Create venv | |
| run: uv venv .venv | |
| - name: Set VENV_PY (Unix) | |
| if: runner.os != 'Windows' | |
| run: echo "VENV_PY=.venv/bin/python" >> "$GITHUB_ENV" | |
| - name: Set VENV_PY (Windows) | |
| if: runner.os == 'Windows' | |
| shell: bash | |
| run: echo "VENV_PY=.venv/Scripts/python.exe" >> "$GITHUB_ENV" | |
| - name: Install torch (CPU -- no GPU runners on hosted CI) | |
| shell: bash | |
| run: uv pip install --python "$VENV_PY" torch torchvision | |
| - name: Install requirements | |
| shell: bash | |
| run: uv pip install --python "$VENV_PY" -r requirements.txt | |
| - name: Doctor (environment check) | |
| shell: bash | |
| run: '"$VENV_PY" tools/smoke_inference.py doctor' | |
| - name: Prepare (generate test audio + download model assets) | |
| shell: bash | |
| timeout-minutes: 10 | |
| run: '"$VENV_PY" tools/smoke_inference.py prepare' | |
| - name: Run blocking smoke cases (real inference, CPU-only) | |
| shell: bash | |
| timeout-minutes: 25 | |
| run: '"$VENV_PY" tools/smoke_inference.py run --phase blocking --continue-on-error' | |
| - name: Upload results | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: smoke-results-${{ matrix.os }} | |
| path: .research-artifacts/smoke/smoke_results.jsonl |