diff options
author | Stoabrogga <38475780+Stoabrogga@users.noreply.github.com> | 2019-02-11 09:03:32 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-02-11 09:03:32 +0100 |
commit | 24ccbd69e3cb29589ae65bb8929d0395006bd8ac (patch) | |
tree | 942cb5a0302dbc0a2f45e98f464971ff58553138 /.travis.yml | |
parent | f9ac9f1f1aad7e19909d04e36cd520667e3ca983 (diff) |
feat(Travis): speed up and stabilize build process (#1410)
- Use Travis build matrix to test build with clang 3.8 and clang 7
- Set the number of threads for the "make" command to 4 (Travis provides only 2 cores, see https://docs.travis-ci.com/user/reference/overview/, so 4 threads should be good to go)
- Use Travis caching (https://docs.travis-ci.com/user/caching/) and ccache to speed up the build process (with full cache now takes about 7-8 minutes); a separate cache is used for clang 3.8 and clang 7
- Added a 43 minute timeout for the "make" command in order to ensure that the cache is saved within Travis (Travis will kill the build process after 50 minutes without saving the cache, see https://docs.travis-ci.com/user/customizing-the-build/). If the "make" command is terminated by the timeout it suffices to restart the Travis build job in order to use the already written cache.
Diffstat (limited to '.travis.yml')
-rw-r--r-- | .travis.yml | 44 |
1 files changed, 40 insertions, 4 deletions
diff --git a/.travis.yml b/.travis.yml index 1147d5f9e9..1a9b35f0bd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,8 +3,8 @@ dist: xenial # (16.04) # bionic (18.04) is not yet available in travis language: cpp -compiler: - - clang + +cache: ccache addons: apt: @@ -16,6 +16,28 @@ services: git: depth: 1 +matrix: + include: + - os: linux + addons: + apt: + packages: + - clang-3.8 + env: + - CCOMPILERC="clang-3.8" + - CCOMPILERCXX="clang++-3.8" + + - os: linux + addons: + apt: + sources: + - llvm-toolchain-xenial-7 + packages: + - clang-7 + env: + - CCOMPILERC="clang-7" + - CCOMPILERCXX="clang++-7" + before_install: - git config user.email "azerothcorebot@gmail.com" && git config user.name "AzerothCoreBot" - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then cd bin/; fi @@ -33,7 +55,18 @@ install: # install OS deps (apt-get) - bash ./acore.sh "install-deps" # create config file - - echo "CCUSTOMOPTIONS='-DWITH_WARNINGS=1 -DWITH_COREDEBUG=1 -DUSE_COREPCH=0 -DUSE_SCRIPTPCH=0 -DTOOLS=1 -DSCRIPTS=1 -DSERVERS=1 -DWITH_PERFTOOLS=1 -DENABLE_EXTRA_LOGS=1 -DCMAKE_BUILD_TYPE=Debug -DCMAKE_C_FLAGS=\"-Werror\" -DCMAKE_CXX_FLAGS=\"-Werror\"';" >> conf/config.sh + - echo "CCOMPILERC=$CCOMPILERC" >> conf/config.sh + - echo "CCOMPILERCXX=$CCOMPILERCXX" >> conf/config.sh + - echo "MTHREADS=4" >> conf/config.sh + - echo "CWARNINGS=ON" >> conf/config.sh + - echo "CDEBUG=OFF" >> conf/config.sh + - echo "CTYPE=Release" >> conf/config.sh + - echo "CSCRIPTS=ON" >> conf/config.sh + - echo "CSERVERS=ON" >> conf/config.sh + - echo "CTOOLS=ON" >> conf/config.sh + - echo "CSCRIPTPCH=OFF" >> conf/config.sh + - echo "CCOREPCH=OFF" >> conf/config.sh + - echo "CCUSTOMOPTIONS='-DCMAKE_C_COMPILER_LAUNCHER=ccache -DCMAKE_CXX_COMPILER_LAUNCHER=ccache -DCMAKE_C_FLAGS=\"-Werror\" -DCMAKE_CXX_FLAGS=\"-Werror\"'" >> conf/config.sh - echo "DB_CHARACTERS_CONF=\"MYSQL_USER='root'; MYSQL_PASS=''; MYSQL_HOST='127.0.0.1';\"" >> conf/config.sh - echo "DB_AUTH_CONF=\"MYSQL_USER='root'; MYSQL_PASS=''; MYSQL_HOST='127.0.0.1';\"" >> conf/config.sh - echo "DB_WORLD_CONF=\"MYSQL_USER='root'; MYSQL_PASS=''; MYSQL_HOST='127.0.0.1';\"" >> conf/config.sh @@ -43,7 +76,10 @@ install: script: # compile - - bash ./acore.sh "compiler" "all" + - export CCACHE_CPP2=true + - ccache -s + - timeout 2580 bash ./acore.sh "compiler" "all" + - ccache -s - git clone --depth=1 --branch=master --single-branch https://github.com/ac-data/ac-data.git /home/travis/build/azerothcore/azerothcore-wotlk/env/dist/data - cp ./data/travis/worldserver.conf ./env/dist/etc/worldserver.conf - ./env/dist/bin/worldserver --dry-run |