Skip to content

Add app ui to read and drive a macOS app's UI #62

Add app ui to read and drive a macOS app's UI

Add app ui to read and drive a macOS app's UI #62

name: catalyst-oracle
on:
push:
branches: [main]
paths:
- "sweetpad-lib/**"
- "sweetpad-core/**"
- "sweetpad-cli/**"
- "Cargo.toml"
- "Cargo.lock"
- ".github/workflows/catalyst-oracle.yaml"
pull_request:
paths:
- "sweetpad-lib/**"
- "sweetpad-core/**"
- "sweetpad-cli/**"
- "Cargo.toml"
- "Cargo.lock"
- ".github/workflows/catalyst-oracle.yaml"
workflow_dispatch:
# Differential oracle / regression gate for native-macOS Catalyst detection
# (the #264 class). Runs real `xcodebuild -sdk macosx -showBuildSettings` as the
# ground truth and compares the in-process resolver's IS_MACCATALYST against it,
# on a fixture matching the report: project-wide iOS-family Base SDK
# (SDKROOT=iphoneos), target supports native macOS with SUPPORTS_MACCATALYST=NO.
#
# The resolver must agree with xcodebuild — IS_MACCATALYST=NO, products under
# `Debug/` not `Debug-maccatalyst/`. This job is RED if that regresses (it was
# the proof of the #264 bug and now guards the fix).
jobs:
oracle:
name: native-macOS Catalyst differential
runs-on: macos-latest
defaults:
run:
working-directory: sweetpad-lib
steps:
- uses: actions/checkout@v7
- name: Install Rust toolchain
run: rustup show
- name: Cache cargo build
uses: Swatinem/rust-cache@v2
with:
workspaces: .
- name: Tooling versions
run: |
xcodebuild -version
rustc --version
- name: Build the sweetpad CLI
run: cargo build -p sweetpad-cli --bin sweetpad
- name: Install XcodeGen
run: brew install xcodegen
- name: Generate the fixture project
working-directory: sweetpad-lib/ci/fixture-catalyst
run: xcodegen generate
- name: Catalyst misdetection oracle
env:
SWEETPAD_BIN: ${{ github.workspace }}/target/debug/sweetpad
run: bash ci/catalyst-oracle.sh