Skip to content

Commit d4a6c84

Browse files
committed
ci: Document what makes certain tasks special
To increase coverage without drastically increasing CI resource usage, we have different CI tasks test different things (e.g. the linux tasks use sanitizers). Unfortunately that can create confusing situations where CI fails on some OS, but not others, without the problem appearing to be platform dependent. To, partially, address that, add a comment, prefixed with SPECIAL, to each task that we use to test in some non-default way. Reviewed-by: Tom Lane <tgl@sss.pgh.pa.us> Discussion: https://postgr.es/m/321570.1741195755@sss.pgh.pa.us
1 parent 0a2f5df commit d4a6c84

File tree

1 file changed

+29
-0
lines changed

1 file changed

+29
-0
lines changed

.cirrus.tasks.yml

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
#
33
# For instructions on how to enable the CI integration in a repository and
44
# further details, see src/tools/ci/README
5+
#
6+
#
7+
# NB: Different tasks intentionally test with different, non-default,
8+
# configurations, to increase the chance of catching problems. Each task with
9+
# non-obvious non-default documents their oddity at the top of the task,
10+
# prefixed by "SPECIAL:".
511

612

713
env:
@@ -55,6 +61,10 @@ on_failure_meson: &on_failure_meson
5561

5662
# To avoid unnecessarily spinning up a lot of VMs / containers for entirely
5763
# broken commits, have a minimal task that all others depend on.
64+
#
65+
# SPECIAL:
66+
# - Builds with --auto-features=disabled and thus almost no enabled
67+
# dependencies
5868
task:
5969
name: SanityCheck
6070

@@ -125,6 +135,11 @@ task:
125135
src/tools/ci/cores_backtrace.sh linux /tmp/cores
126136
127137
138+
# SPECIAL:
139+
# - Uses postgres specific CPPFLAGS that increase test coverage
140+
# - Specifies configuration options that test reading/writing/copying of node trees
141+
# - Specifies debug_parallel_query=regress, to catch related issues during CI
142+
# - Also runs tests against a running postgres instance, see test_running_script
128143
task:
129144
name: FreeBSD - Meson
130145

@@ -355,6 +370,7 @@ LINUX_MESON_FEATURES: &LINUX_MESON_FEATURES >-
355370
-Duuid=e2fs
356371

357372

373+
# Check SPECIAL in the matrix: below
358374
task:
359375
env:
360376
CPUS: 4
@@ -435,6 +451,10 @@ task:
435451
libcurl4-openssl-dev:i386 \
436452
437453
matrix:
454+
# SPECIAL:
455+
# - Uses address sanitizer, sanitizer failures are typically printed in
456+
# the server log
457+
# - Configures postgres with a small segment size
438458
- name: Linux - Debian Bookworm - Autoconf
439459

440460
env:
@@ -470,6 +490,10 @@ task:
470490
on_failure:
471491
<<: *on_failure_ac
472492

493+
# SPECIAL:
494+
# - Uses undefined behaviour and alignment sanitizers, sanitizer failures
495+
# are typically printed in the server log
496+
# - Test both 64bit and 32 bit builds
473497
- name: Linux - Debian Bookworm - Meson
474498

475499
env:
@@ -530,6 +554,11 @@ task:
530554
cores_script: src/tools/ci/cores_backtrace.sh linux /tmp/cores
531555

532556

557+
# NB: macOS is by far the most expensive OS to run CI for, therefore no
558+
# expensive additional checks should be added.
559+
#
560+
# SPECIAL:
561+
# - Enables --clone for pg_upgrade and pg_combinebackup
533562
task:
534563
name: macOS - Sonoma - Meson
535564

0 commit comments

Comments
 (0)