...

Text file src/github.com/jackc/pgconn/ci/setup_test.bash

Documentation: github.com/jackc/pgconn/ci

     1#!/usr/bin/env bash
     2set -eux
     3
     4if [[ "${PGVERSION-}" =~ ^[0-9.]+$ ]]
     5then
     6  sudo apt-get remove -y --purge postgresql libpq-dev libpq5 postgresql-client-common postgresql-common
     7  sudo rm -rf /var/lib/postgresql
     8  wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
     9  sudo sh -c "echo deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main $PGVERSION >> /etc/apt/sources.list.d/postgresql.list"
    10  sudo apt-get update -qq
    11  sudo apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::="--force-confnew" install postgresql-$PGVERSION postgresql-server-dev-$PGVERSION postgresql-contrib-$PGVERSION
    12  sudo chmod 777 /etc/postgresql/$PGVERSION/main/pg_hba.conf
    13  echo "local     all         postgres                          trust"    >  /etc/postgresql/$PGVERSION/main/pg_hba.conf
    14  echo "local     all         all                               trust"    >> /etc/postgresql/$PGVERSION/main/pg_hba.conf
    15  echo "host      all         pgx_md5     127.0.0.1/32          md5"      >> /etc/postgresql/$PGVERSION/main/pg_hba.conf
    16  echo "host      all         pgx_pw      127.0.0.1/32          password" >> /etc/postgresql/$PGVERSION/main/pg_hba.conf
    17  echo "hostssl   all         pgx_ssl     127.0.0.1/32          md5"      >> /etc/postgresql/$PGVERSION/main/pg_hba.conf
    18  echo "host      replication pgx_replication 127.0.0.1/32      md5"      >> /etc/postgresql/$PGVERSION/main/pg_hba.conf
    19  echo "host      pgx_test pgx_replication 127.0.0.1/32      md5"      >> /etc/postgresql/$PGVERSION/main/pg_hba.conf
    20  sudo chmod 777 /etc/postgresql/$PGVERSION/main/postgresql.conf
    21  if $(dpkg --compare-versions $PGVERSION ge 9.6) ; then
    22    echo "wal_level='logical'"     >> /etc/postgresql/$PGVERSION/main/postgresql.conf
    23    echo "max_wal_senders=5"       >> /etc/postgresql/$PGVERSION/main/postgresql.conf
    24    echo "max_replication_slots=5" >> /etc/postgresql/$PGVERSION/main/postgresql.conf
    25  fi
    26  sudo /etc/init.d/postgresql restart
    27
    28  # The tricky test user, below, has to actually exist so that it can be used in a test
    29  # of aclitem formatting. It turns out aclitems cannot contain non-existing users/roles.
    30  psql -U postgres -c 'create database pgx_test'
    31  psql -U postgres pgx_test -c 'create extension hstore'
    32  psql -U postgres pgx_test -c 'create domain uint64 as numeric(20,0)'
    33  psql -U postgres -c "create user pgx_ssl SUPERUSER PASSWORD 'secret'"
    34  psql -U postgres -c "create user pgx_md5 SUPERUSER PASSWORD 'secret'"
    35  psql -U postgres -c "create user pgx_pw  SUPERUSER PASSWORD 'secret'"
    36  psql -U postgres -c "create user `whoami`"
    37  psql -U postgres -c "create user pgx_replication with replication password 'secret'"
    38  psql -U postgres -c "create user \" tricky, ' } \"\" \\ test user \" superuser password 'secret'"
    39fi
    40
    41if [[ "${PGVERSION-}" =~ ^cockroach ]]
    42then
    43  wget -qO- https://binaries.cockroachdb.com/cockroach-v22.1.8.linux-amd64.tgz | tar xvz
    44  sudo mv cockroach-v22.1.8.linux-amd64/cockroach /usr/local/bin/
    45  cockroach start-single-node --insecure --background --listen-addr=localhost
    46  cockroach sql --insecure -e 'create database pgx_test'
    47fi
    48
    49if [ "${CRATEVERSION-}" != "" ]
    50then
    51  docker run \
    52    -p "6543:5432" \
    53    -d \
    54    crate:"$CRATEVERSION" \
    55    crate \
    56      -Cnetwork.host=0.0.0.0 \
    57      -Ctransport.host=localhost \
    58      -Clicense.enterprise=false
    59fi

View as plain text