diff --git a/.travis.yml b/.travis.yml index e49ae8a6..4d0c2351 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,12 +1,5 @@ -before_install: - - git fetch origin master:master - - git fetch origin v2.0.0:v2.0.0 - - git fetch origin test/attributes:test/attributes - - git fetch origin test/master:test/master - - sudo apt-get install libicu-dev -y - - git submodule init - - git submodule sync --quiet - - script/fast-submodule-update +sudo: false +before_install: script/travis/before_install rvm: - 1.9.3 - 2.0.0 @@ -16,3 +9,4 @@ notifications: disabled: true git: submodules: false +cache: bundler diff --git a/script/travis/before_install b/script/travis/before_install new file mode 100755 index 00000000..442f6718 --- /dev/null +++ b/script/travis/before_install @@ -0,0 +1,20 @@ +#!/bin/sh + +set -ex + +# Fetch all commits/refs needed to run our tests. +git fetch origin master:master v2.0.0:v2.0.0 test/attributes:test/attributes test/master:test/master + +script/vendor-deb libicu48 libicu-dev +if ruby -e 'exit RUBY_VERSION >= "2.0" && RUBY_VERSION < "2.1"'; then + # Workaround for https://bugs.ruby-lang.org/issues/8074. We can't use this + # solution on all versions of Ruby due to + # https://github.com/bundler/bundler/pull/3338. + bundle config build.charlock_holmes --with-icu-include=$(pwd)/vendor/debs/include --with-icu-lib=$(pwd)/vendor/debs/lib +else + bundle config build.charlock_holmes --with-icu-dir=$(pwd)/vendor/debs +fi + +git submodule init +git submodule sync --quiet +script/fast-submodule-update diff --git a/script/vendor-deb b/script/vendor-deb new file mode 100755 index 00000000..ebad3e76 --- /dev/null +++ b/script/vendor-deb @@ -0,0 +1,13 @@ +#!/bin/sh + +set -ex + +cd "$(dirname "$0")/.." + +mkdir -p vendor/apt vendor/debs + +(cd vendor/apt && apt-get --assume-yes download "$@") + +for deb in vendor/apt/*.deb; do + ar p $deb data.tar.gz | tar -vzxC vendor/debs --strip-components=2 +done