ci: build on the shared ci-workflows macOS workflow (build only) #2
No files matched your search
@@ -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.
|
||||
@@ -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
|
||||
@@ -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.
|
||||
|
||||
---
|
||||
|
||||
|
||||
Reference in new issue
Block a user