Files
OSGKeyboard/.github/workflows/ci.yml
T
Rocky df1c5ff32c feat: migrate on-device Qwen3 ASR to CoreML for background Flow dictation
Replace MLX GPU inference with CoreML bundles so transcription continues
while the host app is backgrounded. Adds model download and warm-up,
vendored Qwen3Speech, and updates onboarding, settings, and copy for the
~1.6 GB CoreML package (iOS 18+).
2026-06-23 00:46:58 +08:00

91 lines
2.6 KiB
YAML

name: CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
# =========================================================
# SwiftLint (light config — fails only on severe issues)
# =========================================================
lint:
name: SwiftLint
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode_16.0.app
- name: Install SwiftLint
run: brew install swiftlint
- name: Run SwiftLint
run: |
swiftlint lint --quiet
swiftlint lint --quiet --strict
# =========================================================
# Build the main app + keyboard extension
# =========================================================
build:
name: Build (${{ matrix.destination }})
needs: lint
runs-on: macos-14
strategy:
fail-fast: false
matrix:
destination:
- generic/platform=iOS Simulator
xcode:
- "16.0"
steps:
- uses: actions/checkout@v4
- name: Select Xcode ${{ matrix.xcode }}
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
- name: Install XcodeGen
run: brew install xcodegen
- name: Generate project
run: ./Scripts/generate-xcodeproj.sh
- name: Build
run: |
set -o pipefail
xcodebuild \
-project OSGKeyboard.xcodeproj \
-scheme OSGKeyboard \
-destination "${{ matrix.destination }}" \
-configuration Debug \
build \
| xcpretty
# =========================================================
# Unit tests
# =========================================================
test:
name: Unit tests
needs: lint
runs-on: macos-14
steps:
- uses: actions/checkout@v4
- name: Select Xcode
run: sudo xcode-select -s /Applications/Xcode_16.0.app
- name: Install XcodeGen
run: brew install xcodegen
- name: Generate project
run: ./Scripts/generate-xcodeproj.sh
- name: Run tests
run: |
set -o pipefail
xcodebuild test \
-project OSGKeyboard.xcodeproj \
-scheme OSGKeyboard \
-destination 'platform=iOS Simulator,name=iPhone 17' \
-configuration Debug \
-only-testing:OSGKeyboardTests \
CODE_SIGNING_ALLOWED=NO \
| xcpretty