grogu has no git-lfs, so the Core ML model is a pointer file coremlc cannot compile. CI removes the pointer-only mlpackage before xcodegen generate (ObjectDetector loads the model by URL and falls back to the Vision built-ins when it is missing) and compiles the app and the test bundle unsigned with build-for-testing. The tests are app-hosted XCTests and the runner has no GUI session for testmanagerd; the README documents running them locally. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
25 lines
1.2 KiB
YAML
25 lines
1.2 KiB
YAML
name: build
|
|
on:
|
|
push:
|
|
branches: ['**']
|
|
tags: ['v*']
|
|
jobs:
|
|
macos:
|
|
uses: self:KofTwentyTwo/ci-workflows/.gitea/workflows/macos.yaml@v1
|
|
secrets: inherit
|
|
with:
|
|
# Build only, without LFS: the runner has no git-lfs, so the Core ML model is a pointer file that
|
|
# coremlc cannot compile. It is left out of the build; ObjectDetector loads it by URL at runtime and
|
|
# falls back to the Vision built-ins when it is missing. The app and the test bundle are compiled
|
|
# unsigned but the tests are not run: they are app-hosted XCTests and the grogu runner has no GUI
|
|
# session for testmanagerd. Run them locally before merging (README, Tests).
|
|
lfs: false
|
|
commands: |
|
|
model=Sources/Resources/Models/yolov8x-oiv7.mlpackage
|
|
if head -c 40 "$model/Data/com.apple.CoreML/model.mlmodel" | grep -q '^version https://git-lfs'; then
|
|
echo "$model is an LFS pointer (no git-lfs on the runner): building without the model"
|
|
rm -rf "$model"
|
|
fi
|
|
xcodegen generate
|
|
xcodebuild -quiet -project VisionPOC.xcodeproj -scheme VisionPOC -configuration Debug -destination 'platform=macOS' CODE_SIGNING_ALLOWED=NO build-for-testing
|