]> git.ipfire.org Git - thirdparty/psycopg.git/commitdiff
ci: factor out common logic in libpq install script
authorDenis Laxalde <denis@laxalde.org>
Sun, 8 Jan 2023 09:39:35 +0000 (10:39 +0100)
committerDenis Laxalde <denis@laxalde.org>
Sun, 8 Jan 2023 14:40:34 +0000 (15:40 +0100)
tools/build/ci_install_libpq.sh

index 5f14181d7a501c6b16d6bc6c25d8ad753343dec6..9d14f9df6191edf8435219653f132c4e3895f344 100755 (executable)
@@ -9,6 +9,17 @@ set -euo pipefail
 set -x
 
 libpq=${1:-}
+rel=$(lsb_release -c -s)
+
+setup_repo () {
+    version=${1:-}
+    curl -sL https://www.postgresql.org/media/keys/ACCC4CF8.asc \
+        | gpg --dearmor \
+        | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg > /dev/null
+    echo "deb http://apt.postgresql.org/pub/repos/apt ${rel}-pgdg main ${version}" \
+        | sudo tee -a /etc/apt/sources.list.d/pgdg.list > /dev/null
+    sudo apt-get -qq update
+}
 
 case "$libpq" in
     "")
@@ -18,31 +29,13 @@ case "$libpq" in
         ;;
 
     oldest)
-        curl -sL https://www.postgresql.org/media/keys/ACCC4CF8.asc \
-            | gpg --dearmor \
-            | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg > /dev/null
-
-        rel=$(lsb_release -c -s)
-        echo "deb http://apt.postgresql.org/pub/repos/apt ${rel}-pgdg main 10" \
-            | sudo tee -a /etc/apt/sources.list.d/pgdg.list > /dev/null
-        sudo apt-get -qq update
+        setup_repo 10
         pqver=$(apt-cache show libpq5 | grep ^Version: | tail -1 | awk '{print $2}')
         sudo apt-get -qq -y --allow-downgrades install "libpq-dev=${pqver}" "libpq5=${pqver}"
         ;;
 
     newest)
-        curl -sL https://www.postgresql.org/media/keys/ACCC4CF8.asc \
-            | gpg --dearmor \
-            | sudo tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg > /dev/null
-
-        # NOTE: in order to test with a preview release, add its number to
-        # the deb entry. For instance, to test on preview Postgres 16, use:
-        # "deb http://apt.postgresql.org/pub/repos/apt ${rel}-pgdg main 16"
-        rel=$(lsb_release -c -s)
-        echo "deb http://apt.postgresql.org/pub/repos/apt ${rel}-pgdg main" \
-            | sudo tee -a /etc/apt/sources.list.d/pgdg.list > /dev/null
-        sudo apt-get -qq update
-
+        setup_repo
         pqver=$(apt-cache show libpq5 | grep ^Version: | head -1 | awk '{print $2}')
         sudo apt-get -qq -y install "libpq-dev=${pqver}" "libpq5=${pqver}"
         ;;