forked from facebookarchive/WebDriverAgent
-
Notifications
You must be signed in to change notification settings - Fork 603
191 lines (181 loc) · 13.4 KB
/
Copy pathwda-tests.yml
File metadata and controls
191 lines (181 loc) · 13.4 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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
name: WDA Tests
on: [pull_request]
env:
MIN_VM_IMAGE: macos-14
MIN_XCODE_VERSION: "15.4"
MIN_PLATFORM_VERSION: "17.5"
MIN_TV_PLATFORM_VERSION: "17.5"
MIN_TV_DEVICE_NAME: "Apple TV 4K (3rd generation)"
MIN_IPHONE_DEVICE_NAME: "iPhone 15 Plus"
MIN_IPAD_DEVICE_NAME: "iPad Air 13-inch (M2)"
MAX_VM_IMAGE: macos-15
MAX_XCODE_VERSION: "26.1"
MAX_PLATFORM_VERSION: "26.1"
MAX_TV_PLATFORM_VERSION: "26.1"
MAX_IPHONE_DEVICE_NAME: "iPhone 17"
MAX_TV_DEVICE_NAME: "Apple TV 4K (3rd generation)"
MAX_IPAD_DEVICE_NAME: "iPad Air 11-inch (M2)"
DEFAULT_NODE_VERSION: "22.x"
jobs:
build_matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- id: set-matrix
run: |
echo "matrix=${{ toJSON([
{name: 'Generic_iOS_Build_Max_Xcode', vm_image: '${{ env.MAX_VM_IMAGE }}', xcode_version: '${{ env.MAX_XCODE_VERSION }}', action: 'build', target: 'runner', sdk: 'sim', dest: 'generic', code_sign: 'no'},
{name: 'Generic_iOS_Build_Min_Xcode', vm_image: '${{ env.MIN_VM_IMAGE }}', xcode_version: '${{ env.MIN_XCODE_VERSION }}', action: 'build', target: 'runner', sdk: 'sim', dest: 'generic', code_sign: 'no'},
{name: 'Generic_tvOS_Build_Max_Xcode', vm_image: '${{ env.MAX_VM_IMAGE }}', xcode_version: '${{ env.MAX_XCODE_VERSION }}', action: 'build', target: 'tv_runner', sdk: 'tv_sim', dest: 'tv_generic', code_sign: 'no'},
{name: 'Generic_tvOS_Build_Min_Xcode', vm_image: '${{ env.MIN_VM_IMAGE }}', xcode_version: '${{ env.MIN_XCODE_VERSION }}', action: 'build', target: 'tv_runner', sdk: 'tv_sim', dest: 'tv_generic', code_sign: 'no'},
{name: 'iOS_Build_Max_Xcode', vm_image: '${{ env.MAX_VM_IMAGE }}', xcode_version: '${{ env.MAX_XCODE_VERSION }}', action: 'build', target: 'runner', sdk: 'sim', iphone_model: '${{ env.MAX_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MAX_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MAX_PLATFORM_VERSION }}'},
{name: 'iOS_Build_Min_Xcode', vm_image: '${{ env.MIN_VM_IMAGE }}', xcode_version: '${{ env.MIN_XCODE_VERSION }}', action: 'build', target: 'runner', sdk: 'sim', iphone_model: '${{ env.MIN_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MIN_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MIN_PLATFORM_VERSION }}'},
{name: 'tvOS_Build_Max_Xcode', vm_image: '${{ env.MAX_VM_IMAGE }}', xcode_version: '${{ env.MAX_XCODE_VERSION }}', action: 'build', target: 'tv_runner', sdk: 'tv_sim', tv_model: '${{ env.MAX_TV_DEVICE_NAME }}', tv_version: '${{ env.MAX_TV_PLATFORM_VERSION }}'},
{name: 'tvOS_Build_Min_Xcode', vm_image: '${{ env.MIN_VM_IMAGE }}', xcode_version: '${{ env.MIN_XCODE_VERSION }}', action: 'build', target: 'tv_runner', sdk: 'tv_sim', dest: 'tv', tv_model: '${{ env.MIN_TV_DEVICE_NAME }}', tv_version: '${{ env.MIN_TV_PLATFORM_VERSION }}'}
]) }}" >> $GITHUB_OUTPUT
analyze_matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- id: set-matrix
run: |
echo "matrix=${{ toJSON([
{name: 'iOS_Lib_Analyze_Max_Xcode', vm_image: '${{ env.MAX_VM_IMAGE }}', xcode_version: '${{ env.MAX_XCODE_VERSION }}', target: 'lib', sdk: 'sim', iphone_model: '${{ env.MAX_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MAX_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MAX_PLATFORM_VERSION }}'},
{name: 'iOS_Lib_Analyze_Min_Xcode', vm_image: '${{ env.MIN_VM_IMAGE }}', xcode_version: '${{ env.MIN_XCODE_VERSION }}', target: 'lib', sdk: 'sim', iphone_model: '${{ env.MIN_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MIN_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MIN_PLATFORM_VERSION }}'},
{name: 'iOS_Runner_Analyze_Max_Xcode', vm_image: '${{ env.MAX_VM_IMAGE }}', xcode_version: '${{ env.MAX_XCODE_VERSION }}', target: 'runner', sdk: 'sim', iphone_model: '${{ env.MAX_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MAX_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MAX_PLATFORM_VERSION }}'},
{name: 'iOS_Runner_Analyze_Min_Xcode', vm_image: '${{ env.MIN_VM_IMAGE }}', xcode_version: '${{ env.MIN_XCODE_VERSION }}', target: 'runner', sdk: 'sim', iphone_model: '${{ env.MIN_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MIN_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MIN_PLATFORM_VERSION }}'},
{name: 'tvOS_Lib_Analyze_Max_Xcode', vm_image: '${{ env.MAX_VM_IMAGE }}', xcode_version: '${{ env.MAX_XCODE_VERSION }}', target: 'tv_lib', sdk: 'tv_sim', tv_model: '${{ env.MAX_TV_DEVICE_NAME }}', tv_version: '${{ env.MAX_TV_PLATFORM_VERSION }}'},
{name: 'tvOS_Lib_Analyze_Min_Xcode', vm_image: '${{ env.MIN_VM_IMAGE }}', xcode_version: '${{ env.MIN_XCODE_VERSION }}', target: 'tv_lib', sdk: 'tv_sim', tv_model: '${{ env.MIN_TV_DEVICE_NAME }}', tv_version: '${{ env.MIN_TV_PLATFORM_VERSION }}'},
{name: 'tvOS_Runner_Analyze_Max_Xcode', vm_image: '${{ env.MAX_VM_IMAGE }}', xcode_version: '${{ env.MAX_XCODE_VERSION }}', target: 'tv_runner', sdk: 'tv_sim', tv_model: '${{ env.MAX_TV_DEVICE_NAME }}', tv_version: '${{ env.MAX_TV_PLATFORM_VERSION }}'},
{name: 'tvOS_Runner_Analyze_Min_Xcode', vm_image: '${{ env.MIN_VM_IMAGE }}', xcode_version: '${{ env.MIN_XCODE_VERSION }}', target: 'tv_runner', sdk: 'tv_sim', tv_model: '${{ env.MIN_TV_DEVICE_NAME }}', tv_version: '${{ env.MIN_TV_PLATFORM_VERSION }}'}
]) }}" >> $GITHUB_OUTPUT
unit_test_matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- id: set-matrix
run: |
echo "matrix=${{ toJSON([
{name: 'iPhone_Unit_Test_Max_Xcode', vm_image: '${{ env.MAX_VM_IMAGE }}', xcode_version: '${{ env.MAX_XCODE_VERSION }}', iphone_model: '${{ env.MAX_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MAX_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MAX_PLATFORM_VERSION }}'},
{name: 'iPhone_Unit_Test_Min_Xcode', vm_image: '${{ env.MIN_VM_IMAGE }}', xcode_version: '${{ env.MIN_XCODE_VERSION }}', iphone_model: '${{ env.MIN_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MIN_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MIN_PLATFORM_VERSION }}'}
]) }}" >> $GITHUB_OUTPUT
integration_test_matrix:
runs-on: ubuntu-latest
outputs:
matrix: ${{ steps.set-matrix.outputs.matrix }}
steps:
- id: set-matrix
run: |
echo "matrix=${{ toJSON([
{name: 'iphone_int_test_1_Max_Xcode', vm_image: '${{ env.MAX_VM_IMAGE }}', xcode_version: '${{ env.MAX_XCODE_VERSION }}', action: 'int_test_1', dest: 'iphone', iphone_model: '${{ env.MAX_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MAX_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MAX_PLATFORM_VERSION }}'},
{name: 'iphone_int_test_2_Max_Xcode', vm_image: '${{ env.MAX_VM_IMAGE }}', xcode_version: '${{ env.MAX_XCODE_VERSION }}', action: 'int_test_2', dest: 'iphone', iphone_model: '${{ env.MAX_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MAX_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MAX_PLATFORM_VERSION }}'},
{name: 'iphone_int_test_3_Max_Xcode', vm_image: '${{ env.MAX_VM_IMAGE }}', xcode_version: '${{ env.MAX_XCODE_VERSION }}', action: 'int_test_3', dest: 'iphone', iphone_model: '${{ env.MAX_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MAX_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MAX_PLATFORM_VERSION }}'},
{name: 'ipad_int_test_1_Max_Xcode', vm_image: '${{ env.MAX_VM_IMAGE }}', xcode_version: '${{ env.MAX_XCODE_VERSION }}', action: 'int_test_1', dest: 'ipad', iphone_model: '${{ env.MAX_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MAX_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MAX_PLATFORM_VERSION }}'},
{name: 'ipad_int_test_2_Max_Xcode', vm_image: '${{ env.MAX_VM_IMAGE }}', xcode_version: '${{ env.MAX_XCODE_VERSION }}', action: 'int_test_2', dest: 'ipad', iphone_model: '${{ env.MAX_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MAX_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MAX_PLATFORM_VERSION }}'},
{name: 'ipad_int_test_3_Max_Xcode', vm_image: '${{ env.MAX_VM_IMAGE }}', xcode_version: '${{ env.MAX_XCODE_VERSION }}', action: 'int_test_3', dest: 'ipad', iphone_model: '${{ env.MAX_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MAX_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MAX_PLATFORM_VERSION }}'},
{name: 'iphone_int_test_1_Min_Xcode', vm_image: '${{ env.MIN_VM_IMAGE }}', xcode_version: '${{ env.MIN_XCODE_VERSION }}', action: 'int_test_1', dest: 'iphone', iphone_model: '${{ env.MIN_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MIN_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MIN_PLATFORM_VERSION }}'},
{name: 'iphone_int_test_2_Min_Xcode', vm_image: '${{ env.MIN_VM_IMAGE }}', xcode_version: '${{ env.MIN_XCODE_VERSION }}', action: 'int_test_2', dest: 'iphone', iphone_model: '${{ env.MIN_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MIN_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MIN_PLATFORM_VERSION }}'},
{name: 'iphone_int_test_3_Min_Xcode', vm_image: '${{ env.MIN_VM_IMAGE }}', xcode_version: '${{ env.MIN_XCODE_VERSION }}', action: 'int_test_3', dest: 'iphone', iphone_model: '${{ env.MIN_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MIN_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MIN_PLATFORM_VERSION }}'},
{name: 'ipad_int_test_1_Min_Xcode', vm_image: '${{ env.MIN_VM_IMAGE }}', xcode_version: '${{ env.MIN_XCODE_VERSION }}', action: 'int_test_1', dest: 'ipad', iphone_model: '${{ env.MIN_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MIN_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MIN_PLATFORM_VERSION }}'},
{name: 'ipad_int_test_2_Min_Xcode', vm_image: '${{ env.MIN_VM_IMAGE }}', xcode_version: '${{ env.MIN_XCODE_VERSION }}', action: 'int_test_2', dest: 'ipad', iphone_model: '${{ env.MIN_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MIN_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MIN_PLATFORM_VERSION }}'},
{name: 'ipad_int_test_3_Min_Xcode', vm_image: '${{ env.MIN_VM_IMAGE }}', xcode_version: '${{ env.MIN_XCODE_VERSION }}', action: 'int_test_3', dest: 'ipad', iphone_model: '${{ env.MIN_IPHONE_DEVICE_NAME }}', ipad_model: '${{ env.MIN_IPAD_DEVICE_NAME }}', ios_version: '${{ env.MIN_PLATFORM_VERSION }}'}
]) }}" >> $GITHUB_OUTPUT
build:
needs: build_matrix
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.vm_image }}
strategy:
fail-fast: false
matrix:
config: ${{ fromJSON(needs.build_matrix.outputs.matrix) }}
steps:
- uses: ./.github/actions/xcode-setup
with:
node_version: ${{ env.DEFAULT_NODE_VERSION }}
xcode_version: ${{ matrix.config.xcode_version }}
- name: Build
run: ./Scripts/build.sh
env:
ACTION: ${{ matrix.config.action }}
TARGET: ${{ matrix.config.target }}
SDK: ${{ matrix.config.sdk }}
DEST: ${{ matrix.config.dest }}
CODE_SIGN: ${{ matrix.config.code_sign }}
IPHONE_MODEL: ${{ matrix.config.iphone_model }}
IPAD_MODEL: ${{ matrix.config.ipad_model }}
IOS_VERSION: ${{ matrix.config.ios_version }}
TV_MODEL: ${{ matrix.config.tv_model }}
TV_VERSION: ${{ matrix.config.tv_version }}
analyze:
needs: analyze_matrix
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.vm_image }}
strategy:
fail-fast: false
matrix:
config: ${{ fromJSON(needs.analyze_matrix.outputs.matrix) }}
steps:
- uses: ./.github/actions/xcode-setup
with:
node_version: ${{ env.DEFAULT_NODE_VERSION }}
xcode_version: ${{ matrix.config.xcode_version }}
- name: Analyze
run: ./Scripts/build.sh
env:
ACTION: analyze
TARGET: ${{ matrix.config.target }}
SDK: ${{ matrix.config.sdk }}
IPHONE_MODEL: ${{ matrix.config.iphone_model }}
IPAD_MODEL: ${{ matrix.config.ipad_model }}
IOS_VERSION: ${{ matrix.config.ios_version }}
TV_MODEL: ${{ matrix.config.tv_model }}
TV_VERSION: ${{ matrix.config.tv_version }}
unit_test:
needs: unit_test_matrix
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.vm_image }}
strategy:
fail-fast: false
matrix:
config: ${{ fromJSON(needs.unit_test_matrix.outputs.matrix) }}
steps:
- uses: ./.github/actions/xcode-setup
with:
node_version: ${{ env.DEFAULT_NODE_VERSION }}
xcode_version: ${{ matrix.config.xcode_version }}
- name: Run unit tests
run: ./Scripts/build.sh
env:
ACTION: unit_test
DEST: iphone
TARGET: lib
SDK: sim
IPHONE_MODEL: ${{ matrix.config.iphone_model }}
IPAD_MODEL: ${{ matrix.config.ipad_model }}
IOS_VERSION: ${{ matrix.config.ios_version }}
integration_test:
needs: integration_test_matrix
name: ${{ matrix.config.name }}
runs-on: ${{ matrix.config.vm_image }}
strategy:
fail-fast: false
matrix:
config: ${{ fromJSON(needs.integration_test_matrix.outputs.matrix) }}
steps:
- uses: ./.github/actions/xcode-setup
with:
node_version: ${{ env.DEFAULT_NODE_VERSION }}
xcode_version: ${{ matrix.config.xcode_version }}
- name: Run integration test
run: ./Scripts/build.sh
env:
ACTION: ${{ matrix.config.action }}
DEST: ${{ matrix.config.dest }}
TARGET: lib
SDK: sim
IPHONE_MODEL: ${{ matrix.config.iphone_model }}
IPAD_MODEL: ${{ matrix.config.ipad_model }}
IOS_VERSION: ${{ matrix.config.ios_version }}