From 897bdbfe4a6c9a8d4c594dbea69dd96a528bd1bf Mon Sep 17 00:00:00 2001
From: Takashi Menjo <takashi.menjou.vg@hco.ntt.co.jp>
Date: Thu, 20 Jan 2022 12:01:56 +0900
Subject: [PATCH v9 09/10] [For CI only] Setup Cirrus CI for --with-libpmem

This is work-in-progress. It supports BSD and Linux, but does not
support Windows and macOS yet.
---
 .cirrus.yml                          | 10 ++++++++++
 src/tools/ci/windows_build_config.pl |  1 +
 2 files changed, 11 insertions(+)

diff --git a/.cirrus.yml b/.cirrus.yml
index e5335fede7..e59e54ce45 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -25,6 +25,7 @@ env:
   PGCTLTIMEOUT: 120 # avoids spurious failures during parallel tests
   TEMP_CONFIG: ${CIRRUS_WORKING_DIR}/src/tools/ci/pg_ci_base.conf
   PG_TEST_EXTRA: kerberos ldap ssl
+  PMEM_IS_PMEM_FORCE: 1
 
 
 # What files to preserve in case tests fail
@@ -79,6 +80,7 @@ task:
     sysctl kern.corefile='/tmp/cores/%N.%P.core'
   setup_additional_packages_script: |
     #pkg install -y ...
+    pkg install -y devel/pmdk
 
   # NB: Intentionally build without --with-llvm. The freebsd image size is
   # already large enough to make VM startup slow, and even without llvm
@@ -92,6 +94,7 @@ task:
         --with-gssapi \
         --with-icu \
         --with-ldap \
+        --with-libpmem \
         --with-libxml \
         --with-libxslt \
         --with-lz4 \
@@ -130,6 +133,7 @@ LINUX_CONFIGURE_FEATURES: &LINUX_CONFIGURE_FEATURES >-
   --with-gssapi
   --with-icu
   --with-ldap
+  --with-libpmem
   --with-libxml
   --with-libxslt
   --with-llvm
@@ -189,6 +193,9 @@ task:
   setup_additional_packages_script: |
     #apt-get update
     #DEBIAN_FRONTEND=noninteractive apt-get -y install ...
+    echo 'deb http://deb.debian.org/debian bullseye universe' >>/etc/apt/sources.list
+    apt-get -y update
+    DEBIAN_FRONTEND=noninteractive apt-get -y install libpmem-dev
 
   configure_script: |
     su postgres <<-EOF
@@ -259,6 +266,7 @@ task:
   # packages do not need to be downloaded.
   homebrew_cache:
     folder: $HOMEBREW_CACHE
+  # TODO: Install libpmem
   setup_additional_packages_script: |
     brew install \
       ccache \
@@ -299,6 +307,7 @@ task:
       --with-gssapi \
       --with-icu \
       --with-ldap \
+      --with-libpmem \
       --with-libxml \
       --with-libxslt \
       --with-lz4 \
@@ -395,6 +404,7 @@ task:
     powershell -Command get-psdrive -psprovider filesystem
     set
 
+  # TODO: install libpmem
   setup_additional_packages_script: |
     REM choco install -y --no-progress ...
 
diff --git a/src/tools/ci/windows_build_config.pl b/src/tools/ci/windows_build_config.pl
index b0d4360c74..ae5fdd635a 100644
--- a/src/tools/ci/windows_build_config.pl
+++ b/src/tools/ci/windows_build_config.pl
@@ -8,6 +8,7 @@ $config->{"asserts"} = 1;
 
 $config->{"openssl"} = "c:/openssl/1.1/";
 $config->{"perl"} = "c:/strawberry/$ENV{DEFAULT_PERL_VERSION}/perl/";
+$config->{"pmem"} = 1; # TODO
 $config->{"python"} = "c:/python/";
 
 1;
-- 
2.25.1

