Skip to content

Commit ddecec5

Browse files
authored
ci: update the github actions configuration (#7)
1 parent a9783f5 commit ddecec5

1 file changed

Lines changed: 52 additions & 136 deletions

File tree

.github/workflows/ci.yml

Lines changed: 52 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ on:
44
push:
55
branches:
66
- main
7-
- dev
87
pull_request:
98
paths:
109
- '.swiftlint.yml'
@@ -13,45 +12,31 @@ on:
1312
- "Source/**"
1413
- "Tests/**"
1514

15+
permissions:
16+
contents: read
17+
18+
concurrency:
19+
group: concurrency-${{ github.head_ref }}
20+
cancel-in-progress: true
21+
22+
env:
23+
SCHEME_NAME: "Concurrency-Package"
24+
1625
jobs:
17-
SwiftLint:
26+
swiftlint:
27+
name: SwiftLint
1828
runs-on: ubuntu-latest
1929
steps:
20-
- uses: actions/checkout@v3
30+
- name: Checkout code
31+
uses: actions/checkout@v3
2132
- name: GitHub Action for SwiftLint
2233
uses: norio-nomura/action-swiftlint@3.2.1
2334
with:
2435
args: --strict
2536
env:
2637
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.2"
38-
runsOn: macOS-14
39-
name: "macOS 14, Xcode 16.2, 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
5338

54-
iOS:
39+
test-apple-platforms:
5540
name: ${{ matrix.name }}
5641
runs-on: ${{ matrix.runsOn }}
5742
env:
@@ -61,90 +46,39 @@ jobs:
6146
fail-fast: false
6247
matrix:
6348
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=17.5,name=iPhone 15 Pro"
69-
name: "iOS 17.5"
70-
xcode: "Xcode_15.4"
71-
runsOn: macOS-14
72-
- destination: "OS=17.0.1,name=iPhone 14 Pro"
73-
name: "iOS 17.0.1"
74-
xcode: "Xcode_15.0"
75-
runsOn: macos-13
76-
- destination: "OS=16.4,name=iPhone 14 Pro"
77-
name: "iOS 16.4"
78-
xcode: "Xcode_14.3.1"
79-
runsOn: macos-13
80-
steps:
81-
- uses: actions/checkout@v3
82-
- name: ${{ matrix.name }}
83-
run: xcodebuild test -scheme "Concurrency-Package" -destination "${{ matrix.destination }}" clean || exit 1
49+
# macOS
50+
- { platform: macOS, name: "macOS 26, Xcode 26.0, Swift 6.2.0", xcode: "Xcode_26.0.1", runsOn: macOS-26, destination: "platform=macOS" }
51+
- { platform: macOS, name: "macOS 14, Xcode 16.1, Swift 6.0.2", xcode: "Xcode_16.1", runsOn: macOS-14, destination: "platform=macOS" }
52+
- { platform: macOS, name: "macOS 14, Xcode 15.4, Swift 5.10", xcode: "Xcode_15.4", runsOn: macOS-14, destination: "platform=macOS" }
8453

85-
tvOS:
86-
name: ${{ matrix.name }}
87-
runs-on: ${{ matrix.runsOn }}
88-
env:
89-
DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer"
90-
timeout-minutes: 20
91-
strategy:
92-
fail-fast: false
93-
matrix:
94-
include:
95-
- destination: "OS=18.1,name=Apple TV"
96-
name: "tvOS 18.1"
97-
xcode: "Xcode_16.1"
98-
runsOn: macOS-14
99-
- destination: "OS=17.5,name=Apple TV"
100-
name: "tvOS 17.5"
101-
xcode: "Xcode_15.4"
102-
runsOn: macOS-14
103-
- destination: "OS=17.0,name=Apple TV"
104-
name: "tvOS 17.0"
105-
xcode: "Xcode_15.0"
106-
runsOn: macos-13
107-
- destination: "OS=16.4,name=Apple TV"
108-
name: "tvOS 16.4"
109-
xcode: "Xcode_14.3.1"
110-
runsOn: macos-13
111-
steps:
112-
- uses: actions/checkout@v3
113-
- name: ${{ matrix.name }}
114-
run: xcodebuild test -scheme "Concurrency-Package" -destination "${{ matrix.destination }}" clean || exit 1
54+
# iOS
55+
- { 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" }
56+
- { platform: iOS, name: "iOS 18.1", xcode: "Xcode_16.1", runsOn: macOS-14, destination: "OS=18.1,name=iPhone 16 Pro" }
57+
- { platform: iOS, name: "iOS 17.4", xcode: "Xcode_15.3", runsOn: macOS-14, destination: "OS=17.4,name=iPhone 15 Pro" }
11558

116-
watchOS:
117-
name: ${{ matrix.name }}
118-
runs-on: ${{ matrix.runsOn }}
119-
env:
120-
DEVELOPER_DIR: "/Applications/${{ matrix.xcode }}.app/Contents/Developer"
121-
timeout-minutes: 20
122-
strategy:
123-
fail-fast: false
124-
matrix:
125-
include:
126-
- destination: "OS=11.1,name=Apple Watch Series 10 (46mm)"
127-
name: "watchOS 11.1"
128-
xcode: "Xcode_16.1"
129-
runsOn: macOS-14
130-
- destination: "OS=10.5,name=Apple Watch Series 9 (45mm)"
131-
name: "watchOS 10.5"
132-
xcode: "Xcode_15.4"
133-
runsOn: macOS-14
134-
- destination: "OS=10.0,name=Apple Watch Series 9 (45mm)"
135-
name: "watchOS 10.0"
136-
xcode: "Xcode_15.0"
137-
runsOn: macos-13
138-
- destination: "OS=9.4,name=Apple Watch Series 8 (45mm)"
139-
name: "watchOS 9.4"
140-
xcode: "Xcode_14.3.1"
141-
runsOn: macos-13
59+
# tvOS
60+
- { platform: tvOS, name: "tvOS 26.0", xcode: "Xcode_26.0.1", runsOn: macOS-26, destination: "OS=26.0,name=Apple TV" }
61+
- { platform: tvOS, name: "tvOS 18.1", xcode: "Xcode_16.1", runsOn: macOS-14, destination: "OS=18.1,name=Apple TV" }
62+
- { platform: tvOS, name: "tvOS 17.4", xcode: "Xcode_15.3", runsOn: macOS-14, destination: "OS=17.4,name=Apple TV" }
63+
64+
# watchOS
65+
- { platform: watchOS, name: "watchOS 26.0", xcode: "Xcode_26.0.1", runsOn: macOS-26, destination: "OS=26.0,name=Apple Watch Ultra 3 (49mm)" }
66+
- { platform: watchOS, name: "watchOS 11.1", xcode: "Xcode_16.1", runsOn: macOS-14, destination: "OS=11.1,name=Apple Watch Series 10 (46mm)" }
67+
- { platform: watchOS, name: "watchOS 10.5", xcode: "Xcode_15.3", runsOn: macOS-14, destination: "OS=10.5,name=Apple Watch Series 9 (45mm)" }
68+
- { platform: watchOS, name: "watchOS 10.4", xcode: "Xcode_15.3", runsOn: macOS-14, destination: "OS=10.4,name=Apple Watch Series 9 (45mm)" }
14269
steps:
143-
- uses: actions/checkout@v3
144-
- name: ${{ matrix.name }}
145-
run: xcodebuild test -scheme "Concurrency-Package" -destination "${{ matrix.destination }}" clean || exit 1
70+
- name: Checkout code
71+
uses: actions/checkout@v3
72+
- name: Run tests - ${{ matrix.name }}
73+
run: |
74+
xcodebuild test \
75+
-scheme "${{ env.SCHEME_NAME }}" \
76+
-destination "${{ matrix.destination }}" \
77+
-enableCodeCoverage YES \
78+
-resultBundlePath "test_output/${{ matrix.name }}.xcresult" \
79+
clean || exit 1
14680
147-
spm:
81+
spm-build:
14882
name: ${{ matrix.name }}
14983
runs-on: ${{ matrix.runsOn }}
15084
env:
@@ -154,30 +88,12 @@ jobs:
15488
fail-fast: false
15589
matrix:
15690
include:
157-
- name: "macOS 14, SPM 6.0.2 Test"
158-
xcode: "Xcode_16.1"
159-
runsOn: macOS-14
160-
- name: "macOS 14, SPM 5.9.0 Test"
161-
xcode: "Xcode_15.0"
162-
runsOn: macos-14
163-
- name: "macOS 13, SPM 5.8.1 Test"
164-
xcode: "Xcode_14.3.1"
165-
runsOn: macos-13
91+
- { name: "macOS 26, SPM 6.2.0", xcode: "Xcode_26.0.1", runsOn: macOS-26 }
92+
- { name: "macOS 15, SPM 6.0.2", xcode: "Xcode_16.0", runsOn: macOS-15 }
93+
- { name: "macOS 14, SPM 6.0.2", xcode: "Xcode_16.1", runsOn: macOS-14 }
94+
- { name: "macOS 14, SPM 5.10.0", xcode: "Xcode_15.3", runsOn: macOS-14 }
16695
steps:
167-
- uses: actions/checkout@v3
168-
- name: ${{ matrix.name }}
169-
run: swift build -c release
170-
171-
discover-typos:
172-
name: Discover Typos
173-
runs-on: macOS-13
174-
env:
175-
DEVELOPER_DIR: /Applications/Xcode_14.1.app/Contents/Developer
176-
steps:
177-
- uses: actions/checkout@v4
178-
- name: Discover typos
179-
run: |
180-
export PATH="$PATH:/Library/Frameworks/Python.framework/Versions/3.11/bin"
181-
python3 -m pip install --upgrade pip
182-
python3 -m pip install codespell
183-
codespell --ignore-words-list="hart,inout,msdos,sur" --skip="./.build/*,./.git/*"
96+
- name: Checkout code
97+
uses: actions/checkout@v3
98+
- name: Build with Swift Package Manager - ${{ matrix.name }}
99+
run: swift build -c release

0 commit comments

Comments
 (0)