@@ -214,6 +214,84 @@ task:
214
214
cores_script : src/tools/ci/cores_backtrace.sh freebsd /tmp/cores
215
215
216
216
217
+ task :
218
+ depends_on : SanityCheck
219
+
220
+ env :
221
+ CPUS : 2
222
+ BUILD_JOBS : 3
223
+ TEST_JOBS : 3
224
+
225
+ CIRRUS_WORKING_DIR : /home/postgres/postgres
226
+ CCACHE_DIR : /tmp/ccache_dir
227
+
228
+ PATH : /usr/sbin:$PATH
229
+
230
+ # Postgres interprets LANG as a 'en_US.UTF-8' but it is 'C', then
231
+ # Postgres tries to set 'LC_COLLATE' to 'en_US.UTF-8' but it is not
232
+ # changeable. Initdb fails because of that. So, LANG is forced to be 'C'.
233
+ LANG : " C"
234
+ LC_ALL : " C"
235
+
236
+ matrix :
237
+ - name : NetBSD - 9 - Meson
238
+ only_if : $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*netbsd.*'
239
+ env :
240
+ IMAGE_FAMILY : pg-ci-netbsd-postgres-9-3
241
+ INCLUDE_DIRS : -Dextra_lib_dirs=/usr/pkg/lib -Dextra_include_dirs=/usr/pkg/include
242
+ << : *netbsd_task_template
243
+
244
+ - name : OpenBSD - 7 - Meson
245
+ only_if : $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*openbsd.*'
246
+ env :
247
+ IMAGE_FAMILY : pg-ci-openbsd-postgres-7-3
248
+ INCLUDE_DIRS : -Dextra_include_dirs=/usr/local/include -Dextra_lib_dirs=/usr/local/lib
249
+ UUID : -Duuid=e2fs
250
+ << : *openbsd_task_template
251
+
252
+ sysinfo_script : |
253
+ locale
254
+ id
255
+ uname -a
256
+ ulimit -a -H && ulimit -a -S
257
+ export
258
+
259
+ ccache_cache :
260
+ folder : $CCACHE_DIR
261
+
262
+ create_user_script : |
263
+ useradd postgres
264
+ chown -R postgres:users /home/postgres
265
+ mkdir -p ${CCACHE_DIR}
266
+ chown -R postgres:users ${CCACHE_DIR}
267
+
268
+ # -Duuid=bsd is not set since 'bsd' uuid option
269
+ # is not working on netBSD & openBSD. See
270
+ # https://www.postgresql.org/message-id/[email protected]
271
+ # And other uuid options are not available on netBSD
272
+ configure_script : |
273
+ su postgres <<-EOF
274
+ meson setup \
275
+ --buildtype debug \
276
+ -Dcassert=true -Dssl=openssl ${UUID} \
277
+ -DPG_TEST_EXTRA="$PG_TEST_EXTRA" \
278
+ ${INCLUDE_DIRS} \
279
+ build
280
+ EOF
281
+
282
+ build_script : su postgres -c 'ninja -C build -j${BUILD_JOBS}'
283
+ upload_caches : ccache
284
+
285
+ test_world_script : |
286
+ su postgres <<-EOF
287
+ ulimit -c unlimited
288
+ meson test $MTEST_ARGS --num-processes ${TEST_JOBS}
289
+ EOF
290
+
291
+ on_failure :
292
+ << : *on_failure_meson
293
+
294
+
217
295
# configure feature flags, shared between the task running the linux tests and
218
296
# the CompilerWarnings task
219
297
LINUX_CONFIGURE_FEATURES : &LINUX_CONFIGURE_FEATURES >-
@@ -239,6 +317,22 @@ LINUX_MESON_FEATURES: &LINUX_MESON_FEATURES >-
239
317
-Duuid=e2fs
240
318
241
319
320
+ # configure preparation scripts, shared between tasks running the linux tests
321
+ linux_preparation_scripts_template : &linux_preparation_scripts_template
322
+ sysinfo_script : |
323
+ id
324
+ uname -a
325
+ cat /proc/cmdline
326
+ ulimit -a -H && ulimit -a -S
327
+ export
328
+ create_user_script : |
329
+ useradd -m -U postgres
330
+ chown -R postgres:postgres .
331
+ mkdir -p ${CCACHE_DIR}
332
+ chown -R postgres:postgres ${CCACHE_DIR}
333
+ su postgres -c "ulimit -l -H && ulimit -l -S"
334
+
335
+
242
336
task :
243
337
env :
244
338
CPUS : 4
@@ -287,19 +381,9 @@ task:
287
381
ccache_cache :
288
382
folder : ${CCACHE_DIR}
289
383
290
- sysinfo_script : |
291
- id
292
- uname -a
293
- cat /proc/cmdline
294
- ulimit -a -H && ulimit -a -S
295
- export
296
- create_user_script : |
297
- useradd -m postgres
298
- chown -R postgres:postgres .
299
- mkdir -p ${CCACHE_DIR}
300
- chown -R postgres:postgres ${CCACHE_DIR}
384
+ set_limits_script : |
301
385
echo '* - memlock 134217728' > /etc/security/limits.d/postgres.conf
302
- su postgres -c "ulimit -l -H && ulimit -l -S"
386
+ << : *linux_preparation_scripts_template
303
387
setup_core_files_script : |
304
388
mkdir -m 770 /tmp/cores
305
389
chown root:postgres /tmp/cores
@@ -352,7 +436,13 @@ task:
352
436
on_failure :
353
437
<< : *on_failure_ac
354
438
355
- - name : Linux - Debian Bookworm - Meson
439
+ - matrix :
440
+ - name : Linux - Debian Bookworm - Meson
441
+ - name : Linux - Debian Sid - Meson
442
+ trigger_type : manual
443
+
444
+ env :
445
+ IMAGE_FAMILY : pg-ci-sid
356
446
357
447
env :
358
448
CCACHE_MAXSIZE : " 400M" # tests two different builds
@@ -379,7 +469,7 @@ task:
379
469
${LINUX_MESON_FEATURES} \
380
470
-Dllvm=disabled \
381
471
--pkg-config-path /usr/lib/i386-linux-gnu/pkgconfig/ \
382
- -DPERL=perl5.36- i386-linux-gnu \
472
+ -DPERL=$(echo /usr/bin/perl* i386-linux-gnu) \
383
473
-DPG_TEST_EXTRA="$PG_TEST_EXTRA" \
384
474
build-32
385
475
EOF
@@ -415,7 +505,87 @@ task:
415
505
416
506
417
507
task :
418
- name : macOS - Sonoma - Meson
508
+ env :
509
+ CPUS : 4
510
+ BUILD_JOBS : 4
511
+ TEST_JOBS : 8 # experimentally derived to be a decent choice
512
+
513
+ CCACHE_DIR : /tmp/ccache_dir
514
+ DEBUGINFOD_URLS : ${DEBUGINFO}
515
+
516
+ TCL_DIR : /usr/lib64/
517
+ UUID : e2fs
518
+
519
+ CFLAGS : " -Og -ggdb"
520
+ CXXFLAGS : " -Og -ggdb"
521
+
522
+ LINUX_CONFIGURE_FEATURES : *LINUX_CONFIGURE_FEATURES
523
+
524
+ depends_on : SanityCheck
525
+ only_if : $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*linux.*'
526
+
527
+ container :
528
+ dockerfile : ${DOCKERFILE_PATH}
529
+ cpu : $CPUS
530
+ memory : 4G
531
+
532
+ ccache_cache :
533
+ folder : ${CCACHE_DIR}
534
+
535
+ << : *linux_preparation_scripts_template
536
+
537
+ matrix :
538
+ - name : Linux - OpenSuse Tumbleweed (LLVM) - Meson
539
+ env :
540
+ DOCKERFILE_PATH : src/tools/ci/docker/linux_opensuse_tumbleweed
541
+ DEBUGINFO : " https://debuginfod.opensuse.org/"
542
+ LLVM : -Dllvm=enabled
543
+
544
+ - trigger_type : manual
545
+ matrix :
546
+ - name : Linux - Fedora Rawhide - Meson
547
+ env :
548
+ DOCKERFILE_PATH : src/tools/ci/docker/linux_fedora_rawhide
549
+ DEBUGINFO : " https://debuginfod.fedoraproject.org/"
550
+
551
+ # FIXME: figure out how to build RHEL like env
552
+ # - name: Linux - Centos 8 - Meson
553
+ # env:
554
+ # DOCKERFILE_PATH: src/tools/ci/docker/linux_centos8
555
+ # DEBUGINFO: "http://debuginfo.centos.org/"
556
+ #
557
+ # - name: Linux - Centos 7 - Meson
558
+ # env:
559
+ # DOCKERFILE_PATH: src/tools/ci/docker/linux_centos7
560
+ # DEBUGINFO: "http://debuginfo.centos.org/"
561
+
562
+ configure_script : |
563
+ su postgres <<-EOF
564
+ meson setup \
565
+ --buildtype debug \
566
+ -Dcassert=true -Dssl=openssl -Duuid=e2fs ${LLVM} \
567
+ -DPG_TEST_EXTRA="$PG_TEST_EXTRA" \
568
+ build
569
+ EOF
570
+
571
+ build_script : su postgres -c 'ninja -C build -j${BUILD_JOBS}'
572
+ upload_caches : ccache
573
+
574
+ test_world_script : |
575
+ su postgres <<-EOF
576
+ ulimit -c unlimited
577
+ meson test $MTEST_ARGS --num-processes ${TEST_JOBS}
578
+ EOF
579
+
580
+ on_failure :
581
+ << : *on_failure_meson
582
+ crashlog_artifacts :
583
+ path : " crashlog-*.txt"
584
+ type : text/plain
585
+
586
+
587
+ task :
588
+ name : macOS - Ventura - Meson
419
589
420
590
env :
421
591
CPUS : 4 # always get that much for cirrusci macOS instances
0 commit comments