-
Notifications
You must be signed in to change notification settings - Fork 0
120 lines (99 loc) · 3.61 KB
/
Copy pathci.yml
File metadata and controls
120 lines (99 loc) · 3.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
permissions:
contents: read
jobs:
validate:
name: Validate
runs-on: windows-latest
env:
CARGO_TERM_COLOR: always
LIBCLANG_PATH: C:\Program Files\LLVM\bin
steps:
- name: Check out repository
uses: actions/checkout@v6
- name: Set up Node.js
uses: actions/setup-node@v6
with:
node-version: "24"
cache: npm
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.11"
- name: Install LLVM for whisper-rs bindgen
shell: pwsh
run: |
choco install llvm -y --no-progress
"C:\Program Files\LLVM\bin" | Out-File -FilePath $env:GITHUB_PATH -Append
- name: Install Rust components
shell: pwsh
run: |
rustup component add rustfmt clippy
rustc --version
cargo --version
- name: Install Node dependencies
run: npm ci
- name: Provision pinned Hermes runtimes
shell: pwsh
run: |
python -m pip install uv
.\scripts\provision_hermes_acp.ps1
.\scripts\provision_iris_browser.ps1
- name: Check Rust formatting
run: cargo fmt --all -- --check
- name: Build Rust workspace
run: cargo build --workspace
- name: Test Rust workspace
run: cargo test --workspace
- name: Run Clippy
run: cargo clippy --workspace -- -D warnings
- name: Run voice tests
run: npm run test:voice
- name: Run Python tests
run: npm run test:python
- name: Run repository audit
run: cargo run -p xtask
- name: Run deterministic runtime checks
shell: pwsh
run: |
cargo run -p iris-runtime -- --dashboard-json
$stdoutPath = Join-Path $env:RUNNER_TEMP "iris-self-check-stdout.txt"
$stderrPath = Join-Path $env:RUNNER_TEMP "iris-self-check-stderr.txt"
$process = Start-Process -FilePath ".\target\debug\iris-runtime.exe" `
-ArgumentList "--self-check" -NoNewWindow -Wait -PassThru `
-RedirectStandardOutput $stdoutPath -RedirectStandardError $stderrPath
$output = (Get-Content $stdoutPath, $stderrPath -Raw | Out-String)
$exitCode = $process.ExitCode
Write-Host $output
if ($exitCode -eq 0) {
throw "Offline CI self-check unexpectedly succeeded without bundled models or Ollama."
}
$expectedFailure = $output -match "missing Kokoro model" -or
$output -match "Ollama/model health check failed"
if (-not $expectedFailure) {
throw "Offline CI self-check did not report the expected prerequisite failure."
}
- name: Capture dependency inventory
shell: pwsh
run: |
New-Item -ItemType Directory -Force -Path diagnostics | Out-Null
cargo metadata --format-version 1 | Set-Content diagnostics\cargo-metadata.json
npm ls --all --json | Set-Content diagnostics\npm-dependencies.json
uv pip list --python .\.iris-runtime\hermes\.venv\Scripts\python.exe --format freeze | Set-Content diagnostics\hermes-python-dependencies.txt
- name: Upload dependency inventory
uses: actions/upload-artifact@v6
with:
name: iris-dependency-inventory
path: |
diagnostics/cargo-metadata.json
diagnostics/npm-dependencies.json
diagnostics/hermes-python-dependencies.txt
- name: Check whitespace
run: git diff --check