Compare commits

..
Author SHA1 Message Date
forge-recovery 2d3cf8bce5 docs(ci): document centralized native verification
KofTwentyTwo/ci-policy: ci / fork-guard (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / go-0 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / go-nix-1 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / gradle-2 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / gradle-3 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / java-docker-4 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / java-maven-5 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / manifests-6 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / nix-7 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / node-8 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / python-9 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / rust-10 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / rust-11 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / rust-12 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-0 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-1 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-2 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-3 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-4 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-5 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-6 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / image-build-7 (pull_request) Skipped
KofTwentyTwo/ci-policy: ci / not-enrolled (pull_request) Skipped
KofTwentyTwo/ci-policy: native / fork-deny (pull_request) Skipped
KofTwentyTwo/ci-policy: native / dotnet-0 (pull_request) Skipped
KofTwentyTwo/ci-policy: native / swift-1 (pull_request) Skipped
KofTwentyTwo/ci-policy: native / swift-3 (pull_request) Skipped
KofTwentyTwo/ci-policy: Shared source and config CI / verify (pull_request) Successful in 13s
KofTwentyTwo/ci-policy: Shared source and config CI / secrets (pull_request) Successful in 15s
KofTwentyTwo/ci-policy: Shared Swift CI / verify (pull_request) Successful in 12s
KofTwentyTwo/ci-policy: Shared Swift CI / secrets (pull_request) Successful in 16s
KofTwentyTwo/ci-policy: Shared source and config CI / gate (pull_request) Successful in 12s
KofTwentyTwo/ci-policy: ci / source-config-13 (pull_request) Successful in 28s
KofTwentyTwo/ci-policy: Shared Swift CI / gate (pull_request) Successful in 10s
KofTwentyTwo/ci-policy: native / swift-2 (pull_request) Successful in 28s
KofTwentyTwo/ci-policy: ci / ci-result (pull_request) Successful in 5s
KofTwentyTwo/ci-policy: native / native-result (pull_request) Successful in 3s
2026-11-01 21:21:09 +00:00
3 changed files with 18 additions and 32 deletions

No files matched your search

+17
View File
@@ -0,0 +1,17 @@
# 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
@@ -1,24 +0,0 @@
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
+1 -8
View File
@@ -98,16 +98,9 @@ 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
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.
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).
---