Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
224 changes: 112 additions & 112 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -43,158 +43,158 @@ jobs:

ci:
if: github.event_name != 'pull_request' || !contains(github.event.pull_request.title, '[skip ci]')
name: ${{ matrix.platform[0] }} ${{ matrix.platform[1] }}
runs-on: ${{ matrix.os }}
name: ${{ matrix.runtime[0] }} ${{ matrix.runtime[1] }}
runs-on: macos-15
strategy:
fail-fast: false
matrix:
include:
- platform: [iOS, 15]
runtime: iOS 15.5
os: macos-15
xcode: 26.0
- platform: [iOS, 16]
runtime: iOS 16.4
os: macos-15
xcode: 26.0
- platform: [iOS, 17]
runtime: iOS 17.5
os: macos-15
xcode: 26.0
- platform: [iOS, 18]
runtime: iOS 18.6
os: macos-15
xcode: 26.0
- platform: [iOS, 26]
runtime: iOS 26.0
os: macos-15
xcode: 26.0

- platform: [tvOS, 15]
runtime: tvOS 15.4
os: macos-15
xcode: 26.0
- platform: [tvOS, 16]
runtime: tvOS 16.4
os: macos-15
xcode: 26.0
- platform: [tvOS, 17]
runtime: tvOS 17.5
os: macos-15
xcode: 26.0
- platform: [tvOS, 18]
runtime: tvOS 18.5
os: macos-15
xcode: 26.0
- platform: [tvOS, 26]
runtime: tvOS 26.0
os: macos-15
xcode: 26.0

- platform: [watchOS, 8]
runtime: watchOS 8.5
os: macos-15
xcode: 26.0
- platform: [watchOS, 9]
runtime: watchOS 9.4
os: macos-15
xcode: 26.0
- platform: [watchOS, 10]
runtime: watchOS 10.5
os: macos-15
xcode: 26.0
- platform: [watchOS, 11]
runtime: watchOS 11.5
os: macos-15
xcode: 26.0
- platform: [watchOS, 26]
runtime: watchOS 26.0
os: macos-15
xcode: 26.0

- platform: [macOS, 15]
runtime: macOS 15
os: macos-15
xcode: 26.0
# - platform: [macOS, 26]
# runtime: macOS 26.0
# os: macos-26
# xcode: 26.0

- platform: [visionOS, 1]
runtime: visionOS 1.2
os: macos-15
xcode: 26.0
- platform: [visionOS, 2]
runtime: visionOS 2.5
os: macos-15
xcode: 26.0
- platform: [visionOS, 26]
runtime: visionOS 26.0
os: macos-15
xcode: 26.0
runtime:
- [iOS, 15, 5]
- [iOS, 16, 4]
- [iOS, 17, 5]
- [iOS, 18, 6]
- [iOS, 26, 0]

- [iPadOS, 15, 5]
- [iPadOS, 16, 4]
- [iPadOS, 17, 5]
- [iPadOS, 18, 6]
- [iPadOS, 26, 0]

- [tvOS, 15, 4]
- [tvOS, 16, 4]
- [tvOS, 17, 5]
- [tvOS, 18, 5]
- [tvOS, 26, 0]

- [watchOS, 8, 5]
- [watchOS, 9, 4]
- [watchOS, 10, 5]
- [watchOS, 11, 5]
- [watchOS, 26, 0]

- [macOS, 15, 0]
# - [macOS, 26, 0]

- [visionOS, 1, 2]
- [visionOS, 2, 5]
- [visionOS, 26, 0]
steps:
- name: Git Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Set Environment Variables
run: |
set -euo pipefail

PLATFORM="${{ matrix.runtime[0] }}"
MAJOR="${{ matrix.runtime[1] }}"
MINOR="${{ matrix.runtime[2] }}"

if [ "$PLATFORM" = "iPadOS" ]; then
PLATFORM=iOS
FASTLANE_PLATFORM=ipados
else
case "$PLATFORM" in
iOS) FASTLANE_PLATFORM=ios ;;
tvOS) FASTLANE_PLATFORM=tvos ;;
watchOS) FASTLANE_PLATFORM=watchos ;;
visionOS) FASTLANE_PLATFORM=visionos ;;
macOS) FASTLANE_PLATFORM=macos ;;
esac
fi

- name: Set environment variables
run: echo "SKIP_SLOW_FASTLANE_WARNING=1" >> $GITHUB_ENV
RUNTIME="$PLATFORM $MAJOR.$MINOR"

- if: ${{ matrix.platform[0] != 'macOS' }}
name: Check for ${{ matrix.runtime }} runtime
echo "PLATFORM=$PLATFORM" >> $GITHUB_ENV
echo "MAJOR=$MAJOR" >> $GITHUB_ENV
echo "MINOR=$MINOR" >> $GITHUB_ENV
echo "RUNTIME=$RUNTIME" >> $GITHUB_ENV
echo "FASTLANE_PLATFORM=$FASTLANE_PLATFORM" >> $GITHUB_ENV

- if: ${{ env.PLATFORM != 'macOS' }}
name: Check for ${{ env.RUNTIME }} runtime
run: |
if xcrun simctl list runtimes | grep -q "${{ matrix.runtime }}"; then
if xcrun simctl list runtimes | grep -q "$RUNTIME"; then
echo "has_runtime=true" >> "$GITHUB_ENV"
else
echo "has_runtime=false" >> "$GITHUB_ENV"
fi

- name: Select Xcode ${{ matrix.xcode }}
run: sudo xcodes select ${{ matrix.xcode }}
- name: Select Xcode 26.0
uses: mxcl/xcodebuild@v3
with:
xcode: ~26.0
action: none
verbosity: xcbeautify

- if: ${{ matrix.xcode == '26.0' && matrix.platform[0] != 'macOS' }}
name: Install 2026 Runtime
- if: ${{ env.PLATFORM != 'macOS' }}
name: Download Required Runtime
uses: nick-fields/retry@v3
with:
timeout_minutes: 15
max_attempts: 3
command: xcodebuild -downloadPlatform ${{ matrix.platform[0] }}
command: xcodebuild -downloadPlatform ${{ env.PLATFORM }}

- if: env.has_runtime == 'false'
name: "List Downloadable Runtimes"
name: List Downloadable Runtimes
run: xcodes runtimes --include-betas

- if: env.has_runtime == 'false'
name: Install Required Runtime (${{ matrix.runtime }})
name: Install Required Runtime (${{ env.RUNTIME }})
uses: nick-fields/retry@v3
with:
timeout_minutes: 15
max_attempts: 3
command: sudo xcodes runtimes install '${{ matrix.runtime }}'
command: sudo xcodes runtimes install "$RUNTIME"

- if: ${{ matrix.platform[0] != 'macOS' }}
- if: ${{ env.PLATFORM != 'macOS' }}
name: Create Required Simulators
run: |
set -eo pipefail
xcrun simctl delete all
fastlane create_simulators platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }}
fastlane create_simulators platform:${{ env.FASTLANE_PLATFORM }} version:${{ env.MAJOR }}

- name: List Available Runtimes, Simulators, and Destinations
run: |
xcrun simctl list
xcodebuild -scheme "SwiftUIIntrospect" -showdestinations

- if: ${{ matrix.platform[0] != 'watchOS' }}
- if: ${{ env.PLATFORM != 'watchOS' }}
name: Build Showcase
run: fastlane build platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }} scheme:Showcase

- if: ${{ matrix.platform[0] == 'watchOS' }}
uses: mxcl/xcodebuild@v3
with:
xcode: ~26.0
platform: ${{ env.PLATFORM }}
platform-version: ~${{ env.MAJOR }}.${{ env.MINOR }}
action: build
scheme: Showcase
configuration: Debug
verbosity: xcbeautify

- if: ${{ env.PLATFORM == 'watchOS' }}
name: Build Library
run: fastlane build platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }} scheme:SwiftUIIntrospect

- if: ${{ matrix.platform[0] != 'watchOS' }}
uses: mxcl/xcodebuild@v3
with:
xcode: ~26.0
platform: ${{ env.PLATFORM }}
platform-version: ~${{ env.MAJOR }}.${{ env.MINOR }}
action: build
scheme: SwiftUIIntrospect
configuration: Debug
verbosity: xcbeautify

- if: ${{ env.PLATFORM != 'watchOS' }}
name: Run Tests
run: fastlane test platform:${{ matrix.platform[0] }} version:${{ matrix.platform[1] }} scheme:SwiftUIIntrospectTests configuration:Debug
uses: mxcl/xcodebuild@v3
with:
xcode: ~26.0
platform: ${{ env.PLATFORM }}
platform-version: ~${{ env.MAJOR }}.${{ env.MINOR }}
action: test
scheme: SwiftUIIntrospectTests
configuration: Debug
verbosity: xcbeautify

framework-archiving:
if: github.event_name != 'pull_request' || !contains(github.event.pull_request.title, '[skip ci]')
Expand All @@ -219,7 +219,7 @@ jobs:
destination: "platform=macOS,variant=Mac Catalyst"
steps:
- name: Git Checkout
uses: actions/checkout@v4
uses: actions/checkout@v5

- name: Select Xcode version
run: sudo xcodes select 16.4
Expand Down
Loading
Loading