Skip to content

feat: pre-built iOS XCUITest bundle for zero-config install#27

Merged
docer1990 merged 11 commits into
mainfrom
feat/iOS-boundle-discovery
Mar 20, 2026
Merged

feat: pre-built iOS XCUITest bundle for zero-config install#27
docer1990 merged 11 commits into
mainfrom
feat/iOS-boundle-discovery

Conversation

@docer1990
Copy link
Copy Markdown
Owner

@docer1990 docer1990 commented Mar 20, 2026

Summary

  • Add pre-built iOS XCUITest bundle support for zero-config installation
    on Apple Silicon Macs — no Xcode IDE or source checkout required
  • Extend release workflow with a macOS CI job that builds the iOS test
    bundle, archives it as ios-automation-server.tar.gz, and includes it in
    GitHub Releases
  • Update install.sh to download and extract the iOS bundle on macOS
    arm64 (skipped on Linux and Intel Macs with informational messages)
  • Add dual-path discovery in ios_start_automation_server: prefers
    pre-built bundle via xcodebuild test-without-building, falls back to
    source build automatically if the bundle fails
  • Extract resolveInstallDir() helper shared by APK and xctestrun
    discovery
  • Extract startAndPollServer() helper to eliminate duplicated polling
    logic between primary and fallback paths

Test plan

  • ./gradlew :app:test passes (includes new ToolFactoryPathTest
    cases for findXctestrun and buildXcodebuildCommand)
  • Run install.sh on macOS arm64 and confirm the iOS bundle is
    extracted to ~/.local/share/visiontest/ios-automation-server/
  • Start ios_start_automation_server with a pre-built bundle
    installed and verify it uses test-without-building
  • Delete the pre-built bundle and verify it falls back to source
    build from the Xcode project

Copilot AI review requested due to automatic review settings March 20, 2026 13:20
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a zero-config installation path for iOS automation on Apple Silicon by shipping a pre-built XCUITest bundle in releases, extending the installer to fetch it, and teaching the MCP server to prefer xcodebuild test-without-building with an automatic fallback to source builds.

Changes:

  • Add ios-release-build CI job to build/archive an iOS XCUITest bundle and attach it to GitHub Releases.
  • Update install.sh to download/extract the iOS bundle on macOS arm64 (skip elsewhere with informational output).
  • Update ios_start_automation_server to prefer pre-built .xctestrun discovery, with source-build fallback; refactor shared helpers and add unit tests.

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
.github/workflows/release.yaml Builds and publishes ios-automation-server.tar.gz (+ checksum) as a release asset via a macOS job.
install.sh Downloads/verifies/extracts the iOS bundle on macOS arm64 and reports install status.
app/src/main/kotlin/com/example/visiontest/ToolFactory.kt Adds .xctestrun discovery, command builder, shared polling helper, and dual-path iOS server start logic.
app/src/main/kotlin/com/example/visiontest/config/IOSAutomationConfig.kt Adds constant for the iOS bundle subdirectory name.
app/src/test/kotlin/com/example/visiontest/ToolFactoryPathTest.kt Adds tests for .xctestrun discovery and xcodebuild command construction.
CLAUDE.md Documents the new release assets and the macOS arm64 pre-built iOS flow.
openspec/changes/ios-prebuilt-bundle/* Updates proposal/design/specs/tasks to reflect the pre-built bundle approach and requirements.

Comment thread openspec/changes/archive/2026-03-20-ios-prebuilt-bundle/tasks.md
Comment thread openspec/changes/archive/2026-03-20-ios-prebuilt-bundle/design.md
Comment thread app/src/main/kotlin/com/example/visiontest/ToolFactory.kt
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 5 comments.

Comment thread install.sh Outdated
Comment thread install.sh Outdated
Comment thread app/src/main/kotlin/com/example/visiontest/ToolFactory.kt
Comment thread app/src/main/kotlin/com/example/visiontest/ToolFactory.kt Outdated
Comment thread .github/workflows/release.yaml
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.

Comment thread .github/workflows/release.yaml
Comment thread install.sh
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 1 comment.

Comment thread .github/workflows/release.yaml Outdated
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.

Comment thread install.sh Outdated
Comment thread .github/workflows/release.yaml
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.

Comment thread install.sh Outdated
Comment thread app/src/main/kotlin/com/example/visiontest/ToolFactory.kt
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 12 out of 12 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings March 20, 2026 14:56
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 19 changed files in this pull request and generated 4 comments.

Comment thread install.sh Outdated
Comment thread README.md
Comment thread .github/workflows/release.yaml
Comment thread app/src/main/kotlin/com/example/visiontest/ToolFactory.kt
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 18 out of 19 changed files in this pull request and generated 1 comment.

Comment thread README.md
@docer1990 docer1990 merged commit b87db6e into main Mar 20, 2026
7 checks passed
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.

2 participants