| ... |
... |
@@ -122,6 +122,67 @@ workflow: |
|
122
|
122
|
- CMUCL=../../dist/bin/lisp ./run-cmucl.sh
|
|
123
|
123
|
- ../../snapshot/bin/lisp -load report
|
|
124
|
124
|
|
|
|
125
|
+# Rules shared by optional/manual jobs (static analyzer, markdown-link-check).
|
|
|
126
|
+.optional-rules:
|
|
|
127
|
+ rules:
|
|
|
128
|
+ - if: $CI_PIPELINE_SOURCE == "schedule"
|
|
|
129
|
+ - if: $RUN_CHECKS
|
|
|
130
|
+ - when: manual
|
|
|
131
|
+ allow_failure: true
|
|
|
132
|
+
|
|
|
133
|
+# Per-platform base jobs: capture tags and the needs chain so individual
|
|
|
134
|
+# jobs don't have to repeat them.
|
|
|
135
|
+.linux:
|
|
|
136
|
+ tags:
|
|
|
137
|
+ - linux
|
|
|
138
|
+
|
|
|
139
|
+.linux-needs-install:
|
|
|
140
|
+ extends: .linux
|
|
|
141
|
+ needs:
|
|
|
142
|
+ - job: linux:install
|
|
|
143
|
+ artifacts: true
|
|
|
144
|
+
|
|
|
145
|
+.linux-needs-build:
|
|
|
146
|
+ extends: .linux
|
|
|
147
|
+ needs:
|
|
|
148
|
+ # Needs artifacts from build (dist/)
|
|
|
149
|
+ - job: linux:build
|
|
|
150
|
+ artifacts: true
|
|
|
151
|
+
|
|
|
152
|
+.osx:
|
|
|
153
|
+ tags:
|
|
|
154
|
+ - macos-virtualbox
|
|
|
155
|
+
|
|
|
156
|
+.osx-needs-install:
|
|
|
157
|
+ extends: .osx
|
|
|
158
|
+ needs:
|
|
|
159
|
+ - job: osx:install
|
|
|
160
|
+ artifacts: true
|
|
|
161
|
+
|
|
|
162
|
+.osx-needs-build:
|
|
|
163
|
+ extends: .osx
|
|
|
164
|
+ needs:
|
|
|
165
|
+ # Needs artifacts from build (dist/)
|
|
|
166
|
+ - job: osx:build
|
|
|
167
|
+ artifacts: true
|
|
|
168
|
+
|
|
|
169
|
+.ubuntu:
|
|
|
170
|
+ tags:
|
|
|
171
|
+ - ubuntu
|
|
|
172
|
+
|
|
|
173
|
+.ubuntu-needs-install:
|
|
|
174
|
+ extends: .ubuntu
|
|
|
175
|
+ needs:
|
|
|
176
|
+ - job: ubuntu:install
|
|
|
177
|
+ artifacts: true
|
|
|
178
|
+
|
|
|
179
|
+.ubuntu-needs-build:
|
|
|
180
|
+ extends: .ubuntu
|
|
|
181
|
+ needs:
|
|
|
182
|
+ # Needs artifacts from build (dist/)
|
|
|
183
|
+ - job: ubuntu:build
|
|
|
184
|
+ artifacts: true
|
|
|
185
|
+
|
|
125
|
186
|
stages:
|
|
126
|
187
|
- install
|
|
127
|
188
|
- build
|
| ... |
... |
@@ -135,29 +196,21 @@ cache: |
|
135
|
196
|
|
|
136
|
197
|
#### Linux jobs ####
|
|
137
|
198
|
linux:install:
|
|
138
|
|
- extends: .install
|
|
139
|
|
- tags:
|
|
140
|
|
- - linux
|
|
|
199
|
+ extends: [.install, .linux]
|
|
141
|
200
|
variables:
|
|
142
|
201
|
osname: "linux"
|
|
143
|
202
|
CURL: "curl"
|
|
144
|
203
|
|
|
145
|
204
|
linux:build:
|
|
146
|
|
- extends: .build
|
|
147
|
|
- tags:
|
|
148
|
|
- - linux
|
|
149
|
|
- needs:
|
|
150
|
|
- - job: linux:install
|
|
151
|
|
- artifacts: true
|
|
|
205
|
+ extends: [.build, .linux-needs-install]
|
|
152
|
206
|
variables:
|
|
153
|
207
|
# Fedora 41 must build with gcc because the clang build fails some
|
|
154
|
208
|
# ansi-tests. See [#469].
|
|
155
|
209
|
CONFIG: "x86_linux"
|
|
156
|
210
|
|
|
157
|
211
|
linux:cross-build:
|
|
|
212
|
+ extends: .linux-needs-install
|
|
158
|
213
|
stage: build
|
|
159
|
|
- tags:
|
|
160
|
|
- - linux
|
|
161
|
214
|
artifacts:
|
|
162
|
215
|
paths:
|
|
163
|
216
|
- xdist/
|
| ... |
... |
@@ -169,9 +222,6 @@ linux:cross-build: |
|
169
|
222
|
variables:
|
|
170
|
223
|
# This must match the config used for the linux build!
|
|
171
|
224
|
CONFIG: "x86_linux"
|
|
172
|
|
- needs:
|
|
173
|
|
- - job: linux:install
|
|
174
|
|
- artifacts: true
|
|
175
|
225
|
script:
|
|
176
|
226
|
- bin/create-target.sh xtarget $CONFIG
|
|
177
|
227
|
- bin/create-target.sh xcross $CONFIG
|
| ... |
... |
@@ -180,26 +230,14 @@ linux:cross-build: |
|
180
|
230
|
- bin/make-dist.sh -I xdist xlinux-4
|
|
181
|
231
|
|
|
182
|
232
|
linux:test:
|
|
183
|
|
- extends: .unit-test
|
|
184
|
|
- tags:
|
|
185
|
|
- - linux
|
|
186
|
|
- needs:
|
|
187
|
|
- # Needs artifacts from build (dist/)
|
|
188
|
|
- - job: linux:build
|
|
189
|
|
- artifacts: true
|
|
|
233
|
+ extends: [.unit-test, .linux-needs-build]
|
|
190
|
234
|
|
|
191
|
235
|
linux:exec-test:
|
|
192
|
|
- extends: .exec-test
|
|
193
|
|
- tags:
|
|
194
|
|
- - linux
|
|
195
|
|
- needs:
|
|
196
|
|
- - job: linux:build
|
|
197
|
|
- artifacts: true
|
|
|
236
|
+ extends: [.exec-test, .linux-needs-build]
|
|
198
|
237
|
|
|
199
|
238
|
linux:cross-test:
|
|
|
239
|
+ extends: .linux
|
|
200
|
240
|
stage: test
|
|
201
|
|
- tags:
|
|
202
|
|
- - linux
|
|
203
|
241
|
artifacts:
|
|
204
|
242
|
paths:
|
|
205
|
243
|
- ansi-test/test.out
|
| ... |
... |
@@ -212,18 +250,10 @@ linux:cross-test: |
|
212
|
250
|
- bin/run-unit-tests.sh -l xdist/bin/lisp 2>&1 | tee cross-test.log
|
|
213
|
251
|
|
|
214
|
252
|
linux:ansi-test:
|
|
215
|
|
- extends: .ansi-test
|
|
216
|
|
- tags:
|
|
217
|
|
- - linux
|
|
218
|
|
- needs:
|
|
219
|
|
- # Needs artifacts from build (dist/)
|
|
220
|
|
- - job: linux:build
|
|
221
|
|
- artifacts: true
|
|
|
253
|
+ extends: [.ansi-test, .linux-needs-build]
|
|
222
|
254
|
|
|
223
|
255
|
linux:benchmark:
|
|
224
|
|
- extends: .benchmark
|
|
225
|
|
- tags:
|
|
226
|
|
- - linux
|
|
|
256
|
+ extends: [.benchmark, .linux]
|
|
227
|
257
|
needs:
|
|
228
|
258
|
# Needs artifacts from install (snapshot/) and build (dist/)
|
|
229
|
259
|
- job: linux:install
|
| ... |
... |
@@ -232,53 +262,27 @@ linux:benchmark: |
|
232
|
262
|
|
|
233
|
263
|
#### OSX (Mac) jobs ####
|
|
234
|
264
|
osx:install:
|
|
235
|
|
- extends: .install
|
|
236
|
|
- tags:
|
|
237
|
|
- - macos-virtualbox
|
|
|
265
|
+ extends: [.install, .osx]
|
|
238
|
266
|
variables:
|
|
239
|
267
|
osname: "darwin"
|
|
240
|
268
|
CURL: "/opt/local/bin/curl"
|
|
241
|
269
|
|
|
242
|
270
|
osx:build:
|
|
243
|
|
- extends: .build
|
|
244
|
|
- tags:
|
|
245
|
|
- - macos-virtualbox
|
|
246
|
|
- needs:
|
|
247
|
|
- - job: osx:install
|
|
248
|
|
- artifacts: true
|
|
|
271
|
+ extends: [.build, .osx-needs-install]
|
|
249
|
272
|
variables:
|
|
250
|
273
|
CONFIG: "x86_darwin"
|
|
251
|
274
|
|
|
252
|
275
|
osx:test:
|
|
253
|
|
- extends: .unit-test
|
|
254
|
|
- tags:
|
|
255
|
|
- - macos-virtualbox
|
|
256
|
|
- needs:
|
|
257
|
|
- # Needs artifacts from build (dist/)
|
|
258
|
|
- - job: osx:build
|
|
259
|
|
- artifacts: true
|
|
|
276
|
+ extends: [.unit-test, .osx-needs-build]
|
|
260
|
277
|
|
|
261
|
278
|
osx:exec-test:
|
|
262
|
|
- extends: .exec-test
|
|
263
|
|
- tags:
|
|
264
|
|
- - macos-virtualbox
|
|
265
|
|
- needs:
|
|
266
|
|
- - job: osx:build
|
|
267
|
|
- artifacts: true
|
|
|
279
|
+ extends: [.exec-test, .osx-needs-build]
|
|
268
|
280
|
|
|
269
|
281
|
osx:ansi-test:
|
|
270
|
|
- extends: .ansi-test
|
|
271
|
|
- tags:
|
|
272
|
|
- - macos-virtualbox
|
|
273
|
|
- needs:
|
|
274
|
|
- # Needs artifacts from build (dist/)
|
|
275
|
|
- - job: osx:build
|
|
276
|
|
- artifacts: true
|
|
|
282
|
+ extends: [.ansi-test, .osx-needs-build]
|
|
277
|
283
|
|
|
278
|
284
|
osx:benchmark:
|
|
279
|
|
- extends: .benchmark
|
|
280
|
|
- tags:
|
|
281
|
|
- - macos-virtualbox
|
|
|
285
|
+ extends: [.benchmark, .osx]
|
|
282
|
286
|
needs:
|
|
283
|
287
|
# Needs artifacts from install (snapshot/) and build (dist/)
|
|
284
|
288
|
- job: osx:install
|
| ... |
... |
@@ -288,21 +292,12 @@ osx:benchmark: |
|
288
|
292
|
# Optional job that runs the static analyzer. It needs the files from
|
|
289
|
293
|
# the linux-4 directory built in the linux:build job.
|
|
290
|
294
|
linux:static-analyzer:
|
|
|
295
|
+ extends: [.optional-rules, .linux-needs-build]
|
|
291
|
296
|
stage: analyze
|
|
292
|
|
- tags:
|
|
293
|
|
- - linux
|
|
294
|
297
|
artifacts:
|
|
295
|
298
|
when: always
|
|
296
|
299
|
paths:
|
|
297
|
300
|
- analyzer.log
|
|
298
|
|
- needs:
|
|
299
|
|
- - job: linux:build
|
|
300
|
|
- artifacts: true
|
|
301
|
|
- rules:
|
|
302
|
|
- - if: $CI_PIPELINE_SOURCE == "schedule"
|
|
303
|
|
- - if: $RUN_CHECKS
|
|
304
|
|
- - when: manual
|
|
305
|
|
- allow_failure: true
|
|
306
|
301
|
script:
|
|
307
|
302
|
# Analysis can generate huge amounts of output. For now just save
|
|
308
|
303
|
# the results to the log file instead of also having it go to the
|
| ... |
... |
@@ -313,20 +308,13 @@ linux:static-analyzer: |
|
313
|
308
|
|
|
314
|
309
|
#### OpenSUSE jobs ####
|
|
315
|
310
|
ubuntu:install:
|
|
316
|
|
- extends: .install
|
|
317
|
|
- tags:
|
|
318
|
|
- - ubuntu
|
|
|
311
|
+ extends: [.install, .ubuntu]
|
|
319
|
312
|
variables:
|
|
320
|
313
|
osname: "linux"
|
|
321
|
314
|
CURL: "curl"
|
|
322
|
315
|
|
|
323
|
316
|
ubuntu:build:
|
|
324
|
|
- extends: .build
|
|
325
|
|
- tags:
|
|
326
|
|
- - ubuntu
|
|
327
|
|
- needs:
|
|
328
|
|
- - job: ubuntu:install
|
|
329
|
|
- artifacts: true
|
|
|
317
|
+ extends: [.build, .ubuntu-needs-install]
|
|
330
|
318
|
variables:
|
|
331
|
319
|
# Build with gcc on Ubuntu 25.10. It produces a lisp than passes
|
|
332
|
320
|
# the ansi-tests. Clang seems to fail the ansi-tests WRITE.1,
|
| ... |
... |
@@ -334,22 +322,10 @@ ubuntu:build: |
|
334
|
322
|
CONFIG: "x86_linux"
|
|
335
|
323
|
|
|
336
|
324
|
ubuntu:test:
|
|
337
|
|
- extends: .unit-test
|
|
338
|
|
- tags:
|
|
339
|
|
- - ubuntu
|
|
340
|
|
- needs:
|
|
341
|
|
- # Needs artifacts from build (dist/)
|
|
342
|
|
- - job: ubuntu:build
|
|
343
|
|
- artifacts: true
|
|
|
325
|
+ extends: [.unit-test, .ubuntu-needs-build]
|
|
344
|
326
|
|
|
345
|
327
|
ubuntu:ansi-test:
|
|
346
|
|
- extends: .ansi-test
|
|
347
|
|
- tags:
|
|
348
|
|
- - ubuntu
|
|
349
|
|
- needs:
|
|
350
|
|
- # Needs artifacts from build (dist/)
|
|
351
|
|
- - job: ubuntu:build
|
|
352
|
|
- artifacts: true
|
|
|
328
|
+ extends: [.ansi-test, .ubuntu-needs-build]
|
|
353
|
329
|
|
|
354
|
330
|
# Optional job that runs the markdown link checker. This is optional
|
|
355
|
331
|
# because it's very slow, of course; you have to run it manually.
|
| ... |
... |
@@ -357,21 +333,14 @@ ubuntu:ansi-test: |
|
357
|
333
|
# From https://github.com/tcort/markdown-link-check
|
|
358
|
334
|
# Checks links on the wiki pages whenever any wiki markdown pages change.
|
|
359
|
335
|
markdown-link-check:
|
|
|
336
|
+ extends: [.optional-rules, .linux]
|
|
360
|
337
|
stage: markdown-link-check
|
|
361
|
338
|
|
|
362
|
|
- # Only the linux runner has markdown-link-check installed
|
|
363
|
|
- tags:
|
|
364
|
|
- - linux
|
|
365
|
339
|
# It's ok if this fails; we don't want to declare the entire
|
|
366
|
340
|
# pipeline as having failed.
|
|
367
|
341
|
allow_failure: true
|
|
368
|
342
|
# This job doesn't depend on any others.
|
|
369
|
343
|
needs: []
|
|
370
|
|
- rules:
|
|
371
|
|
- - if: $CI_PIPELINE_SOURCE == "schedule"
|
|
372
|
|
- - if: $RUN_CHECKS
|
|
373
|
|
- - when: manual
|
|
374
|
|
- allow_failure: true
|
|
375
|
344
|
script:
|
|
376
|
345
|
# Check links in the main repo
|
|
377
|
346
|
- find . -name \*.md -print0 | xargs -0 -n1 markdown-link-check
|
| ... |
... |
@@ -380,3 +349,5 @@ markdown-link-check: |
|
380
|
349
|
# https://gitlab.com/gitlab-org/gitlab/-/issues/17845.
|
|
381
|
350
|
- git clone https://gitlab.common-lisp.net/cmucl/cmucl.wiki.git
|
|
382
|
351
|
- find cmucl.wiki -name \*.md -print0 | xargs -0 -n1 markdown-link-check
|
|
|
352
|
+
|
|
|
353
|
+ |