Skip to content

Add GitHub Actions CI build on every PR - #68

Merged
rayl15 merged 4 commits into
mainfrom
ci/github-actions
Oct 4, 2026
Merged

rayl15 merged 4 commits into
mainfrom
ci/github-actions

Conversation

@rayl15

@rayl15 rayl15 commented Oct 4, 2026 •

Copy link
Copy Markdown
Owner

What & why

Until now nothing compiled a PR before a human read it; the only check was CodeRabbit. This adds a GitHub Actions workflow that builds the app and its test target on every pull request and push to main, plus a CI badge in the README.

  • xcodebuild build-for-testing for generic/platform=iOS with code signing off. That proves the code compiles against the iOS SDK without certificates, and it matches how the app is actually run (on a phone; the simulator can't do Bluetooth or on-device MLX).
  • Runs on the standard macos-26 runner, which is free for public repositories. Larger runners are billed even on public repos, so the job stays on the plain label.
  • Copies the two gitignored config files from their .example versions, the same two the README asks contributors to create; the placeholder values are enough to compile.
  • Passes -skipPackagePluginValidation and -skipMacroValidation: mlx-swift ships a build plugin (CudaBuild) and mlx-swift-lm uses Swift macros, and Xcode refuses both until a human approves them.
  • Caches SwiftPM checkouts (MLX, Kokoro, Meta DAT are the slow part) keyed on project.pbxproj + project.yml, since Package.resolved is gitignored.
  • Pins Xcode via DEVELOPER_DIR so an image update can't change the SDK under a PR.
  • Uploads the .xcactivitylog files when the build fails.

What the first runs showed

  • Run 1 failed on the unapproved CudaBuild plugin; run 2 on the missing Config.swift. Both are fixed in this branch and documented in the workflow comments.
  • Run 3 is green: the whole app and test target compile in about 8 minutes on the runner (cold package cache).
  • GitHub's images top out at Xcode 26.6 (iOS 26.5 SDK) and main's mlx-swift-lm pin was chosen for the Xcode 27 SDK (Fix: Bump mlx-swift-lm pin so the project builds on Xcode 27 #59). MLXFoundationModels compiled cleanly on 26.6, so the pin works on both. When Xcode 27 reaches actions/runner-images, bump DEVELOPER_DIR.

Follow-ups (separate PRs)

  • Make the build a required status check on main once this is merged and the open PRs have had a run.
  • Run the unit tests on a simulator. Most of the suite is pure logic, but the new cloud-TTS tests play real audio and MLX may not build for the simulator, so that needs its own look.

🤖 Generated with Claude Code

Builds the OpenVision scheme with build-for-testing for a generic iOS
device with code signing disabled, on the free macos-26 runner, so a PR
that doesn't compile is caught before review. Copies the example
xcconfig into place, caches SwiftPM checkouts keyed on the project
pins, pins Xcode 26.6 via DEVELOPER_DIR, and uploads xcactivitylogs
when the build fails.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@coderabbitai

coderabbitai Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

Note

Currently processing new changes in this PR. This may take a few minutes, please wait...

⚙️ Run configuration
  • Configuration used: Repository: rayl15/OpenVision/.coderabbit.yaml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: db0437bf-364f-4092-860e-3c445e472379
📥 Commits

Reviewing files that changed from the base of the PR and between 89aba56 and 6e04f83.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • README.md
 __________________________________
< Jazz Jackrabbit is my alter ego. >
 ----------------------------------
  \
   \   (\__/)
       (•ㅅ•)
       /   づ
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

rayl15 and others added 3 commits October 3, 2026 21:41
The first run failed at "Validate plug-in CudaBuild in package mlx-swift":
Xcode won't run third-party build plugins or macros unapproved, and CI
has no one to approve them.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Second run got through package resolution and the MLX targets and
stopped only on the other gitignored file the README has contributors
copy.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@rayl15
rayl15 merged commit 2d4be10 into main Oct 4, 2026
1 of 2 checks passed
@rayl15
rayl15 deleted the ci/github-actions branch October 4, 2026 05:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant