mirror of
https://github.com/dimitri/pgloader.git
synced 2026-05-05 19:06:11 +02:00
Multiple Travis CI jobs (#575)
* Test with multiple versions of PostgreSQL in Travis * Test with multiple implementations of Lisp in Travis
This commit is contained in:
parent
1a5194de1d
commit
b59421cb48
79
.travis.sh
79
.travis.sh
@ -2,16 +2,67 @@
|
||||
|
||||
set -eu
|
||||
|
||||
pgdg_repository() {
|
||||
lisp_install() {
|
||||
case "$LISP" in
|
||||
ccl)
|
||||
ccl_checksum='08e885e8c2bb6e4abd42b8e8e2b60f257c6929eb34b8ec87ca1ecf848fac6d70'
|
||||
ccl_version='1.11'
|
||||
|
||||
remote_file "/tmp/ccl-${ccl_version}.tgz" "https://github.com/Clozure/ccl/releases/download/v${ccl_version}/ccl-${ccl_version}-linuxx86.tar.gz" "$ccl_checksum"
|
||||
tar --file "/tmp/ccl-${ccl_version}.tgz" --extract --exclude='.svn' --directory '/tmp'
|
||||
sudo mv --no-target-directory '/tmp/ccl' '/usr/local/src/ccl'
|
||||
sudo ln --no-dereference --force --symbolic "/usr/local/src/ccl/scripts/ccl64" '/usr/local/bin/ccl'
|
||||
;;
|
||||
|
||||
sbcl)
|
||||
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 )
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unrecognized Lisp: '$LISP'"
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
pgdg_repositories() {
|
||||
local sourcelist='sources.list.d/pgdg.list'
|
||||
|
||||
sudo tee "/etc/apt/$sourcelist" <<-repositories
|
||||
deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main
|
||||
deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg-testing main 10
|
||||
repositories
|
||||
|
||||
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
|
||||
postgresql_install() {
|
||||
if [ -z "${PGVERSION:-}" ]; then
|
||||
PGVERSION="$( psql -d postgres -XAtc "select regexp_replace(current_setting('server_version'), '[.][0-9]+$', '')" )"
|
||||
else
|
||||
sudo service postgresql stop
|
||||
xargs sudo apt-get -y --purge remove <<-packages
|
||||
libpq-dev
|
||||
libpq5
|
||||
postgresql
|
||||
postgresql-client-common
|
||||
postgresql-common
|
||||
packages
|
||||
sudo rm -rf /var/lib/postgresql
|
||||
fi
|
||||
|
||||
xargs sudo apt-get -y install <<-packages
|
||||
postgresql-${PGVERSION}
|
||||
postgresql-${PGVERSION}-ip4r
|
||||
packages
|
||||
|
||||
sudo tee /etc/postgresql/${PGVERSION}/main/pg_hba.conf > /dev/null <<-config
|
||||
local all all trust
|
||||
host all all 127.0.0.1/32 trust
|
||||
config
|
||||
@ -19,17 +70,6 @@ postgresql_configure() {
|
||||
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"
|
||||
@ -38,13 +78,4 @@ remote_file() {
|
||||
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
|
||||
|
||||
21
.travis.yml
21
.travis.yml
@ -1,11 +1,18 @@
|
||||
language: common-lisp
|
||||
sudo: required
|
||||
|
||||
env:
|
||||
matrix:
|
||||
- LISP=ccl
|
||||
- LISP=ccl PGVERSION=9.6
|
||||
- LISP=sbcl
|
||||
- LISP=sbcl PGVERSION=9.6
|
||||
|
||||
install:
|
||||
- ./.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
|
||||
- ./.travis.sh lisp_install
|
||||
- ./.travis.sh pgdg_repositories
|
||||
- ./.travis.sh postgresql_install
|
||||
- sudo apt-get install -y unzip libsqlite3-dev gawk freetds-dev
|
||||
|
||||
before_script:
|
||||
- PGUSER=postgres createuser -S -R -D -E -l pgloader
|
||||
@ -14,10 +21,10 @@ before_script:
|
||||
- PGUSER=pgloader psql -d pgloader -c "create schema expected;"
|
||||
- PGUSER=pgloader psql -d pgloader -c "create schema err;"
|
||||
- make --version
|
||||
- make
|
||||
- make "CL=$LISP"
|
||||
|
||||
script:
|
||||
- PGUSER=pgloader make check
|
||||
- PGUSER=pgloader make "CL=$LISP" check
|
||||
|
||||
notifications:
|
||||
email:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user