Move OpenURLAction to OpenSwiftUICore and update system handling #2466
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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 |