@@ -216,6 +216,98 @@ task:
216216 cores_script : src/tools/ci/cores_backtrace.sh freebsd /tmp/cores
217217
218218
219+ task :
220+ depends_on : SanityCheck
221+ trigger_type : manual
222+
223+ env :
224+ # Below are experimentally derived to be a decent choice.
225+ CPUS : 4
226+ BUILD_JOBS : 8
227+ TEST_JOBS : 8
228+
229+ # Default working directory is /tmp, but its total size (1.2 GB) is not
230+ # enough, so different working and cache directory are set.
231+ CIRRUS_WORKING_DIR : /home/postgres/postgres
232+ CCACHE_DIR : /home/postgres/cache
233+
234+ PATH : /usr/sbin:$PATH
235+
236+ matrix :
237+ - name : NetBSD - 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
241+ PKGCONFIG_PATH : ' /usr/lib/pkgconfig:/usr/pkg/lib/pkgconfig'
242+ # initdb fails with: 'invalid locale settings' error on NetBSD.
243+ # Force 'LANG' and 'LC_*' variables to be 'C'.
244+ # See https://postgr.es/m/2490325.1734471752%40sss.pgh.pa.us
245+ LANG : " C"
246+ LC_ALL : " C"
247+ # -Duuid is not set for the NetBSD, see the comment below, above
248+ # configure_script, for more information.
249+ setup_additional_packages_script : |
250+ #pkgin -y install ...
251+ << : *netbsd_task_template
252+
253+ - name : OpenBSD - Meson
254+ only_if : $CIRRUS_CHANGE_MESSAGE !=~ '.*\nci-os-only:.*' || $CIRRUS_CHANGE_MESSAGE =~ '.*\nci-os-only:[^\n]*openbsd.*'
255+ env :
256+ IMAGE_FAMILY : pg-ci-openbsd-postgres
257+ PKGCONFIG_PATH : ' /usr/lib/pkgconfig:/usr/local/lib/pkgconfig'
258+ UUID : -Duuid=e2fs
259+ TCL : -Dtcl_version=tcl86
260+ setup_additional_packages_script : |
261+ #pkg_add -I ...
262+ << : *openbsd_task_template
263+
264+ sysinfo_script : |
265+ locale
266+ id
267+ uname -a
268+ ulimit -a -H && ulimit -a -S
269+ env
270+
271+ ccache_cache :
272+ folder : $CCACHE_DIR
273+
274+ create_user_script : |
275+ useradd postgres
276+ chown -R postgres:users /home/postgres
277+ mkdir -p ${CCACHE_DIR}
278+ chown -R postgres:users ${CCACHE_DIR}
279+
280+ # -Duuid=bsd is not set since 'bsd' uuid option
281+ # is not working on NetBSD & OpenBSD. See
282+ # https://www.postgresql.org/message-id/17358-89806e7420797025@postgresql.org
283+ # And other uuid options are not available on NetBSD.
284+ configure_script : |
285+ su postgres <<-EOF
286+ meson setup \
287+ --buildtype=debugoptimized \
288+ --pkg-config-path ${PKGCONFIG_PATH} \
289+ -Dcassert=true -Dinjection_points=true \
290+ -Dssl=openssl ${UUID} ${TCL} \
291+ -DPG_TEST_EXTRA="$PG_TEST_EXTRA" \
292+ build
293+ EOF
294+
295+ build_script : su postgres -c 'ninja -C build -j${BUILD_JOBS}'
296+ upload_caches : ccache
297+
298+ test_world_script : |
299+ su postgres <<-EOF
300+ ulimit -c unlimited
301+ # Otherwise tests will fail on OpenBSD, due to inability to start enough
302+ # processes.
303+ ulimit -p 256
304+ meson test $MTEST_ARGS --num-processes ${TEST_JOBS}
305+ EOF
306+
307+ on_failure :
308+ << : *on_failure_meson
309+
310+
219311# configure feature flags, shared between the task running the linux tests and
220312# the CompilerWarnings task
221313LINUX_CONFIGURE_FEATURES : &LINUX_CONFIGURE_FEATURES >-
0 commit comments