f7d3c4e151
PGX_TEST_DATABASE is much less likely to collide with another environment variable. This is especially valuable when using direnv to automatically set environment variables.
65 lines
3.4 KiB
YAML
65 lines
3.4 KiB
YAML
language: go
|
|
|
|
go:
|
|
- 1.8
|
|
- tip
|
|
|
|
# Derived from https://github.com/lib/pq/blob/master/.travis.yml
|
|
before_install:
|
|
- sudo apt-get remove -y --purge postgresql libpq-dev libpq5 postgresql-client-common postgresql-common
|
|
- sudo rm -rf /var/lib/postgresql
|
|
- wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
|
|
- 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"
|
|
- sudo apt-get update -qq
|
|
- sudo apt-get -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::="--force-confnew" install postgresql-$PGVERSION postgresql-server-dev-$PGVERSION postgresql-contrib-$PGVERSION
|
|
- sudo chmod 777 /etc/postgresql/$PGVERSION/main/pg_hba.conf
|
|
- echo "local all postgres trust" > /etc/postgresql/$PGVERSION/main/pg_hba.conf
|
|
- echo "local all all trust" >> /etc/postgresql/$PGVERSION/main/pg_hba.conf
|
|
- echo "host all pgx_md5 127.0.0.1/32 md5" >> /etc/postgresql/$PGVERSION/main/pg_hba.conf
|
|
- echo "host all pgx_pw 127.0.0.1/32 password" >> /etc/postgresql/$PGVERSION/main/pg_hba.conf
|
|
- echo "hostssl all pgx_ssl 127.0.0.1/32 md5" >> /etc/postgresql/$PGVERSION/main/pg_hba.conf
|
|
- echo "host replication pgx_replication 127.0.0.1/32 md5" >> /etc/postgresql/$PGVERSION/main/pg_hba.conf
|
|
- echo "host pgx_test pgx_replication 127.0.0.1/32 md5" >> /etc/postgresql/$PGVERSION/main/pg_hba.conf
|
|
- sudo chmod 777 /etc/postgresql/$PGVERSION/main/postgresql.conf
|
|
- "[[ $PGVERSION < 9.6 ]] || echo \"wal_level='logical'\" >> /etc/postgresql/$PGVERSION/main/postgresql.conf"
|
|
- "[[ $PGVERSION < 9.6 ]] || echo \"max_wal_senders=5\" >> /etc/postgresql/$PGVERSION/main/postgresql.conf"
|
|
- "[[ $PGVERSION < 9.6 ]] || echo \"max_replication_slots=5\" >> /etc/postgresql/$PGVERSION/main/postgresql.conf"
|
|
- sudo /etc/init.d/postgresql restart
|
|
|
|
env:
|
|
global:
|
|
- PGX_TEST_DATABASE=postgres://pgx_md5:secret@127.0.0.1/pgx_test
|
|
matrix:
|
|
- PGVERSION=9.6
|
|
- PGVERSION=9.5
|
|
- PGVERSION=9.4
|
|
- PGVERSION=9.3
|
|
- PGVERSION=9.2
|
|
|
|
# The tricky test user, below, has to actually exist so that it can be used in a test
|
|
# of aclitem formatting. It turns out aclitems cannot contain non-existing users/roles.
|
|
before_script:
|
|
- mv conn_config_test.go.travis conn_config_test.go
|
|
- psql -U postgres -c 'create database pgx_test'
|
|
- "[[ \"${PGVERSION}\" = '9.0' ]] && psql -U postgres -f /usr/share/postgresql/9.0/contrib/hstore.sql pgx_test || psql -U postgres pgx_test -c 'create extension hstore'"
|
|
- psql -U postgres -c "create user pgx_ssl SUPERUSER PASSWORD 'secret'"
|
|
- psql -U postgres -c "create user pgx_md5 SUPERUSER PASSWORD 'secret'"
|
|
- psql -U postgres -c "create user pgx_pw SUPERUSER PASSWORD 'secret'"
|
|
- psql -U postgres -c "create user pgx_replication with replication password 'secret'"
|
|
- psql -U postgres -c "create user \" tricky, ' } \"\" \\ test user \" superuser password 'secret'"
|
|
|
|
install:
|
|
- go get -u github.com/shopspring/decimal
|
|
- go get -u gopkg.in/inconshreveable/log15.v2
|
|
- go get -u github.com/jackc/fake
|
|
- go get -u github.com/jackc/pgmock/pgmsg
|
|
- go get -u github.com/lib/pq
|
|
- go get -u github.com/hashicorp/go-version
|
|
|
|
script:
|
|
- go test -v -race ./...
|
|
|
|
matrix:
|
|
allow_failures:
|
|
- go: tip
|