Repair Travis CI builds (#574)

* Uninstall PostgreSQL during Travis setup

Recent build images start with PostgreSQL running. Uninstall it so we
can install and run a specific version.

* Skip authentication in Travis builds

The wrong combination of connection parameters will cause psql and other
utilities to prompt for a password, stalling the Travis build
indefinitely.

* Move PostgreSQL setup for Travis builds into script

* Use a newer version of SBCL in Travis builds

Recent versions of bordeaux-threads require ASDF >= 3.1
This commit is contained in:
Chris Bandy 2017-06-10 05:06:40 -05:00 committed by Dimitri Fontaine
parent 1f3659941e
commit 1a5194de1d
2 changed files with 64 additions and 10 deletions

50
.travis.sh Executable file
View File

@ -0,0 +1,50 @@
#!/bin/bash
set -eu
pgdg_repository() {
local sourcelist='sources.list.d/pgdg.list'
sudo apt-key adv --keyserver 'hkp://ha.pool.sks-keyservers.net' --recv-keys 'ACCC4CF8'
echo deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main | sudo tee "/etc/apt/$sourcelist"
sudo apt-get -o Dir::Etc::sourcelist="$sourcelist" -o Dir::Etc::sourceparts='-' -o APT::Get::List-Cleanup='0' update
}
postgresql_configure() {
sudo tee /etc/postgresql/9.1/main/pg_hba.conf > /dev/null <<-config
local all all trust
host all all 127.0.0.1/32 trust
config
sudo service postgresql restart
}
postgresql_uninstall() {
sudo service postgresql stop
xargs sudo apt-get -y --purge remove <<-packages
libpq-dev
libpq5
postgresql
postgresql-client-common
postgresql-common
packages
}
remote_file() {
local target="$1" origin="$2" sum="$3"
local check="shasum --algorithm $(( 4 * ${#sum} )) --check"
local filesum="$sum $target"
curl --location --output "$target" "$origin" && $check <<< "$filesum"
}
sbcl_install() {
sbcl_checksum='eb44d9efb4389f71c05af0327bab7cd18f8bb221fb13a6e458477a9194853958'
sbcl_version='1.3.18'
remote_file "/tmp/sbcl-${sbcl_version}.tgz" "http://prdownloads.sourceforge.net/sbcl/sbcl-${sbcl_version}-x86-64-linux-binary.tar.bz2" "$sbcl_checksum"
tar --file "/tmp/sbcl-${sbcl_version}.tgz" --extract --directory '/tmp'
( cd "/tmp/sbcl-${sbcl_version}-x86-64-linux" && sudo ./install.sh )
}
$1

View File

@ -1,20 +1,24 @@
language: common-lisp
install:
- sudo apt-key adv --keyserver hkp://ha.pool.sks-keyservers.net --recv-keys ACCC4CF8
- echo "deb http://apt.postgresql.org/pub/repos/apt/ trusty-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
- sudo apt-get update
- sudo apt-get install -y cl-asdf sbcl unzip libsqlite3-dev gawk freetds-dev
- sudo apt-get install -y postgresql-9.1-ip4r
- ./.travis.sh postgresql_uninstall
- ./.travis.sh pgdg_repository
- sudo apt-get install -y postgresql-9.1-ip4r unzip libsqlite3-dev gawk freetds-dev
- ./.travis.sh postgresql_configure
- ./.travis.sh sbcl_install
before_script:
- sudo -u postgres createuser -S -R -D -E -l pgloader
- sudo -u postgres createdb -E UTF8 -O pgloader -hlocalhost pgloader
- sudo -u postgres psql -h localhost -d pgloader -c "create extension ip4r;"
- PGUSER=pgloader psql -h localhost -d pgloader -c "create schema expected;"
- PGUSER=pgloader psql -h localhost -d pgloader -c "create schema err;"
- PGUSER=postgres createuser -S -R -D -E -l pgloader
- PGUSER=postgres createdb -E UTF8 -O pgloader pgloader
- PGUSER=postgres psql -d pgloader -c "create extension ip4r;"
- PGUSER=pgloader psql -d pgloader -c "create schema expected;"
- PGUSER=pgloader psql -d pgloader -c "create schema err;"
- make --version
- make
script:
- PGUSER=pgloader make check
notifications:
email:
- dim@tapoueh.org