-
Notifications
You must be signed in to change notification settings - Fork 70
92 lines (90 loc) · 3.5 KB
/
Copy pathios.yml
File metadata and controls
92 lines (90 loc) · 3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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.
NSUnbufferedIO=YES xcodebuild 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 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