Merge pull request 'ci: build on the shared ci-workflows macOS workflow (build only)' (#2) from ci/shared-macos into main
macos / macos (push) Successful in 8s
build / macos (push) Successful in 8s

This commit was merged in pull request #2.
This commit is contained in:
james.maes committed 2026-11-08 23:28:58 +00:00
commit cace805141
3 files changed
+32 -18

No files matched your search

-17
View File
@@ -1,17 +0,0 @@
# Native CI verification
VisionPOC is a native Apple project (`VisionPOC.xcodeproj`, generated with XcodeGen). Its native verification is **centralized**:
this repository carries no workflow that selects a host or a runner label.
- The owner-level `native.yaml` in the KofTwentyTwo CI policy repository dispatches the shared `swift` profile for
`KofTwentyTwo/VisionPOC` with inputs declared centrally (`xcode-build` of the `VisionPOC` scheme, project generated by XcodeGen).
- It runs on pushes to the protected branches, on manual dispatch, and on pull requests opened from a branch of this same
repository. A pull request from a fork never runs on a host: a Linux `fork-deny` job fails it instead.
- This is a **build-only** verification plus a secrets scan. The project declares no unit-test suite, so no test result is
produced or claimed. Hardware, UI and signing checks are out of scope and are not waived by this document.
- The `native-result` check aggregates the native jobs. It fails unless the native build and the secrets scan succeeded,
so a skipped, failed or cancelled native run cannot pass.
- The primary `ci-result` check (source/config lint and secrets scan) continues to run on every pull request.
Both `ci-result` and `native-result` are required checks for `main`. Changing what runs, where, or with which inputs is
done in the CI policy repository, never in a pull request to this repository.
+24
View File
@@ -0,0 +1,24 @@
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
+8 -1
View File
@@ -98,9 +98,16 @@ xcodebuild -project VisionPOC.xcodeproj -scheme VisionPOC -configuration Debug -
24 unit tests across IoU, aspect-fit, LogStream ring buffer, and DetectionEventBus pub/sub.
The tests are app-hosted XCTests (`TEST_HOST` is the app). CI compiles them but does not run them (the CI
macOS runner has no GUI session), so run the command above locally before merging.
### Continuous integration
GitHub Actions builds + tests on every push to `main` — see `.github/workflows/build.yml`. LFS is skipped on CI (the build tolerates a missing model since `ObjectDetector` falls back to the Vision built-ins).
Gitea Actions (`.gitea/workflows/build.yaml`, the shared `KofTwentyTwo/ci-workflows` macOS workflow on grogu)
builds the app and the test bundle unsigned (`build-for-testing`) on every push. It is build only: the tests
run locally (above). LFS is skipped on CI: the pointer-only model is removed before `xcodegen generate`, and
`ObjectDetector` falls back to the Vision built-ins when the model is missing. The `.github` workflow still
runs on the GitHub mirror.
---