Files
d8fa40a812 Add the shared vcam CoreMedia data plane and its host harness
vcam_dataplane builds CoreMedia sample buffers, format descriptions and
pixel buffers from the shared vcam frame for both camera hooks. It is
not linked into either hook yet; the third-party client support in #478
is its first user. `make test-vcam-dataplane` runs its 124 host checks,
and CI now runs it with the loader link tests.

Ported from #477 into VPhoneGuestComponents/VCamDataPlane.

Co-authored-by: Alec Armbruster <35377827+alectrocute@users.noreply.github.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 14:44:30 +07:00

63 lines
1.7 KiB
YAML

name: build
on:
push:
branches: [main]
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
build:
runs-on: macos-26
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install xcbeautify
run: command -v xcbeautify >/dev/null || brew install xcbeautify
- name: Toolchain versions
run: |
swift --version
xcodebuild -version
xcbeautify --version
- name: Build VPhone.bundle
env:
SWIFT_JOBS: "4"
run: |
set -o pipefail
mkdir -p .build
xcodebuild -workspace VPhone.xcworkspace -scheme VPhone \
-configuration Debug -destination 'platform=macOS,arch=arm64' \
-derivedDataPath .build/XcodeBundle -jobs 4 build 2>&1 \
| tee .build/xcodebuild.log \
| xcbeautify --quiet --disable-logging --renderer github-actions
# Quiet mode hides unannotated build-phase output, including the reason
# a script phase failed. Keep the full log for that case.
- name: Show raw build log
if: failure()
run: tail -n 300 .build/xcodebuild.log
- name: Upload raw build log
if: failure()
uses: actions/upload-artifact@v4
with:
name: xcodebuild-log
path: .build/xcodebuild.log
- name: Verify bundle
run: |
set -euo pipefail
zsh VPhoneExecutable/VPhoneVirtualization/Build/ValidateBundle.sh \
.build/XcodeBundle/Build/Products/Debug/VPhone.bundle
- name: Guest component tests
run: |
make -C VPhoneGuestComponents test-loader-links
make -C VPhoneGuestComponents test-vcam-dataplane