9
9
GCP_PROJECT :pg-ci-images
10
10
IMAGE_PROJECT :$GCP_PROJECT
11
11
CONTAINER_REPO :us-docker.pkg.dev/${GCP_PROJECT}/ci
12
+ DISK_SIZE :25
12
13
13
14
# The lower depth accelerates git clone. Use a bit of depth so that
14
15
# concurrent tasks and retrying older jobs have a chance of working.
27
28
PG_TEST_EXTRA :kerberos ldap ssl
28
29
29
30
31
+ # Define how to run various types of tasks.
32
+
33
+ # VMs provided by cirrus-ci. Each user has a limited number of "free" credits
34
+ # for testing.
35
+ cirrus_community_vm_template :&cirrus_community_vm_template
36
+ compute_engine_instance :
37
+ image_project :$IMAGE_PROJECT
38
+ image :family/$IMAGE_FAMILY
39
+ platform :$PLATFORM
40
+ cpu :$CPUS
41
+ disk :$DISK_SIZE
42
+
43
+
44
+ default_linux_task_template :&linux_task_template
45
+ env :
46
+ PLATFORM :linux
47
+ << :*cirrus_community_vm_template
48
+
49
+
50
+ default_freebsd_task_template :&freebsd_task_template
51
+ env :
52
+ PLATFORM :freebsd
53
+ << :*cirrus_community_vm_template
54
+
55
+
56
+ default_windows_task_template :&windows_task_template
57
+ env :
58
+ PLATFORM :windows
59
+ << :*cirrus_community_vm_template
60
+
61
+
62
+ # macos workers provided by cirrus-ci
63
+ default_macos_task_template :&macos_task_template
64
+ env :
65
+ PLATFORM :macos
66
+ macos_instance :
67
+ image :$IMAGE
68
+
69
+
30
70
# What files to preserve in case tests fail
31
71
on_failure :&on_failure
32
72
log_artifacts :
@@ -45,17 +85,14 @@ task:
45
85
CPUS :2
46
86
BUILD_JOBS :3
47
87
TEST_JOBS :3
88
+ IMAGE_FAMILY :pg-ci-freebsd-13
89
+ DISK_SIZE :50
48
90
49
91
CCACHE_DIR :/tmp/ccache_dir
50
92
51
- only_if : $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*freebsd.*'
93
+ << : *freebsd_task_template
52
94
53
- compute_engine_instance :
54
- image_project :$IMAGE_PROJECT
55
- image :family/pg-ci-freebsd-13
56
- platform :freebsd
57
- cpu :$CPUS
58
- disk :50
95
+ only_if :$CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*freebsd.*'
59
96
60
97
sysinfo_script :|
61
98
id
@@ -152,19 +189,16 @@ task:
152
189
CPUS :4
153
190
BUILD_JOBS :4
154
191
TEST_JOBS :8 # experimentally derived to be a decent choice
192
+ IMAGE_FAMILY :pg-ci-bullseye
155
193
156
194
CCACHE_DIR :/tmp/ccache_dir
157
195
DEBUGINFOD_URLS :" https://debuginfod.debian.net"
158
196
159
197
LINUX_CONFIGURE_FEATURES :*LINUX_CONFIGURE_FEATURES
160
198
161
- only_if : $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*linux.*'
199
+ << : *linux_task_template
162
200
163
- compute_engine_instance :
164
- image_project :$IMAGE_PROJECT
165
- image :family/pg-ci-bullseye
166
- platform :linux
167
- cpu :$CPUS
201
+ only_if :$CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*linux.*'
168
202
169
203
ccache_cache :
170
204
folder :${CCACHE_DIR}
@@ -228,15 +262,15 @@ task:
228
262
# work OK. See
229
263
# https://postgr.es/m/20220927040208.l3shfcidovpzqxfh%40awork3.anarazel.de
230
264
TEST_JOBS :8
265
+ IMAGE :ghcr.io/cirruslabs/macos-ventura-base:latest
231
266
232
267
CIRRUS_WORKING_DIR :${HOME}/pgsql/
233
268
CCACHE_DIR :${HOME}/ccache
234
269
MACPORTS_CACHE :${HOME}/macports-cache
235
270
236
- only_if : $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*(macos|darwin|osx).*'
271
+ << : *macos_task_template
237
272
238
- macos_instance :
239
- image :ghcr.io/cirruslabs/macos-ventura-base:latest
273
+ only_if :$CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*(macos|darwin|osx).*'
240
274
241
275
sysinfo_script :|
242
276
id
@@ -360,6 +394,8 @@ task:
360
394
# build
361
395
MSBFLAGS :-m -verbosity:minimal "-consoleLoggerParameters:Summary;ForceNoAlign" /p:TrackFileAccess=false -nologo
362
396
397
+ DISK_SIZE :50
398
+
363
399
# If tests hang forever, cirrus eventually times out. In that case log
364
400
# output etc is not uploaded, making the problem hard to debug. Of course
365
401
# tests internally should have shorter timeouts, but that's proven to not
@@ -382,14 +418,11 @@ task:
382
418
# given that it explicitly prevents crash dumps from working...
383
419
# 0x8001 is SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX
384
420
CIRRUS_WINDOWS_ERROR_MODE :0x8001
421
+ IMAGE_FAMILY :pg-ci-windows-ci-vs-2019
385
422
386
- only_if : $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*windows.*'
423
+ << : *windows_task_template
387
424
388
- compute_engine_instance :
389
- image_project :$IMAGE_PROJECT
390
- image :family/pg-ci-windows-ci-vs-2019
391
- platform :windows
392
- cpu :$CPUS
425
+ only_if :$CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*windows.*'
393
426
394
427
sysinfo_script :|
395
428
chcp