[ci] Sort out Travis configuration

Use a matrix to avoid a gazillion if's.
This commit is contained in:
Khaled Hosny 2017-12-06 21:08:20 +02:00
parent 5a6d2b986a
commit 3ce6c7bd96
3 changed files with 58 additions and 27 deletions

View File

@ -3,6 +3,8 @@
set -x set -x
set -o errexit -o nounset set -o errexit -o nounset
if test "x$TRAVIS_SECURE_ENV_VARS" != xtrue; then exit; fi
BRANCH="$TRAVIS_BRANCH" BRANCH="$TRAVIS_BRANCH"
if test "x$BRANCH" != xmaster; then exit; fi if test "x$BRANCH" != xmaster; then exit; fi

14
.ci/run-coveralls.sh Executable file
View File

@ -0,0 +1,14 @@
#!/bin/bash
set -x
set -o errexit -o nounset
if test "x$TRAVIS_SLUG" != x"harfbuzz/harfbuzz"; then exit; fi
pip install --user nose
pip install --user cpp-coveralls
export PATH=$HOME/.local/bin:$PATH
rm -f src/.libs/NONE.gcov
touch src/NONE
coveralls -e docs

View File

@ -1,39 +1,54 @@
# Build Configuration for Travis # Build Configuration for Travis
sudo: required # For Trusty beta
os:
- linux
- osx
dist: trusty dist: trusty
language: cpp language: cpp
compiler:
- clang
- gcc
env: env:
global: global:
- CPPFLAGS="" - CPPFLAGS=""
- CFLAGS="-Werror --coverage" - CFLAGS="-Werror --coverage"
- CXXFLAGS="-Werror -Wno-deprecated-register --coverage" # glib uses register and clang raises a warning - CXXFLAGS="-Werror -Wno-deprecated-register --coverage" # glib uses register and clang raises a warning
- LDFLAGS="--coverage" - LDFLAGS="--coverage"
install: - CONFIGURE_OPTS="--with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2"
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then pip install --user nose; fi - NOCONFIGURE=1
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then pip install --user cpp-coveralls; fi # for coveralls.io code coverage tracking
- if [ "$TRAVIS_OS_NAME" == "linux" ]; then export PATH=$HOME/.local/bin:$PATH; fi # Make sure we can find the above Python packages matrix:
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then export CXXFLAGS="$CXXFLAGS -Wno-deprecated-declarations"; fi; # https://github.com/harfbuzz/harfbuzz/issues/345 include:
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew update; fi; - os: linux
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew uninstall libtool && brew install libtool; fi # Workaround Travis/brew bug compiler: gcc
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install ragel freetype glib gobject-introspection cairo icu4c graphite2; fi script:
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew link --force icu4c; fi # icu4c is keg-only - ./autogen.sh
script: - ./configure $CONFIGURE_OPTS --enable-gtk-doc
- NOCONFIGURE=1 ./autogen.sh - make
- export CONFIGURE_OPTS="--with-freetype --with-glib --with-gobject --with-cairo --with-icu --with-graphite2" - make check || (cat */test-suite.log test/*/test-suite.log && false)
- if [ "$TRAVIS_OS_NAME" == "linux" -a "$CC" == "gcc" ]; then export CONFIGURE_OPTS="$CONFIGURE_OPTS --enable-gtk-doc"; fi after_success:
- if [ "$TRAVIS_OS_NAME" == "osx" ]; then export CONFIGURE_OPTS="$CONFIGURE_OPTS --with-coretext"; fi - bash .ci/run-coveralls.sh # for coveralls.io code coverage tracking
- ./configure $CONFIGURE_OPTS - bash .ci/deploy-docs.sh
- make
- make check || (cat */test-suite.log test/*/test-suite.log && false) - os: linux
- if [ "$TRAVIS_OS_NAME" == "linux" -a "$CC" == "gcc" -a "$TRAVIS_SLUG" == "harfbuzz/harfbuzz" ]; then rm -f src/.libs/NONE.gcov; touch src/NONE; coveralls -e docs; fi compiler: clang
after_success: script:
- if [ "$TRAVIS_OS_NAME" == "linux" -a "$CC" == "gcc" -a "$TRAVIS_SECURE_ENV_VARS" == "true" ]; then bash .ci/deploy-docs.sh; fi - ./autogen.sh
- ./configure $CONFIGURE_OPTS
- make
- make check || (cat */test-suite.log test/*/test-suite.log && false)
- os: osx
compiler: clang
install:
# https://github.com/harfbuzz/harfbuzz/issues/345
- export CXXFLAGS="$CXXFLAGS -Wno-deprecated-declarations"
- brew update;
# Workaround Travis/brew bug
- brew uninstall libtool && brew install libtool
- brew install ragel freetype glib gobject-introspection cairo icu4c graphite2
- brew link --force icu4c # icu4c is keg-only
script:
- ./autogen.sh
- ./configure $CONFIGURE_OPTS --with-coretext
- make
- make check || (cat */test-suite.log test/*/test-suite.log && false)
notifications: notifications:
irc: "irc.freenode.org#harfbuzz" irc: "irc.freenode.org#harfbuzz"
email: harfbuzz@lists.freedesktop.org email: harfbuzz@lists.freedesktop.org