1
+ name : CI (exhaustive)
2
+ on :
3
+ push :
4
+ tags :
5
+ - ' deploy/[0-9]+.[0-9]+.[0-9]+'
6
+ jobs :
7
+ auto-cancel :
8
+ runs-on : ubuntu-latest
9
+ steps :
10
+ - uses : technote-space/auto-cancel-redundant-job@v1
11
+
12
+ build-linux-swift-3-2 :
13
+ needs : auto-cancel
14
+ runs-on : ubuntu-16.04
15
+ steps :
16
+ - uses : fwal/setup-swift@v1
17
+ with : {swift-version: 4.0.3}
18
+ - uses : actions/checkout@v2
19
+ - run : swift build -Xswiftc -warnings-as-errors -Xswiftc -swift-version -Xswiftc 3
20
+
21
+ build-linux-swift-3-3 :
22
+ needs : auto-cancel
23
+ runs-on : ubuntu-16.04
24
+ steps :
25
+ - uses : fwal/setup-swift@v1
26
+ with : {swift-version: 4.1.3}
27
+ - uses : actions/checkout@v2
28
+ - run : swift build -Xswiftc -warnings-as-errors -Xswiftc -swift-version -Xswiftc 3
29
+
30
+ build-linux-swift-3-4 :
31
+ needs : auto-cancel
32
+ runs-on : ubuntu-16.04
33
+ steps :
34
+ - uses : fwal/setup-swift@v1
35
+ with : {swift-version: 4.2.4}
36
+ - uses : actions/checkout@v2
37
+ - run : swift build -Xswiftc -warnings-as-errors -Xswiftc -swift-version -Xswiftc 3
38
+
39
+ build-linux-swift-4 :
40
+ needs : auto-cancel
41
+ runs-on : ubuntu-16.04
42
+ strategy :
43
+ matrix :
44
+ swift :
45
+ - " 4.0"
46
+ - " 4.1"
47
+ - " 4.2"
48
+ steps :
49
+ - uses : fwal/setup-swift@v1
50
+ with :
51
+ swift-version : ${{ matrix.swift }}
52
+ - uses : actions/checkout@v2
53
+ - run : swift build -Xswiftc -warnings-as-errors
54
+
55
+ build-linux-swift-5 :
56
+ needs : auto-cancel
57
+ runs-on : ubuntu-18.04
58
+ strategy :
59
+ matrix :
60
+ swift :
61
+ - " 5.0"
62
+ - " 5.1"
63
+ - " 5.2"
64
+ - " 5.3"
65
+ - " 5.4"
66
+ steps :
67
+ - uses : fwal/setup-swift@v1
68
+ with :
69
+ swift-version : ${{ matrix.swift }}
70
+ - uses : actions/checkout@v2
71
+ - run : swift build -Xswiftc -warnings-as-errors
72
+
73
+ test :
74
+ needs : [build-linux-swift-5]
75
+ runs-on : macos-latest
76
+ strategy :
77
+ matrix :
78
+ dst :
79
+ - platform=macOS
80
+ - platform=tvOS Simulator,OS=14.3,name=Apple TV
81
+ - platform=iOS Simulator,OS=14.4,name=iPhone 12
82
+ steps :
83
+ - uses : maxim-lobanov/setup-xcode@v1
84
+ with :
85
+ xcode-version : ^12
86
+ - run : swift --version
87
+ - uses : actions/checkout@v2
88
+ - uses : sersoft-gmbh/xcodebuild-action@v1
89
+ with :
90
+ project : PromiseKit.xcodeproj
91
+ scheme : PromiseKit
92
+ destination : ${{ matrix.dst }}
93
+ action : test
94
+ enable-code-coverage : true
95
+ - uses : codecov/codecov-action@v1
96
+
97
+ carthage :
98
+ needs : auto-cancel
99
+ runs-on : macos-latest
100
+ steps :
101
+ - run : swift --version
102
+ - uses : actions/checkout@v2
103
+ - run : carthage build --no-skip-current --configuration Release --use-xcframeworks
104
+
105
+ # Repeated ∵ GHA doesn’t support YAML anchors yet (or some kind of multi matrix)
106
+ cocoapods-4-3 :
107
+ needs : build-linux-swift-4
108
+ runs-on : macos-10.15
109
+ steps :
110
+ - uses : maxim-lobanov/setup-xcode@v1
111
+ with : {xcode-version: 10.3}
112
+ - uses : actions/checkout@v2
113
+ - run : pod lib lint --subspec=PromiseKit/CorePromise --fail-fast --swift-version=4.3
114
+
115
+ cocoapods-5-0 :
116
+ needs : build-linux-swift-5
117
+ runs-on : macos-10.15
118
+ steps :
119
+ - uses : maxim-lobanov/setup-xcode@v1
120
+ with : {xcode-version: 10.3}
121
+ - uses : actions/checkout@v2
122
+ - run : pod lib lint --subspec=PromiseKit/CorePromise --fail-fast --swift-version=5.0
123
+
124
+ cocoapods-5-1 :
125
+ needs : build-linux-swift-5
126
+ runs-on : macos-10.15
127
+ steps :
128
+ - uses : maxim-lobanov/setup-xcode@v1
129
+ with : {xcode-version: 11.2}
130
+ - uses : actions/checkout@v2
131
+ - run : pod lib lint --subspec=PromiseKit/CorePromise --fail-fast --swift-version=5.1
132
+
133
+ cocoapods-5-2 :
134
+ needs : build-linux-swift-5
135
+ runs-on : macos-10.15
136
+ steps :
137
+ - uses : maxim-lobanov/setup-xcode@v1
138
+ with : {xcode-version: 11.7}
139
+ - uses : actions/checkout@v2
140
+ - run : pod lib lint --subspec=PromiseKit/CorePromise --fail-fast --swift-version=5.2
141
+
142
+ cocoapods-5-3 :
143
+ needs : build-linux-swift-5
144
+ runs-on : macos-10.15
145
+ steps :
146
+ - uses : maxim-lobanov/setup-xcode@v1
147
+ with : {xcode-version: 12.3}
148
+ - uses : actions/checkout@v2
149
+ - run : pod lib lint --subspec=PromiseKit/CorePromise --fail-fast --swift-version=5.3
150
+
151
+ cocoapods-5-4 :
152
+ needs : build-linux-swift-5
153
+ runs-on : macos-10.15
154
+ steps :
155
+ - uses : maxim-lobanov/setup-xcode@v1
156
+ with : {xcode-version: ^12}
157
+ - uses : actions/checkout@v2
158
+ - run : pod lib lint --subspec=PromiseKit/CorePromise --fail-fast --swift-version=5.4
159
+
160
+ create-release :
161
+ runs-on : ubuntu-latest
162
+ needs :
163
+ - test
164
+ - carthage
165
+ - build-linux-swift-5
166
+ - cocoapods-5-4
167
+ steps :
168
+ - uses : jungwinter/split@v1
169
+ id : split
170
+ with :
171
+ seperator : ' /' # this is correct, the action is typo’d despite warning
172
+ msg : ${{ github.ref }}
173
+
174
+ - uses : actions/checkout@v2
175
+ with :
176
+ fetch-depth : 0 # zero means “all” (or push fails)
177
+
178
+ - name : Tag RC
179
+ run : |
180
+ git config user.name github-actions
181
+ git config user.email [email protected]
182
+ git tag rc/$v
183
+ git push origin rc/$v
184
+ env :
185
+ v : ${{ steps.split.outputs._3 }}
0 commit comments