Compare commits

..
Author SHA1 Message Date
james.maes cace805141 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
2026-11-08 23:28:58 +00:00
James MaesandClaude Opus 5.5 5bfa30f022 ci: build only, without LFS; run the app-hosted tests locally
macos / macos (push) Successful in 8s
build / macos (push) Successful in 8s
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>
2026-11-08 17:25:53 -06:00
James MaesandClaude Opus 5.5 31334fe6e1 ci: pin the shared workflow to v1
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 07:46:21 -06:00
James MaesandClaude Opus 5.5 ff06f7801b ci: fetch the LFS Core ML model for the build
macos / macos (push) Failing after 1s
build / macos (push) Failing after 1s
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 07:37:21 -06:00
James MaesandClaude Opus 5.5 4935cac4b1 ci: build on the shared ci-workflows macOS workflow
macos / macos (push) Failing after 3s
build / macos (push) Failing after 3s
Runs the repository's build (and tests where it has them) on the KOF macOS
host runner through ci-workflows macos.yaml.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-08 07:34:03 -06:00
forge-recovery d616501a9b docs(ci): document centralized native verification (#1)
KofTwentyTwo/ci-policy: ci / fork-guard (push) Skipped
KofTwentyTwo/ci-policy: ci / go-0 (push) Skipped
KofTwentyTwo/ci-policy: ci / go-nix-1 (push) Skipped
KofTwentyTwo/ci-policy: ci / gradle-2 (push) Skipped
KofTwentyTwo/ci-policy: ci / gradle-3 (push) Skipped
KofTwentyTwo/ci-policy: ci / java-docker-4 (push) Skipped
KofTwentyTwo/ci-policy: ci / java-maven-5 (push) Skipped
KofTwentyTwo/ci-policy: ci / manifests-6 (push) Skipped
KofTwentyTwo/ci-policy: ci / nix-7 (push) Skipped
KofTwentyTwo/ci-policy: ci / node-8 (push) Skipped
KofTwentyTwo/ci-policy: ci / python-9 (push) Skipped
KofTwentyTwo/ci-policy: ci / rust-10 (push) Skipped
KofTwentyTwo/ci-policy: ci / rust-11 (push) Skipped
KofTwentyTwo/ci-policy: ci / rust-12 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-0 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-1 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-2 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-3 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-4 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-5 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-6 (push) Skipped
KofTwentyTwo/ci-policy: ci / image-build-7 (push) Skipped
KofTwentyTwo/ci-policy: ci / not-enrolled (push) Skipped
KofTwentyTwo/ci-policy: native / fork-deny (push) Skipped
KofTwentyTwo/ci-policy: native / dotnet-0 (push) Skipped
KofTwentyTwo/ci-policy: native / swift-1 (push) Skipped
KofTwentyTwo/ci-policy: native / swift-3 (push) Skipped
KofTwentyTwo/ci-policy: Shared source and config CI / verify (push) Successful in 15s
KofTwentyTwo/ci-policy: Shared source and config CI / secrets (push) Successful in 15s
KofTwentyTwo/ci-policy: Shared Swift CI / secrets (push) Successful in 15s
KofTwentyTwo/ci-policy: Shared Swift CI / verify (push) Successful in 12s
KofTwentyTwo/ci-policy: Shared source and config CI / gate (push) Successful in 13s
KofTwentyTwo/ci-policy: ci / source-config-13 (push) Successful in 31s
KofTwentyTwo/ci-policy: ci / ci-result (push) Successful in 5s
KofTwentyTwo/ci-policy: Shared Swift CI / gate (push) Successful in 11s
KofTwentyTwo/ci-policy: native / swift-2 (push) Successful in 32s
KofTwentyTwo/ci-policy: native / native-result (push) Successful in 5s
2026-11-01 21:22:31 +00:00
3 changed files with 32 additions and 18 deletions

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.
---