@ -31,6 +31,31 @@ env:
TEMP_CONFIG : ${CIRRUS_WORKING_DIR}/src/tools/ci/pg_ci_base.conf
TEMP_CONFIG : ${CIRRUS_WORKING_DIR}/src/tools/ci/pg_ci_base.conf
PG_TEST_EXTRA : kerberos ldap ssl libpq_encryption load_balance oauth
PG_TEST_EXTRA : kerberos ldap ssl libpq_encryption load_balance oauth
# Postgres config args for the meson builds, shared between all meson tasks
# except the 'SanityCheck' task
MESON_COMMON_PG_CONFIG_ARGS : -Dcassert=true -Dinjection_points=true
# Meson feature flags shared by all meson tasks, except:
# SanityCheck: uses almost no dependencies.
# Windows - VS: has fewer dependencies than listed here, so defines its own.
# Linux: uses the 'auto' feature option to test meson feature autodetection.
MESON_COMMON_FEATURES : >-
-Dauto_features=disabled
-Dldap=enabled
-Dssl=openssl
-Dtap_tests=enabled
-Dplperl=enabled
-Dplpython=enabled
-Ddocs=enabled
-Dicu=enabled
-Dlibxml=enabled
-Dlibxslt=enabled
-Dlz4=enabled
-Dpltcl=enabled
-Dreadline=enabled
-Dzlib=enabled
-Dzstd=enabled
# What files to preserve in case tests fail
# What files to preserve in case tests fail
on_failure_ac : &on_failure_ac
on_failure_ac : &on_failure_ac
@ -164,6 +189,15 @@ task:
-c debug_parallel_query=regress
-c debug_parallel_query=regress
PG_TEST_PG_UPGRADE_MODE : --link
PG_TEST_PG_UPGRADE_MODE : --link
MESON_FEATURES : >-
-Ddtrace=enabled
-Dgssapi=enabled
-Dlibcurl=enabled
-Dnls=enabled
-Dpam=enabled
-Dtcl_version=tcl86
-Duuid=bsd
<< : *freebsd_task_template
<< : *freebsd_task_template
depends_on : SanityCheck
depends_on : SanityCheck
@ -196,10 +230,10 @@ task:
configure_script : |
configure_script : |
su postgres <<-EOF
su postgres <<-EOF
meson setup \
meson setup \
${MESON_COMMON_PG_CONFIG_ARGS} \
--buildtype=debug \
--buildtype=debug \
-Dcassert=true -Dinjection_points=true \
-Duuid=bsd -Dtcl_version=tcl86 -Ddtrace=auto \
-Dextra_lib_dirs=/usr/local/lib -Dextra_include_dirs=/usr/local/include/ \
-Dextra_lib_dirs=/usr/local/lib -Dextra_include_dirs=/usr/local/include/ \
${MESON_COMMON_FEATURES} ${MESON_FEATURES} \
build
build
EOF
EOF
build_script : su postgres -c 'ninja -C build -j${BUILD_JOBS} ${MBUILD_TARGET}'
build_script : su postgres -c 'ninja -C build -j${BUILD_JOBS} ${MBUILD_TARGET}'
@ -270,6 +304,12 @@ task:
LC_ALL : "C"
LC_ALL : "C"
# -Duuid is not set for the NetBSD, see the comment below, above
# -Duuid is not set for the NetBSD, see the comment below, above
# configure_script, for more information.
# configure_script, for more information.
MESON_FEATURES : >-
-Dgssapi=enabled
-Dlibcurl=enabled
-Dnls=enabled
-Dpam=enabled
setup_additional_packages_script : |
setup_additional_packages_script : |
#pkgin -y install ...
#pkgin -y install ...
<< : *netbsd_task_template
<< : *netbsd_task_template
@ -282,8 +322,13 @@ task:
OS_NAME : openbsd
OS_NAME : openbsd
IMAGE_FAMILY : pg-ci-openbsd-postgres
IMAGE_FAMILY : pg-ci-openbsd-postgres
PKGCONFIG_PATH : '/usr/lib/pkgconfig:/usr/local/lib/pkgconfig'
PKGCONFIG_PATH : '/usr/lib/pkgconfig:/usr/local/lib/pkgconfig'
UUID : -Duuid=e2fs
TCL : -Dtcl_version=tcl86
MESON_FEATURES : >-
-Dbsd_auth=enabled
-Dlibcurl=enabled
-Dtcl_version=tcl86
-Duuid=e2fs
setup_additional_packages_script : |
setup_additional_packages_script : |
#pkg_add -I ...
#pkg_add -I ...
# Always core dump to ${CORE_DUMP_DIR}
# Always core dump to ${CORE_DUMP_DIR}
@ -317,10 +362,10 @@ task:
configure_script : |
configure_script : |
su postgres <<-EOF
su postgres <<-EOF
meson setup \
meson setup \
${MESON_COMMON_PG_CONFIG_ARGS} \
--buildtype=debugoptimized \
--buildtype=debugoptimized \
--pkg-config-path ${PKGCONFIG_PATH} \
--pkg-config-path ${PKGCONFIG_PATH} \
-Dcassert=true -Dinjection_points=true \
${MESON_COMMON_FEATURES} ${MESON_FEATURES} \
-Dssl=openssl ${UUID} ${TCL} \
build
build
EOF
EOF
@ -367,10 +412,6 @@ LINUX_CONFIGURE_FEATURES: &LINUX_CONFIGURE_FEATURES >-
--with-uuid=ossp
--with-uuid=ossp
--with-zstd
--with-zstd
LINUX_MESON_FEATURES : &LINUX_MESON_FEATURES >-
-Dllvm=enabled
-Duuid=e2fs
# Check SPECIAL in the matrix: below
# Check SPECIAL in the matrix: below
task:
task:
@ -411,7 +452,8 @@ task:
LLVM_CONFIG : llvm-config-16
LLVM_CONFIG : llvm-config-16
LINUX_CONFIGURE_FEATURES : *LINUX_CONFIGURE_FEATURES
LINUX_CONFIGURE_FEATURES : *LINUX_CONFIGURE_FEATURES
LINUX_MESON_FEATURES : *LINUX_MESON_FEATURES
LINUX_MESON_FEATURES : >-
-Duuid=e2fs
<< : *linux_task_template
<< : *linux_task_template
@ -497,6 +539,7 @@ task:
# are typically printed in the server log
# are typically printed in the server log
# - Test both 64bit and 32 bit builds
# - Test both 64bit and 32 bit builds
# - uses io_method=io_uring
# - uses io_method=io_uring
# - Uses meson feature autodetection
- name : Linux - Debian Bookworm - Meson
- name : Linux - Debian Bookworm - Meson
env:
env:
@ -508,9 +551,9 @@ task:
configure_script : |
configure_script : |
su postgres <<-EOF
su postgres <<-EOF
meson setup \
meson setup \
${MESON_COMMON_PG_CONFIG_ARGS} \
--buildtype=debug \
--buildtype=debug \
-Dcassert=true -Dinjection_points=true \
${LINUX_MESON_FEATURES} -Dllvm=enabled \
${LINUX_MESON_FEATURES} \
build
build
EOF
EOF
@ -520,13 +563,11 @@ task:
su postgres <<-EOF
su postgres <<-EOF
export CC='ccache gcc -m32'
export CC='ccache gcc -m32'
meson setup \
meson setup \
${MESON_COMMON_PG_CONFIG_ARGS} \
--buildtype=debug \
--buildtype=debug \
-Dcassert=true -Dinjection_points=true \
${LINUX_MESON_FEATURES} \
-Dllvm=disabled \
--pkg-config-path /usr/lib/i386-linux-gnu/pkgconfig/ \
--pkg-config-path /usr/lib/i386-linux-gnu/pkgconfig/ \
-DPERL=perl5.36-i386-linux-gnu \
-DPERL=perl5.36-i386-linux-gnu \
- Dlibnuma=disabled \
${LINUX_MESON_FEATURES} -Dlibnuma=disabled \
build-32
build-32
EOF
EOF
@ -590,6 +631,14 @@ task:
CCACHE_DIR : ${HOME}/ccache
CCACHE_DIR : ${HOME}/ccache
MACPORTS_CACHE : ${HOME}/macports-cache
MACPORTS_CACHE : ${HOME}/macports-cache
MESON_FEATURES : >-
-Dbonjour=enabled
-Ddtrace=enabled
-Dgssapi=enabled
-Dlibcurl=enabled
-Dnls=enabled
-Duuid=e2fs
MACOS_PACKAGE_LIST : >-
MACOS_PACKAGE_LIST : >-
ccache
ccache
icu
icu
@ -659,11 +708,11 @@ task:
configure_script : |
configure_script : |
export PKG_CONFIG_PATH="/opt/local/lib/pkgconfig/"
export PKG_CONFIG_PATH="/opt/local/lib/pkgconfig/"
meson setup \
meson setup \
${MESON_COMMON_PG_CONFIG_ARGS} \
--buildtype=debug \
--buildtype=debug \
-Dextra_include_dirs=/opt/local/include \
-Dextra_include_dirs=/opt/local/include \
-Dextra_lib_dirs=/opt/local/lib \
-Dextra_lib_dirs=/opt/local/lib \
-Dcassert=true -Dinjection_points=true \
${MESON_COMMON_FEATURES} ${MESON_FEATURES} \
-Duuid=e2fs -Ddtrace=auto \
build
build
build_script : ninja -C build -j${BUILD_JOBS} ${MBUILD_TARGET}
build_script : ninja -C build -j${BUILD_JOBS} ${MBUILD_TARGET}
@ -718,6 +767,14 @@ task:
# 0x8001 is SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX
# 0x8001 is SEM_FAILCRITICALERRORS | SEM_NOOPENFILEERRORBOX
CIRRUS_WINDOWS_ERROR_MODE : 0x8001
CIRRUS_WINDOWS_ERROR_MODE : 0x8001
MESON_FEATURES:
-Dauto_features=disabled
-Dldap=enabled
-Dssl=openssl
-Dtap_tests=enabled
-Dplperl=enabled
-Dplpython=enabled
<< : *windows_task_template
<< : *windows_task_template
depends_on : SanityCheck
depends_on : SanityCheck
@ -734,7 +791,7 @@ task:
configure_script : |
configure_script : |
vcvarsall x64
vcvarsall x64
meson setup --backend ninja --buildtype debug -Dcassert=true -Dinjection_points=true -Db_pch=true -Dextra_lib_dirs=c:\openssl\1.1\lib -Dextra_include_dirs=c:\openssl\1.1\include -DTAR=%TAR% build
meson setup --backend ninja %MESON_COMMON_PG_CONFIG_ARGS% --buildtype debug -Db_pch=true -Dextra_lib_dirs=c:\openssl\1.1\lib -Dextra_include_dirs=c:\openssl\1.1\include -DTAR=%TAR% %MESON_FEATURES % build
build_script : |
build_script : |
vcvarsall x64
vcvarsall x64
@ -776,6 +833,11 @@ task:
CHERE_INVOKING : 1
CHERE_INVOKING : 1
BASH : C:\msys64\usr\bin\bash.exe -l
BASH : C:\msys64\usr\bin\bash.exe -l
# Keep -Dnls explicitly disabled, as the number of files it creates causes a
# noticeable slowdown.
MESON_FEATURES : >-
-Dnls=disabled
<< : *windows_task_template
<< : *windows_task_template
ccache_cache:
ccache_cache:
@ -790,9 +852,8 @@ task:
%BASH% -c "where perl"
%BASH% -c "where perl"
%BASH% -c "perl --version"
%BASH% -c "perl --version"
# disable -Dnls as the number of files it creates cause a noticable slowdown
configure_script : |
configure_script : |
%BASH% -c "meson setup -Ddebug=true -Doptimization=g -Dcassert=true -Dinjection_points=true -Db_pch=true -Dnls=disabled -DTAR=%TAR% build"
%BASH% -c "meson setup %MESON_COMMON_PG_CONFIG_ARGS% -Ddebug=true -Doptimization=g -Db_pch=true %MESON_COMMON_FEATURES% %MESON_FEATURES% -DTAR=%TAR% build"
build_script : |
build_script : |
%BASH% -c "ninja -C build ${MBUILD_TARGET}"
%BASH% -c "ninja -C build ${MBUILD_TARGET}"
@ -829,7 +890,6 @@ task:
CCACHE_DIR : "/tmp/ccache_dir"
CCACHE_DIR : "/tmp/ccache_dir"
LINUX_CONFIGURE_FEATURES : *LINUX_CONFIGURE_FEATURES
LINUX_CONFIGURE_FEATURES : *LINUX_CONFIGURE_FEATURES
LINUX_MESON_FEATURES : *LINUX_MESON_FEATURES
# GCC emits a warning for llvm-14, so switch to a newer one.
# GCC emits a warning for llvm-14, so switch to a newer one.
LLVM_CONFIG : llvm-config-16
LLVM_CONFIG : llvm-config-16