ci: upgrade Travis config to Ubuntu 18.04
Also in this commit:
* Drop clang 3.8 (no easy way to install it on 18.04)
* Add clang 10 (trunk)
* Drop Xcode 8.3
* Upgrade Xcode 10.2 to 10.3
* Output folding markers to improve readability of CI logs
Change-Id: I234fcb06527eb60cc1fe4cf5b16eafaa972e07f6
diff --git a/.jenkins b/.jenkins
index 674d751..78e1ca1 100755
--- a/.jenkins
+++ b/.jenkins
@@ -1,10 +1,27 @@
#!/usr/bin/env bash
set -e
-DIR=$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )
+nanos() {
+ # Cannot use date(1) because macOS does not support %N format specifier
+ python -c 'import time; print(int(time.time() * 1e9))'
+}
-for file in "$DIR"/.jenkins.d/*; do
+for file in .jenkins.d/*; do
[[ -f $file && -x $file ]] || continue
- echo "Run: $file"
+
+ if [[ -n $TRAVIS ]]; then
+ label=$(basename "$file" | sed -E 's/[[:digit:]]+-(.*)\..*/\1/')
+ echo -ne "travis_fold:start:${label}\r"
+ echo -ne "travis_time:start:${label}\r"
+ start=$(nanos)
+ fi
+
+ echo "\$ $file"
"$file"
+
+ if [[ -n $TRAVIS ]]; then
+ finish=$(nanos)
+ echo -ne "travis_time:end:${label}:start=${start},finish=${finish},duration=$((finish-start)),event=${label}\r"
+ echo -ne "travis_fold:end:${label}\r"
+ fi
done
diff --git a/.jenkins.d/00-deps.sh b/.jenkins.d/00-deps.sh
index 3d73928..f73079a 100755
--- a/.jenkins.d/00-deps.sh
+++ b/.jenkins.d/00-deps.sh
@@ -10,7 +10,7 @@
FORMULAE=(boost openssl pkg-config)
brew update
if [[ -n $TRAVIS ]]; then
- # travis images come with a large number of brew packages
+ # Travis images come with a large number of brew packages
# pre-installed, don't waste time upgrading all of them
for FORMULA in "${FORMULAE[@]}"; do
brew outdated $FORMULA || brew upgrade $FORMULA
@@ -32,7 +32,7 @@
fi
fi
-if has CentOS $NODE_LABELS; then
+if has CentOS-7 $NODE_LABELS; then
sudo yum -y install yum-utils pkgconfig \
openssl-devel libtranslit-icu \
python-devel sqlite-devel \
diff --git a/.travis.yml b/.travis.yml
index 7705ba7..f76bf9d 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,5 +1,5 @@
language: cpp
-dist: xenial
+dist: bionic
env:
global:
- JOB_NAME=limited-build
@@ -23,8 +23,6 @@
# Linux/clang
# https://apt.llvm.org/
- os: linux
- env: COMPILER=clang++-3.8
- - os: linux
env: COMPILER=clang++-3.9
- os: linux
env: COMPILER=clang++-4.0
@@ -40,13 +38,12 @@
env: COMPILER=clang++-8 DISABLE_ASAN=yes
- os: linux
env: COMPILER=clang++-9
+ - os: linux
+ env: COMPILER=clang++-10
# macOS/clang
# https://docs.travis-ci.com/user/reference/osx/#macos-version
- os: osx
- osx_image: xcode8.3
- env: OSX_VERSION=10.12
- - os: osx
osx_image: xcode9.2
env: OSX_VERSION=10.12
- os: osx
@@ -56,40 +53,42 @@
osx_image: xcode10.1
env: OSX_VERSION=10.13
- os: osx
- osx_image: xcode10.2
+ osx_image: xcode10.3
env: OSX_VERSION=10.14
- os: osx
osx_image: xcode11
env: OSX_VERSION=10.14
allow_failures:
- - env: COMPILER=clang++-9
+ - env: COMPILER=clang++-10
fast_finish: true
-install: |
+before_install: |
case ${COMPILER} in
- g++-5)
+ g++-[567]|clang++-[3456].*)
;;
g++-*)
travis_retry sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
travis_retry sudo apt-get -qq update
- travis_retry sudo apt-get -qy install "${COMPILER}"
;;
clang++-*)
- CLANG_VERSION=${COMPILER/clang++}
- if [[ ${CLANG_VERSION} != "-3."* ]]; then
- travis_retry wget -nv -O - "https://apt.llvm.org/llvm-snapshot.gpg.key" | sudo apt-key add -
- travis_retry sudo add-apt-repository -y "deb http://apt.llvm.org/xenial/ llvm-toolchain-xenial${CLANG_VERSION/-9} main"
- fi
+ LLVM_REPO=${COMPILER/clang++/llvm-toolchain-${TRAVIS_DIST}}
+ travis_retry wget -nv -O - "https://apt.llvm.org/llvm-snapshot.gpg.key" | sudo apt-key add -
+ travis_retry sudo add-apt-repository -y "deb http://apt.llvm.org/${TRAVIS_DIST}/ ${LLVM_REPO%-10} main"
travis_retry sudo apt-get -qq update
- travis_retry sudo apt-get -qy install "clang${CLANG_VERSION}"
;;
esac
+install:
+ - if [[ -n ${COMPILER} ]]; then travis_retry sudo apt-get -qy install "${COMPILER/clang++/clang}"; fi
+
before_script:
- - if [[ ${TRAVIS_OS_NAME} == linux ]]; then export NODE_LABELS="Linux Ubuntu Ubuntu-16.04"; fi
+ - if [[ ${TRAVIS_OS_NAME} == linux ]]; then export NODE_LABELS="Linux Ubuntu Ubuntu-18.04"; fi
+ - if [[ ${TRAVIS_OS_NAME} == linux ]]; then sudo sysctl -e -w net.ipv6.conf.all.disable_ipv6=0; fi
- if [[ ${TRAVIS_OS_NAME} == osx ]]; then export NODE_LABELS="OSX OSX-${OSX_VERSION}"; fi
+ # do not waste time upgrading useless packages
+ - if [[ ${TRAVIS_OS_NAME} == osx ]]; then brew pin cgal gdal numpy postgis sfcgal || true; fi
- if [[ ${OSX_VERSION} == 10.12 ]]; then brew update; fi
# workaround for https://github.com/Homebrew/homebrew-core/issues/26358
- if [[ ${OSX_VERSION} == 10.12 ]]; then brew outdated python || brew upgrade python; fi