66 - main
77 - dev
88 pull_request :
9- branches : [ main ]
10-
11- concurrency :
12- group : ci
13- cancel-in-progress : true
9+ paths :
10+ - ' .swiftlint.yml'
11+ - " .github/workflows/**"
12+ - " Package.swift"
13+ - " Source/**"
14+ - " Tests/**"
1415
1516jobs :
16- Latest :
17- name : Test Latest (iOS, macOS, tvOS, watchOS)
18- runs-on : macOS-12
17+ SwiftLint :
18+ runs-on : ubuntu-latest
19+ steps :
20+ - uses : actions/checkout@v3
21+ - name : GitHub Action for SwiftLint
22+ uses :
norio-nomura/[email protected] 23+ with :
24+ args : --strict
25+ env :
26+ DIFF_BASE : ${{ github.base_ref }}
27+ macOS :
28+ name : ${{ matrix.name }}
29+ runs-on : ${{ matrix.runsOn }}
30+ env :
31+ DEVELOPER_DIR : " /Applications/${{ matrix.xcode }}.app/Contents/Developer"
32+ timeout-minutes : 20
33+ strategy :
34+ fail-fast : false
35+ matrix :
36+ include :
37+ - xcode : " Xcode_16.0"
38+ runsOn : macOS-14
39+ name : " macOS 14, Xcode 16.0, Swift 6.0"
40+ - xcode : " Xcode_15.4"
41+ runsOn : macOS-14
42+ name : " macOS 14, Xcode 15.4, Swift 5.10"
43+ - xcode : " Xcode_15.0"
44+ runsOn : macos-13
45+ name : " macOS 13, Xcode 15.0, Swift 5.9.0"
46+ - xcode : " Xcode_14.3.1"
47+ runsOn : macos-13
48+ name : " macOS 13, Xcode 14.3.1, Swift 5.8.0"
49+ steps :
50+ - uses : actions/checkout@v3
51+ - name : ${{ matrix.name }}
52+ run : xcodebuild test -scheme "Concurrency-Package" -destination "platform=macOS" clean || exit 1
53+
54+ iOS :
55+ name : ${{ matrix.name }}
56+ runs-on : ${{ matrix.runsOn }}
57+ env :
58+ DEVELOPER_DIR : " /Applications/${{ matrix.xcode }}.app/Contents/Developer"
59+ timeout-minutes : 20
60+ strategy :
61+ fail-fast : false
62+ matrix :
63+ include :
64+ - destination : " OS=18.1,name=iPhone 16 Pro"
65+ name : " iOS 18.1"
66+ xcode : " Xcode_16.1"
67+ runsOn : macOS-14
68+ - destination : " OS=18.0,name=iPhone 16 Pro"
69+ name : " iOS 18.0"
70+ xcode : " Xcode_16.0"
71+ runsOn : macOS-14
72+ - destination : " OS=17.5,name=iPhone 15 Pro"
73+ name : " iOS 17.5"
74+ xcode : " Xcode_15.4"
75+ runsOn : macOS-14
76+ - destination : " OS=17.0.1,name=iPhone 14 Pro"
77+ name : " iOS 17.0.1"
78+ xcode : " Xcode_15.0"
79+ runsOn : macos-13
80+ - destination : " OS=16.4,name=iPhone 14 Pro"
81+ name : " iOS 16.4"
82+ xcode : " Xcode_14.3.1"
83+ runsOn : macos-13
84+ steps :
85+ - uses : actions/checkout@v3
86+ - name : ${{ matrix.name }}
87+ run : xcodebuild test -scheme "Concurrency-Package" -destination "${{ matrix.destination }}" clean || exit 1
88+
89+ tvOS :
90+ name : ${{ matrix.name }}
91+ runs-on : ${{ matrix.runsOn }}
1992 env :
20- DEVELOPER_DIR : " /Applications/Xcode_14.1 .app/Contents/Developer"
21- timeout-minutes : 10
93+ DEVELOPER_DIR : " /Applications/${{ matrix.xcode }} .app/Contents/Developer"
94+ timeout-minutes : 20
2295 strategy :
2396 fail-fast : false
2497 matrix :
2598 include :
26- - destination : " OS=16.1,name=iPhone 14 Pro"
27- name : " iOS"
28- scheme : " Concurrency-Package"
29- - destination : " OS=16.1,name=Apple TV"
30- name : " tvOS"
31- scheme : " Concurrency-Package"
32- - destination : " OS=9.1,name=Apple Watch Series 8 (45mm)"
33- name : " watchOS"
34- scheme : " Concurrency-Package"
35- - destination : " platform=macOS"
36- name : " macOS"
37- scheme : " Concurrency-Package"
99+ - destination : " OS=18.1,name=Apple TV"
100+ name : " tvOS 18.1"
101+ xcode : " Xcode_16.1"
102+ runsOn : macOS-14
103+ - destination : " OS=18.0,name=Apple TV"
104+ name : " tvOS 18.0"
105+ xcode : " Xcode_16.0"
106+ runsOn : macOS-14
107+ - destination : " OS=17.5,name=Apple TV"
108+ name : " tvOS 17.5"
109+ xcode : " Xcode_15.4"
110+ runsOn : macOS-14
111+ - destination : " OS=17.0,name=Apple TV"
112+ name : " tvOS 17.0"
113+ xcode : " Xcode_15.0"
114+ runsOn : macos-13
115+ - destination : " OS=16.4,name=Apple TV"
116+ name : " tvOS 16.4"
117+ xcode : " Xcode_14.3.1"
118+ runsOn : macos-13
38119 steps :
39120 - uses : actions/checkout@v3
40121 - name : ${{ matrix.name }}
41- run : xcodebuild test -scheme "${{ matrix.scheme }}" -destination "${{ matrix.destination }}" clean
122+ run : xcodebuild test -scheme "Concurrency-Package" -destination "${{ matrix.destination }}" clean || exit 1
123+
124+ watchOS :
125+ name : ${{ matrix.name }}
126+ runs-on : ${{ matrix.runsOn }}
127+ env :
128+ DEVELOPER_DIR : " /Applications/${{ matrix.xcode }}.app/Contents/Developer"
129+ timeout-minutes : 20
130+ strategy :
131+ fail-fast : false
132+ matrix :
133+ include :
134+ - destination : " OS=11.1,name=Apple Watch Series 10 (46mm)"
135+ name : " watchOS 11.1"
136+ xcode : " Xcode_16.1"
137+ runsOn : macOS-14
138+ - destination : " OS=11.0,name=Apple Watch Series 10 (46mm)"
139+ name : " watchOS 11.0"
140+ xcode : " Xcode_16.0"
141+ runsOn : macOS-14
142+ - destination : " OS=10.5,name=Apple Watch Series 9 (45mm)"
143+ name : " watchOS 10.5"
144+ xcode : " Xcode_15.4"
145+ runsOn : macOS-14
146+ - destination : " OS=10.0,name=Apple Watch Series 9 (45mm)"
147+ name : " watchOS 10.0"
148+ xcode : " Xcode_15.0"
149+ runsOn : macos-13
150+ - destination : " OS=9.4,name=Apple Watch Series 8 (45mm)"
151+ name : " watchOS 9.4"
152+ xcode : " Xcode_14.3.1"
153+ runsOn : macos-13
154+ steps :
155+ - uses : actions/checkout@v3
156+ - name : ${{ matrix.name }}
157+ run : xcodebuild test -scheme "Concurrency-Package" -destination "${{ matrix.destination }}" clean || exit 1
158+
159+ spm :
160+ name : ${{ matrix.name }}
161+ runs-on : ${{ matrix.runsOn }}
162+ env :
163+ DEVELOPER_DIR : " /Applications/${{ matrix.xcode }}.app/Contents/Developer"
164+ timeout-minutes : 20
165+ strategy :
166+ fail-fast : false
167+ matrix :
168+ include :
169+ - name : " macOS 14, SPM 6.0.2 Test"
170+ xcode : " Xcode_16.1"
171+ runsOn : macOS-14
172+ - name : " macOS 14, SPM 6.0.0 Test"
173+ xcode : " Xcode_16.0"
174+ runsOn : macOS-14
175+ - name : " macOS 14, SPM 5.9.0 Test"
176+ xcode : " Xcode_15.0"
177+ runsOn : macos-14
178+ - name : " macOS 13, SPM 5.8.1 Test"
179+ xcode : " Xcode_14.3.1"
180+ runsOn : macos-13
181+ steps :
182+ - uses : actions/checkout@v3
183+ - name : ${{ matrix.name }}
184+ run : swift build -c release
185+
186+ discover-typos :
187+ name : Discover Typos
188+ runs-on : macOS-13
189+ env :
190+ DEVELOPER_DIR : /Applications/Xcode_14.1.app/Contents/Developer
191+ steps :
192+ - uses : actions/checkout@v4
193+ - name : Discover typos
194+ run : |
195+ export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.11/bin"
196+ python3 -m pip install --upgrade pip
197+ python3 -m pip install codespell
198+ codespell --ignore-words-list="hart,inout,msdos,sur" --skip="./.build/*,./.git/*"
0 commit comments