Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 8 additions & 6 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -135,15 +135,11 @@ jobs:
- name: Run tests
run: uv run --frozen --python ${{ matrix.python-version }} --extra dev pytest -q

- name: Enforce Python 3.13 medium contract checks
- name: Enforce Python 3.13 organized workflow suites
if: matrix.python-version == '3.13'
run: >
uv run --frozen --python ${{ matrix.python-version }} --extra dev --extra medium pytest -q
tests/test_medium_inference.py
tests/test_medium_timeout_and_fallback.py
tests/test_backend_hooks.py
tests/test_runtime_registry.py
tests/test_runtime_pipeline.py
tests/suites

contract-gates:
runs-on: ubuntu-latest
Expand Down Expand Up @@ -173,6 +169,12 @@ jobs:
- name: Enforce API import boundary lint gate
run: make import-lint

- name: Enforce organized smoke and process-isolation suites
run: >
uv run --frozen --python 3.12 --extra dev pytest -q
tests/suites
-m "smoke or process_isolation"

- name: Enforce transcription benchmark contract gate
run: >
uv run --frozen --python 3.12 --extra dev pytest -q
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/darwin-x86_64-validation.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
name: Darwin x86_64 Validation

on:
workflow_call:
workflow_dispatch:

permissions:
Expand Down
18 changes: 18 additions & 0 deletions .github/workflows/full-dataset-quality-gate-regression.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,24 @@
name: Full-Dataset Quality Gate Regression

on:
workflow_call:
inputs:
run_training:
required: false
default: true
type: boolean
dataset_glob:
required: false
default: "ser/dataset/ravdess/Actor_*/*.wav"
type: string
out_file:
required: false
default: "profile_quality_gate_report_full.json"
type: string
progress_every:
required: false
default: "120"
type: string
workflow_dispatch:
inputs:
run_training:
Expand Down
14 changes: 14 additions & 0 deletions .github/workflows/linux-python-3_13-cli-validation.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,20 @@
name: Linux Python 3.13 CLI Validation

on:
workflow_call:
inputs:
run_accurate_research:
required: false
default: false
type: boolean
accurate_model_id:
required: false
default: "openai/whisper-tiny"
type: string
accurate_research_model_id:
required: false
default: "iic/emotion2vec_plus_large"
type: string
workflow_dispatch:
inputs:
run_accurate_research:
Expand Down
36 changes: 35 additions & 1 deletion .github/workflows/linux-selfhosted-gpu-validation.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,40 @@
name: Linux Self-Hosted GPU Validation

on:
workflow_call:
inputs:
python_version:
required: false
default: "3.12"
type: string
run_cuda:
required: false
default: true
type: boolean
run_xpu:
required: false
default: false
type: boolean
cuda_runner_labels_json:
required: false
default: '["self-hosted","linux","x64","cuda"]'
type: string
xpu_runner_labels_json:
required: false
default: '["self-hosted","linux","x64","xpu"]'
type: string
accurate_model_id:
required: false
default: "openai/whisper-tiny"
type: string
run_accurate_research:
required: false
default: false
type: boolean
accurate_research_model_id:
required: false
default: "iic/emotion2vec_plus_large"
type: string
workflow_dispatch:
inputs:
python_version:
Expand Down Expand Up @@ -139,7 +173,7 @@ jobs:
tests/test_torch_inference.py
tests/test_feature_runtime_policy.py
tests/test_transcription_runtime_policy.py
tests/test_transcript_extractor.py
tests/suites/integration/test_transcript_extractor.py

- name: Medium profile train and predict (CUDA lane)
run: |
Expand Down
18 changes: 18 additions & 0 deletions .github/workflows/macos15-mps-validation.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,24 @@
name: macOS 15 MPS Validation

on:
workflow_call:
inputs:
python_version:
required: false
default: "3.12"
type: string
accurate_model_id:
required: false
default: "openai/whisper-tiny"
type: string
run_accurate_research:
required: false
default: false
type: boolean
accurate_research_model_id:
required: false
default: "iic/emotion2vec_plus_large"
type: string
workflow_dispatch:
inputs:
python_version:
Expand Down
14 changes: 12 additions & 2 deletions .github/workflows/python-publish-testpypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,18 @@ jobs:
`CI verified for commit ${sha} via run #${ok.run_number}.`
);

build-distributions:
linux-cli-validation:
needs: verify-ci
uses: ./.github/workflows/linux-python-3_13-cli-validation.yml
with:
run_accurate_research: false

darwin-validation:
needs: verify-ci
uses: ./.github/workflows/darwin-x86_64-validation.yml

build-distributions:
needs: [verify-ci, linux-cli-validation, darwin-validation]
runs-on: ubuntu-latest

steps:
Expand All @@ -84,7 +94,7 @@ jobs:
path: dist/

publish-to-testpypi:
needs: [verify-ci, build-distributions]
needs: [verify-ci, linux-cli-validation, darwin-validation, build-distributions]
runs-on: ubuntu-latest

environment:
Expand Down
49 changes: 47 additions & 2 deletions .github/workflows/python-publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,46 @@ jobs:
`CI verified for commit ${sha} via run #${ok.run_number}.`
);

build-distributions:
linux-cli-validation:
needs: verify-ci
uses: ./.github/workflows/linux-python-3_13-cli-validation.yml
with:
run_accurate_research: false

darwin-validation:
needs: verify-ci
uses: ./.github/workflows/darwin-x86_64-validation.yml

macos-mps-validation:
needs: verify-ci
uses: ./.github/workflows/macos15-mps-validation.yml
with:
run_accurate_research: false

selfhosted-gpu-validation:
needs: verify-ci
continue-on-error: true
uses: ./.github/workflows/linux-selfhosted-gpu-validation.yml
with:
run_cuda: true
run_xpu: false
run_accurate_research: false

full-dataset-quality-gate:
needs: verify-ci
continue-on-error: true
uses: ./.github/workflows/full-dataset-quality-gate-regression.yml
with:
run_training: true

build-distributions:
needs:
[
verify-ci,
linux-cli-validation,
darwin-validation,
macos-mps-validation,
]
runs-on: ubuntu-latest

steps:
Expand All @@ -84,7 +122,14 @@ jobs:
path: dist/

publish-to-pypi:
needs: [verify-ci, build-distributions]
needs:
[
verify-ci,
linux-cli-validation,
darwin-validation,
macos-mps-validation,
build-distributions,
]
runs-on: ubuntu-latest

environment:
Expand Down
4 changes: 4 additions & 0 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -183,5 +183,9 @@ reportMissingTypeStubs = "none"
testpaths = ["tests"]
addopts = "-ra --strict-config --strict-markers"
markers = [
"unit: narrow owner or helper tests with no multi-module workflow orchestration",
"integration: integration tests that cross module or workflow boundaries",
"process_isolation: tests covering spawned-process orchestration and contracts",
"smoke: fast user-path smoke tests through public workflows",
"topology_contract: topology, boundary, or architecture behavior tests",
]
Loading