8
8
branches :
9
9
- " **"
10
10
env :
11
- CI_XCODE_14 : /Applications/Xcode_14.2.app/Contents/Developer
12
11
CI_XCODE_15 : /Applications/Xcode_15.4.0.app/Contents/Developer
13
- CI_XCODE_16 : /Applications/Xcode_16.0.app/Contents/Developer
12
+ CI_XCODE_16 : /Applications/Xcode_16.1. 0.app/Contents/Developer
14
13
jobs :
15
- tests :
14
+ test-xcode :
16
15
env :
17
16
GITHUB_ACCESS_TOKEN : ${{ secrets.GITHUB_TOKEN }}
18
17
timeout-minutes : 45
19
18
strategy :
20
19
matrix :
21
- script :
22
- - test:ios
23
- - test:macos
24
- - test:parse_live_query:all
25
- - xcode14 # runs build:starters on Xcode 14
26
- - xcode15 # runs build:starters on Xcode 15
27
- - xcode16 # runs build:starters on Xcode 16
20
+ include :
21
+ # Xcode
22
+ - name : Xcode 15
23
+ script : build:starters
24
+ iosVersion : ' 18.1'
25
+ iosDeviceModel : iPhone 16
26
+ watchOsVersion : ' 11.1'
27
+ watchDeviceModel : Apple Watch Series 10 (46mm)
28
+ tvOsVersion : ' 18.1'
29
+ tvDeviceModel : Apple TV
30
+ macosVersion : 14
31
+ developerDir : CI_XCODE_15
32
+ - name : Xcode 16
33
+ script : build:starters
34
+ iosVersion : ' 18.1'
35
+ iosDeviceModel : iPhone 16
36
+ watchOsVersion : ' 11.1'
37
+ watchDeviceModel : Apple Watch Series 10 (46mm)
38
+ tvOsVersion : ' 18.1'
39
+ tvDeviceModel : Apple TV
40
+ macosVersion : 14
41
+ developerDir : CI_XCODE_16
42
+ # Core Module
43
+ - name : Core Module, iOS 17
44
+ script : test:ios
45
+ iosVersion : ' 17.5'
46
+ iosDeviceModel : iPhone 15
47
+ macosVersion : 15
48
+ developerDir : CI_XCODE_16
49
+ - name : Core Module, iOS 18
50
+ script : test:ios
51
+ iosVersion : ' 18.1'
52
+ iosDeviceModel : iPhone 16
53
+ macosVersion : 15
54
+ developerDir : CI_XCODE_16
55
+ - name : Core Module, macOS 14
56
+ script : test:macos
57
+ macosVersion : 14
58
+ developerDir : CI_XCODE_16
59
+ - name : Core Module, macOS 15
60
+ script : test:macos
61
+ macosVersion : 15
62
+ developerDir : CI_XCODE_16
63
+ # LiveQuery Module
64
+ - name : LiveQuery Module, iOS 17
65
+ script : test:parse_live_query:ios
66
+ iosVersion : ' 17.5'
67
+ iosDeviceModel : iPhone 15
68
+ macosVersion : 15
69
+ developerDir : CI_XCODE_16
70
+ - name : LiveQuery Module, iOS 18
71
+ script : test:parse_live_query:ios
72
+ iosVersion : ' 18.1'
73
+ iosDeviceModel : iPhone 16
74
+ macosVersion : 15
75
+ developerDir : CI_XCODE_16
76
+ - name : LiveQuery Module, macOS 14
77
+ script : test:parse_live_query:osx
78
+ macosVersion : 14
79
+ developerDir : CI_XCODE_15
80
+ - name : LiveQuery Module, macOS 15
81
+ script : test:parse_live_query:osx
82
+ macosVersion : 15
83
+ developerDir : CI_XCODE_16
84
+ - name : LiveQuery Module, watchOS 10
85
+ script : test:parse_live_query:watchos
86
+ watchOsVersion : ' 10.5'
87
+ watchDeviceModel : Apple Watch Series 9 (45mm)
88
+ macosVersion : 15
89
+ developerDir : CI_XCODE_15
90
+ - name : LiveQuery Module, watchOS 11
91
+ script : test:parse_live_query:watchos
92
+ watchOsVersion : ' 11.1'
93
+ watchDeviceModel : Apple Watch Series 10 (46mm)
94
+ macosVersion : 15
95
+ developerDir : CI_XCODE_16
96
+ - name : LiveQuery Module, tvOS 17
97
+ script : test:parse_live_query:tvos
98
+ tvOsVersion : ' 17.5'
99
+ tvDeviceModel : Apple TV
100
+ macosVersion : 15
101
+ developerDir : CI_XCODE_16
102
+ - name : LiveQuery Module, tvOS 18
103
+ script : test:parse_live_query:tvos
104
+ tvOsVersion : ' 18.1'
105
+ tvDeviceModel : Apple TV
106
+ macosVersion : 15
107
+ developerDir : CI_XCODE_16
28
108
fail-fast : false
29
- runs-on : ${{ ((matrix.script == 'xcode15' || matrix.script == 'xcode16') && 'macos-14') || 'macos-13' }}
109
+ runs-on : macos-${{ matrix.macosVersion }}
110
+ name : ${{ matrix.name }}
30
111
steps :
31
112
- uses : actions/checkout@v4
32
113
- name : Cache SPM
49
130
- name : Submodules
50
131
run : git submodule update --init --recursive
51
132
- name : Build-Test
52
- run : set -o pipefail && env NSUnbufferedIO=YES bundle exec rake ${{ (( matrix.script == 'xcode14' || matrix.script == 'xcode15' || matrix.script == 'xcode16') && 'build:starters') || matrix.script }}
133
+ run : set -o pipefail && env NSUnbufferedIO=YES IOS_VERSION="${{ matrix.iosVersion }}" IOS_DEVICE_MODEL=" ${{ matrix.iosDeviceModel }}" WATCH_DEVICE_MODEL="${{ matrix.watchDeviceModel }}" WATCH_OS_VERSION="${{ matrix.watchOsVersion }}" TV_DEVICE_MODEL="${{ matrix.tvDeviceModel }}" TV_OS_VERSION="${{ matrix.tvOsVersion }}" bundle exec rake ${{ matrix.script }}
53
134
env :
54
- DEVELOPER_DIR : ${{ (matrix.script == 'xcode15' && env.CI_XCODE_15) || ( matrix.script == 'xcode16' && env.CI_XCODE_16) || env.CI_XCODE_14 }}
135
+ DEVELOPER_DIR : ${{ env[ matrix.developerDir] }}
55
136
- name : Generate Environment Variables
56
137
if : ${{ always() }}
57
138
env :
68
149
echo "Build Result Location: $BUILD_RESULTS"
69
150
- name : Upload Artifact Logs
70
151
if : ${{ failure() }}
71
- uses : actions/upload-artifact@v3
152
+ uses : actions/upload-artifact@v4
72
153
with :
73
154
name : ${{ env.ARTIFACT_NAME }}
74
155
path : |
@@ -103,7 +184,7 @@ jobs:
103
184
plugin : xcode
104
185
file : ${{ env.COVERAGE_PATH }}
105
186
docs :
106
- runs-on : macos-13
187
+ runs-on : macos-14
107
188
timeout-minutes : 15
108
189
steps :
109
190
- uses : actions/checkout@v4
@@ -117,7 +198,7 @@ jobs:
117
198
run : |
118
199
./Scripts/jazzy.sh
119
200
env :
120
- DEVELOPER_DIR : ${{ env.CI_XCODE_14 }}
201
+ DEVELOPER_DIR : ${{ env.CI_XCODE_16 }}
121
202
concurrency :
122
203
group : ${{ github.workflow }}-${{ github.ref }}
123
204
cancel-in-progress : true
0 commit comments