11
11
runs-on : ubuntu-latest
12
12
outputs :
13
13
enabled : ${{ steps.check-ref.outputs.enabled }}${{ steps.skip-if-redundant.outputs.enabled }}
14
+ skip_concurrent : ${{ steps.check-ref.outputs.skip_concurrent }}
14
15
steps :
15
16
- name : try to clone ci-config branch
16
17
run : |
34
35
then
35
36
enabled=no
36
37
fi
38
+
39
+ skip_concurrent=yes
40
+ if test -x config-repo/ci/config/skip-concurrent &&
41
+ ! config-repo/ci/config/skip-concurrent '${{ github.ref }}'
42
+ then
43
+ skip_concurrent=no
44
+ fi
37
45
echo "enabled=$enabled" >>$GITHUB_OUTPUT
46
+ echo "skip_concurrent=$skip_concurrent" >>$GITHUB_OUTPUT
38
47
- name : skip if the commit or tree was already tested
39
48
id : skip-if-redundant
40
49
uses : actions/github-script@v6
82
91
needs : ci-config
83
92
if : needs.ci-config.outputs.enabled == 'yes'
84
93
runs-on : windows-latest
94
+ concurrency :
95
+ group : windows-build-${{ github.ref }}
96
+ cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
85
97
steps :
86
98
- uses : actions/checkout@v3
87
99
- uses : git-for-windows/setup-git-for-windows-sdk@v1
@@ -101,11 +113,14 @@ jobs:
101
113
windows-test :
102
114
name : win test
103
115
runs-on : windows-latest
104
- needs : [windows-build]
116
+ needs : [ci-config, windows-build]
105
117
strategy :
106
118
fail-fast : false
107
119
matrix :
108
120
nr : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
121
+ concurrency :
122
+ group : windows-test-${{ matrix.nr }}-${{ github.ref }}
123
+ cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
109
124
steps :
110
125
- name : download tracked files and build artifacts
111
126
uses : actions/download-artifact@v3
@@ -137,6 +152,9 @@ jobs:
137
152
NO_PERL : 1
138
153
GIT_CONFIG_PARAMETERS : " 'user.name=CI' 'user.email=ci@git'"
139
154
runs-on : windows-latest
155
+ concurrency :
156
+ group : vs-build-${{ github.ref }}
157
+ cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
140
158
steps :
141
159
- uses : actions/checkout@v3
142
160
- uses : git-for-windows/setup-git-for-windows-sdk@v1
@@ -184,11 +202,14 @@ jobs:
184
202
vs-test :
185
203
name : win+VS test
186
204
runs-on : windows-latest
187
- needs : vs-build
205
+ needs : [ci-config, vs-build]
188
206
strategy :
189
207
fail-fast : false
190
208
matrix :
191
209
nr : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
210
+ concurrency :
211
+ group : vs-test-${{ matrix.nr }}-${{ github.ref }}
212
+ cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
192
213
steps :
193
214
- uses : git-for-windows/setup-git-for-windows-sdk@v1
194
215
- name : download tracked files and build artifacts
@@ -218,6 +239,9 @@ jobs:
218
239
name : ${{matrix.vector.jobname}} (${{matrix.vector.pool}})
219
240
needs : ci-config
220
241
if : needs.ci-config.outputs.enabled == 'yes'
242
+ concurrency :
243
+ group : ${{ matrix.vector.jobname }}-${{ matrix.vector.pool }}-${{ github.ref }}
244
+ cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
221
245
strategy :
222
246
fail-fast : false
223
247
matrix :
@@ -278,6 +302,9 @@ jobs:
278
302
name : ${{matrix.vector.jobname}} (${{matrix.vector.image}})
279
303
needs : ci-config
280
304
if : needs.ci-config.outputs.enabled == 'yes'
305
+ concurrency :
306
+ group : dockerized-${{ matrix.vector.jobname }}-${{ matrix.vector.image }}-${{ github.ref }}
307
+ cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
281
308
strategy :
282
309
fail-fast : false
283
310
matrix :
@@ -320,6 +347,9 @@ jobs:
320
347
env :
321
348
jobname : StaticAnalysis
322
349
runs-on : ubuntu-22.04
350
+ concurrency :
351
+ group : static-analysis-${{ github.ref }}
352
+ cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
323
353
steps :
324
354
- uses : actions/checkout@v3
325
355
- run : ci/install-dependencies.sh
@@ -331,6 +361,9 @@ jobs:
331
361
env :
332
362
jobname : sparse
333
363
runs-on : ubuntu-20.04
364
+ concurrency :
365
+ group : sparse-${{ github.ref }}
366
+ cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
334
367
steps :
335
368
- name : Download a current `sparse` package
336
369
# Ubuntu's `sparse` version is too old for us
@@ -349,6 +382,9 @@ jobs:
349
382
name : documentation
350
383
needs : ci-config
351
384
if : needs.ci-config.outputs.enabled == 'yes'
385
+ concurrency :
386
+ group : documentation-${{ github.ref }}
387
+ cancel-in-progress : ${{ needs.ci-config.outputs.skip_concurrent == 'yes' }}
352
388
env :
353
389
jobname : Documentation
354
390
runs-on : ubuntu-latest
0 commit comments