From 1a5194de1d1aab0a14c3e1ef3df26e5c1075ccdb Mon Sep 17 00:00:00 2001 From: Chris Bandy Date: Sat, 10 Jun 2017 05:06:40 -0500 Subject: [PATCH] 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 --- .travis.sh | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ .travis.yml | 24 ++++++++++++++---------- 2 files changed, 64 insertions(+), 10 deletions(-) create mode 100755 .travis.sh diff --git a/.travis.sh b/.travis.sh new file mode 100755 index 0000000..c4c33a8 --- /dev/null +++ b/.travis.sh @@ -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 diff --git a/.travis.yml b/.travis.yml index 226bf49..31dc3fb 100644 --- a/.travis.yml +++ b/.travis.yml @@ -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