44 push :
55 branches :
66 - main
7- - dev
87 pull_request :
98 paths :
109 - ' .swiftlint.yml'
1312 - " Source/**"
1413 - " Tests/**"
1514
16- jobs :
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 "Log" -destination "platform=macOS" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1
53- - name : Upload test coverage reports to Codecov
54- uses : space-code/oss-common-actions/.github/actions/upload_test_coverage_report@main
55- with :
56- scheme_name : Log
57- filename : ${{ matrix.name }}
58- token : ${{ secrets.CODECOV_TOKEN }}
15+ permissions :
16+ contents : read
5917
60- iOS :
61- name : ${{ matrix.name }}
62- runs-on : ${{ matrix.runsOn }}
63- env :
64- DEVELOPER_DIR : " /Applications/${{ matrix.xcode }}.app/Contents/Developer"
65- timeout-minutes : 20
66- strategy :
67- fail-fast : false
68- matrix :
69- include :
70- - destination : " OS=18.1,name=iPhone 16 Pro"
71- name : " iOS 18.1"
72- xcode : " Xcode_16.1"
73- runsOn : macOS-14
74- - destination : " OS=18.0,name=iPhone 16 Pro"
75- name : " iOS 18.0"
76- xcode : " Xcode_16.0"
77- runsOn : macOS-14
78- - destination : " OS=17.5,name=iPhone 15 Pro"
79- name : " iOS 17.5"
80- xcode : " Xcode_15.4"
81- runsOn : macOS-14
82- - destination : " OS=17.0.1,name=iPhone 14 Pro"
83- name : " iOS 17.0.1"
84- xcode : " Xcode_15.0"
85- runsOn : macos-13
86- - destination : " OS=16.4,name=iPhone 14 Pro"
87- name : " iOS 16.4"
88- xcode : " Xcode_14.3.1"
89- runsOn : macos-13
90- steps :
91- - uses : actions/checkout@v3
92- - name : ${{ matrix.name }}
93- run : xcodebuild test -scheme "Log" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1
94- - name : Upload test coverage reports to Codecov
95- uses : space-code/oss-common-actions/.github/actions/upload_test_coverage_report@main
96- with :
97- scheme_name : Log
98- filename : ${{ matrix.name }}
99- token : ${{ secrets.CODECOV_TOKEN }}
18+ concurrency :
19+ group : log-${{ github.head_ref }}
20+ cancel-in-progress : true
10021
101- tvOS :
102- name : ${{ matrix.name }}
103- runs-on : ${{ matrix.runsOn }}
104- env :
105- DEVELOPER_DIR : " /Applications/${{ matrix.xcode }}.app/Contents/Developer"
106- timeout-minutes : 20
107- strategy :
108- fail-fast : false
109- matrix :
110- include :
111- - destination : " OS=18.1,name=Apple TV"
112- name : " tvOS 18.1"
113- xcode : " Xcode_16.1"
114- runsOn : macOS-14
115- - destination : " OS=18.0,name=Apple TV"
116- name : " tvOS 18.0"
117- xcode : " Xcode_16.0"
118- runsOn : macOS-14
119- - destination : " OS=17.5,name=Apple TV"
120- name : " tvOS 17.5"
121- xcode : " Xcode_15.4"
122- runsOn : macOS-14
123- - destination : " OS=17.0,name=Apple TV"
124- name : " tvOS 17.0"
125- xcode : " Xcode_15.0"
126- runsOn : macos-13
127- - destination : " OS=16.4,name=Apple TV"
128- name : " tvOS 16.4"
129- xcode : " Xcode_14.3.1"
130- runsOn : macos-13
131- steps :
132- - uses : actions/checkout@v3
133- - name : ${{ matrix.name }}
134- run : xcodebuild test -scheme "Log" -destination "${{ matrix.destination }}" clean -enableCodeCoverage YES -resultBundlePath "test_output/${{ matrix.name }}.xcresult" || exit 1
135- - name : Upload test coverage reports to Codecov
136- uses : space-code/oss-common-actions/.github/actions/upload_test_coverage_report@main
137- with :
138- scheme_name : Log
139- filename : ${{ matrix.name }}
140- token : ${{ secrets.CODECOV_TOKEN }}
22+ env :
23+ SCHEME_NAME : " Log"
14124
142- watchOS :
25+ jobs :
26+ test-apple-platforms :
14327 name : ${{ matrix.name }}
14428 runs-on : ${{ matrix.runsOn }}
14529 env :
@@ -149,26 +33,23 @@ jobs:
14933 fail-fast : false
15034 matrix :
15135 include :
152- - destination : " OS=11.1,name=Apple Watch Series 10 (46mm)"
153- name : " watchOS 11.1"
154- xcode : " Xcode_16.1"
155- runsOn : macOS-14
156- - destination : " OS=11.0,name=Apple Watch Series 10 (46mm)"
157- name : " watchOS 11.0"
158- xcode : " Xcode_16.0"
159- runsOn : macOS-14
160- - destination : " OS=10.5,name=Apple Watch Series 9 (45mm)"
161- name : " watchOS 10.5"
162- xcode : " Xcode_15.4"
163- runsOn : macOS-14
164- - destination : " OS=10.0,name=Apple Watch Series 9 (45mm)"
165- name : " watchOS 10.0"
166- xcode : " Xcode_15.0"
167- runsOn : macos-13
168- - destination : " OS=9.4,name=Apple Watch Series 8 (45mm)"
169- name : " watchOS 9.4"
170- xcode : " Xcode_14.3.1"
171- runsOn : macos-13
36+ # macOS
37+ - { platform: macOS, name: "macOS 26, Xcode 26.0, Swift 6.2.0", xcode: "Xcode_26.0.1", runsOn: macOS-26, destination: "platform=macOS" }
38+ - { platform: macOS, name: "macOS 14, Xcode 16.1, Swift 6.0.2", xcode: "Xcode_16.1", runsOn: macOS-14, destination: "platform=macOS" }
39+ - { platform: macOS, name: "macOS 14, Xcode 15.4, Swift 5.10", xcode: "Xcode_15.4", runsOn: macOS-14, destination: "platform=macOS" }
40+ # iOS
41+ - { platform: iOS, name: "iOS 26.0, Xcode 26.0, Swift 6.2.0", xcode: "Xcode_26.0.1", runsOn: macOS-26, destination: "OS=26.0.1,name=iPhone 17 Pro" }
42+ - { platform: iOS, name: "iOS 18.1", xcode: "Xcode_16.1", runsOn: macOS-14, destination: "OS=18.1,name=iPhone 16 Pro" }
43+ - { platform: iOS, name: "iOS 17.4", xcode: "Xcode_15.3", runsOn: macOS-14, destination: "OS=17.4,name=iPhone 15 Pro" }
44+ # tvOS
45+ - { platform: tvOS, name: "tvOS 26.0", xcode: "Xcode_26.0.1", runsOn: macOS-26, destination: "OS=26.0,name=Apple TV" }
46+ - { platform: tvOS, name: "tvOS 18.1", xcode: "Xcode_16.1", runsOn: macOS-14, destination: "OS=18.1,name=Apple TV" }
47+ - { platform: tvOS, name: "tvOS 17.4", xcode: "Xcode_15.3", runsOn: macOS-14, destination: "OS=17.4,name=Apple TV" }
48+ # watchOS
49+ - { platform: watchOS, name: "watchOS 26.0", xcode: "Xcode_26.0.1", runsOn: macOS-26, destination: "OS=26.0,name=Apple Watch Ultra 3 (49mm)" }
50+ - { platform: watchOS, name: "watchOS 11.1", xcode: "Xcode_16.1", runsOn: macOS-14, destination: "OS=11.1,name=Apple Watch Series 10 (46mm)" }
51+ - { platform: watchOS, name: "watchOS 10.5", xcode: "Xcode_15.3", runsOn: macOS-14, destination: "OS=10.5,name=Apple Watch Series 9 (45mm)" }
52+ - { platform: watchOS, name: "watchOS 10.4", xcode: "Xcode_15.3", runsOn: macOS-14, destination: "OS=10.4,name=Apple Watch Series 9 (45mm)" }
17253 steps :
17354 - uses : actions/checkout@v3
17455 - name : ${{ matrix.name }}
@@ -190,25 +71,17 @@ jobs:
19071 fail-fast : false
19172 matrix :
19273 include :
193- - name : " macOS 14, SPM 6.0.2 Test"
194- xcode : " Xcode_16.1"
195- runsOn : macOS-14
196- - name : " macOS 14, SPM 6.0.0 Test"
197- xcode : " Xcode_16.0"
198- runsOn : macOS-14
199- - name : " macOS 14, SPM 5.9.0 Test"
200- xcode : " Xcode_15.0"
201- runsOn : macos-14
202- - name : " macOS 13, SPM 5.8.1 Test"
203- xcode : " Xcode_14.3.1"
204- runsOn : macos-13
74+ - { name: "macOS 26, SPM 6.2.0", xcode: "Xcode_26.0.1", runsOn: macOS-26 }
75+ - { name: "macOS 15, SPM 6.0.2", xcode: "Xcode_16.0", runsOn: macOS-15 }
76+ - { name: "macOS 14, SPM 6.0.2", xcode: "Xcode_16.1", runsOn: macOS-14 }
77+ - { name: "macOS 14, SPM 5.10.0", xcode: "Xcode_15.3", runsOn: macOS-14 }
20578 steps :
20679 - uses : actions/checkout@v3
20780 - name : ${{ matrix.name }}
20881 run : swift build -c release
20982
21083 merge-test-reports :
211- needs : [iOS, macOS, watchOS, tvOS ]
84+ needs : [test-apple-platforms ]
21285 runs-on : macos-13
21386 steps :
21487 - name : Download artifacts
0 commit comments