Skip to content

Commit 31eb5b8

Browse files
committed
ci(github): add test workflow for automated testing
1 parent 38bd0d4 commit 31eb5b8

File tree

1 file changed

+70
-0
lines changed

1 file changed

+70
-0
lines changed

.github/workflows/test.yml

Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches: [main]
6+
paths:
7+
- 'OpenDictation/**'
8+
- 'OpenDictationTests/**'
9+
- 'Makefile'
10+
- '.github/workflows/test.yml'
11+
- 'project.yml'
12+
pull_request:
13+
paths:
14+
- 'OpenDictation/**'
15+
- 'OpenDictationTests/**'
16+
- 'Makefile'
17+
- '.github/workflows/test.yml'
18+
- 'project.yml'
19+
20+
jobs:
21+
test:
22+
name: Unit Tests
23+
runs-on: macos-26
24+
permissions:
25+
contents: read
26+
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@v4
30+
31+
- name: Setup Xcode
32+
uses: maxim-lobanov/setup-xcode@v1
33+
with:
34+
xcode-version: latest-stable
35+
36+
- name: Install Tools
37+
run: brew install xcodegen xcpretty
38+
39+
- name: Generate Xcode Project
40+
run: xcodegen generate
41+
42+
- name: Download whisper.cpp XCFramework
43+
run: |
44+
mkdir -p deps/whisper.cpp
45+
curl -L -o whisper-xcframework.zip \
46+
"https://github.com/ggml-org/whisper.cpp/releases/download/v1.8.2/whisper-v1.8.2-xcframework.zip"
47+
unzip -q whisper-xcframework.zip -d deps/whisper.cpp
48+
rm whisper-xcframework.zip
49+
echo "Downloaded whisper.cpp v1.8.2 xcframework"
50+
51+
- name: Run Tests
52+
run: |
53+
set -o pipefail
54+
xcodebuild test \
55+
-project OpenDictation.xcodeproj \
56+
-scheme OpenDictationTests \
57+
-destination 'platform=macOS' \
58+
CODE_SIGNING_ALLOWED=NO \
59+
CODE_SIGNING_REQUIRED=NO \
60+
CODE_SIGN_IDENTITY="" \
61+
| xcpretty --color --report junit
62+
63+
- name: Upload Test Results
64+
if: always()
65+
uses: actions/upload-artifact@v4
66+
with:
67+
name: test-results
68+
path: build/reports/
69+
if-no-files-found: warn
70+
retention-days: 7

0 commit comments

Comments
 (0)