Skip to content

Move OpenURLAction to OpenSwiftUICore and update system handling #2466

Move OpenURLAction to OpenSwiftUICore and update system handling

Move OpenURLAction to OpenSwiftUICore and update system handling #2466

Workflow file for this run

name: iOS
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
ios_test:
name: Execute tests on iOS
strategy:
fail-fast: false
matrix:
os: [macos-15]
xcode-version: ["26.3"]
release: [2024]
ios-version: ["18.5"]
include:
- ios-version: "18.5"
ios-simulator-name: "iPhone 16 Pro"
# Limit to self-hosted to reduce action cost
runs-on:
- self-hosted
- ${{ matrix.os }}
env:
OPENSWIFTUI_WERROR: 0 # Disable it to avoid enable OAG's werror and hit conflicts
OPENSWIFTUI_OPENATTRIBUTESHIMS_ATTRIBUTEGRAPH: 1
OPENSWIFTUI_COMPATIBILITY_TEST: 0
OPENSWIFTUI_SWIFT_LOG: 0
OPENSWIFTUI_SWIFT_CRYPTO: 0
OPENSWIFTUI_TARGET_RELEASE: ${{ matrix.release }}
OPENSWIFTUI_SUPPORT_MULTI_PRODUCTS: 0
OPENSWIFTUI_USE_LOCAL_DEPS: 1
OPENSWIFTUI_LINK_TESTING: 1
# Match Xcode's test launcher so OSLogStore can read current-process debug messages.
OS_ACTIVITY_DT_MODE: "YES"
GH_TOKEN: ${{ github.token }}
steps:
- uses: actions/checkout@v4
- name: Setup Xcode
uses: OpenSwiftUIProject/setup-xcode@v2
with:
xcode-version: ${{ matrix.xcode-version }}
- name: Set up build environment
run: Scripts/CI/darwin_setup_build.sh
shell: bash
- name: Install xcbeautify
run: brew install xcbeautify
- name: Prepare isolated DerivedData
shell: bash
run: |
derived_data_path="${RUNNER_TEMP:-/tmp}/ios-derived-data-${GITHUB_RUN_ID}-${GITHUB_RUN_ATTEMPT:-0}-${{ matrix.ios-version }}-${{ matrix.release }}"
rm -rf "$derived_data_path"
mkdir -p "$derived_data_path"
echo "DERIVED_DATA_PATH=$derived_data_path" >> "$GITHUB_ENV"
- name: Build test target in debug mode
run: |
set -o pipefail
# Xcode 26.3 + iOS 18.5 fails to launch arm64 SwiftPM package test
# runners with CoreSimulator codesigning errors. Build the x86_64
# simulator slice to match the test command below until that is fixed.
# Swift 6.2 macro prebuilts do not support the x86_64 simulator
# testable macro target, so build SwiftSyntax from source instead.
NSUnbufferedIO=YES xcodebuild -IDEPackageEnablePrebuilts=NO build \
-scheme OpenSwiftUI \
-configuration Debug \
-destination "platform=iOS Simulator,OS=${{ matrix.ios-version }},name=${{ matrix.ios-simulator-name }},arch=x86_64" \
-derivedDataPath "$DERIVED_DATA_PATH" \
-skipMacroValidation \
-skipPackagePluginValidation \
ONLY_ACTIVE_ARCH=YES \
2>&1 | xcbeautify --renderer github-actions --preserve-unbeautified
- name: Run test target in debug mode
run: |
set -o pipefail
# See the build step above: force x86_64 to avoid the arm64 package
# test runner launch/codesigning failure on this Xcode/iOS pair.
NSUnbufferedIO=YES xcodebuild -IDEPackageEnablePrebuilts=NO test \
-scheme OpenSwiftUI \
-configuration Debug \
-destination "platform=iOS Simulator,OS=${{ matrix.ios-version }},name=${{ matrix.ios-simulator-name }},arch=x86_64" \
-derivedDataPath "$DERIVED_DATA_PATH" \
-skipMacroValidation \
-skipPackagePluginValidation \
ONLY_ACTIVE_ARCH=YES \
2>&1 | xcbeautify --renderer github-actions --preserve-unbeautified
- name: Clean up isolated DerivedData
if: always()
shell: bash
run: |
if [[ -n "${DERIVED_DATA_PATH:-}" ]]; then
rm -rf "$DERIVED_DATA_PATH"
fi