From 47f970ce6cc34d8f3cc3c82c6b459c06757852a9 Mon Sep 17 00:00:00 2001 From: keneanung Date: Mon, 15 May 2017 21:02:27 +0200 Subject: [PATCH 1/4] Add travis CI service --- .travis.yml | 32 ++++++++++++++++++++++++++++++++ CI/travis.before_install.sh | 5 +++++ CI/travis.install.sh | 9 +++++++++ CI/travis.osx.before_install.sh | 3 +++ CI/travis.osx.install.sh | 9 +++++++++ 5 files changed, 58 insertions(+) create mode 100644 .travis.yml create mode 100755 CI/travis.before_install.sh create mode 100755 CI/travis.install.sh create mode 100755 CI/travis.osx.before_install.sh create mode 100755 CI/travis.osx.install.sh diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..563279e --- /dev/null +++ b/.travis.yml @@ -0,0 +1,32 @@ +language: cpp +os: + - osx + - linux +dist: trusty +sudo: false +addons: + apt: + sources: + - sourceline: 'ppa:beineri/opt-qt562-trusty' + packages: + - qt56base + - qt56multimedia + - qt56tools +compiler: + - gcc + - clang +matrix: + exclude: + - os: osx + compiler: gcc +before_install: ./CI/travis.before_install.sh +install: ./CI/travis.install.sh +before_script: + - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then PATH="/usr/local/opt/qt5/bin:$PATH"; fi + - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then source /opt/qt56/bin/qt56-env.sh; fi + - mkdir build +script: + - cd build + - qmake ../edbee-lib.pro && make -j2 + - cd edbee-test + - ./edbee-test diff --git a/CI/travis.before_install.sh b/CI/travis.before_install.sh new file mode 100755 index 0000000..7f034c0 --- /dev/null +++ b/CI/travis.before_install.sh @@ -0,0 +1,5 @@ +#!/bin/bash +if [ "${TRAVIS_OS_NAME}" = "osx" ]; then + echo Before install on OSX. + ./CI/travis.osx.before_install.sh; +fi diff --git a/CI/travis.install.sh b/CI/travis.install.sh new file mode 100755 index 0000000..f76b5d5 --- /dev/null +++ b/CI/travis.install.sh @@ -0,0 +1,9 @@ +#!/bin/bash +if [ "${TRAVIS_OS_NAME}" = "osx" ]; then + echo Install on OSX. + ./CI/travis.osx.install.sh; +fi +if [ ! -z "${CXX}" ]; then + echo "Testing (possibly updated) compiler version:" + ${CXX} --version; +fi diff --git a/CI/travis.osx.before_install.sh b/CI/travis.osx.before_install.sh new file mode 100755 index 0000000..d3b6777 --- /dev/null +++ b/CI/travis.osx.before_install.sh @@ -0,0 +1,3 @@ +#!/bin/bash +set -ev +brew update diff --git a/CI/travis.osx.install.sh b/CI/travis.osx.install.sh new file mode 100755 index 0000000..f19da0e --- /dev/null +++ b/CI/travis.osx.install.sh @@ -0,0 +1,9 @@ +#!/bin/bash +set -ev +BREWS="qt5" +for i in $BREWS; do + brew outdated | grep -q $i && brew upgrade $i +done +for i in $BREWS; do + brew list | grep -q $i || brew install $i +done From 3a86c0884284e7f275dd821d6c3b6cebb96f1093 Mon Sep 17 00:00:00 2001 From: keneanung Date: Mon, 15 May 2017 21:28:40 +0200 Subject: [PATCH 2/4] Add things needed to get an virtual X server for tests --- .travis.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.travis.yml b/.travis.yml index 563279e..e26a588 100644 --- a/.travis.yml +++ b/.travis.yml @@ -12,6 +12,7 @@ addons: - qt56base - qt56multimedia - qt56tools + - xvfb compiler: - gcc - clang @@ -22,6 +23,10 @@ matrix: before_install: ./CI/travis.before_install.sh install: ./CI/travis.install.sh before_script: + - "export DISPLAY=:99.0" + - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then sh -e /etc/init.d/xvfb start; fi + - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then ( sudo Xvfb :99 -ac -screen 0 1024x768x8; echo ok ) & fi + - sleep 3 # give xvfb some time to start - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then PATH="/usr/local/opt/qt5/bin:$PATH"; fi - if [ "${TRAVIS_OS_NAME}" = "linux" ]; then source /opt/qt56/bin/qt56-env.sh; fi - mkdir build From bf75e18e8081c5166e70899dbf74e5f05a73a6e4 Mon Sep 17 00:00:00 2001 From: keneanung Date: Mon, 15 May 2017 21:53:29 +0200 Subject: [PATCH 3/4] Change to the correct directory in macOS --- .travis.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.travis.yml b/.travis.yml index e26a588..634154b 100644 --- a/.travis.yml +++ b/.travis.yml @@ -34,4 +34,5 @@ script: - cd build - qmake ../edbee-lib.pro && make -j2 - cd edbee-test + - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then cd edbee-test.app/Contents/MacOS/; fi - ./edbee-test From 7e8bab8cadbf9b7f5b0e90719ee50b12da853e70 Mon Sep 17 00:00:00 2001 From: keneanung Date: Mon, 15 May 2017 22:30:17 +0200 Subject: [PATCH 4/4] Use clang spec for clang builds --- .travis.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 634154b..baa7f0f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -32,7 +32,8 @@ before_script: - mkdir build script: - cd build - - qmake ../edbee-lib.pro && make -j2 + - if [ "${CC}" = "clang" ] && [ "${TRAVIS_OS_NAME}" = "linux" ]; then SPEC="-spec linux-clang"; fi + - qmake ${SPEC} ../edbee-lib.pro && make -j2 - cd edbee-test - if [ "${TRAVIS_OS_NAME}" = "osx" ]; then cd edbee-test.app/Contents/MacOS/; fi - ./edbee-test