summaryrefslogtreecommitdiff
path: root/.travis.yml
blob: 1a9b35f0bd4e0e7da12bf7db35029d34dd8d091a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
sudo: required
dist: xenial # (16.04)
# bionic (18.04) is not yet available in travis

language: cpp

cache: ccache

addons:
  apt:
    update: true

services:
  - mysql

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
  # import pending sql
  - if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$TRAVIS_BRANCH" = "master" ]; then bash acore-db-pendings; fi
  - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then cd ..; fi
  # push changes to git if any
  - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then git fetch --unshallow; fi
  - if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then git checkout $TRAVIS_BRANCH; fi
  - if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [[ -n "$GITHUB_API_KEY" ]]; then git add -A . && git diff --cached --quiet || git commit -am "Import pending SQL update file" && git push https://$GITHUB_API_KEY@github.com/$TRAVIS_REPO_SLUG.git $TRAVIS_BRANCH; fi
  # sync staging with master
  - if [ "$TRAVIS_PULL_REQUEST" = "false" ] && [ "$TRAVIS_BRANCH" = "master" ] && [[ -n "$GITHUB_API_KEY" ]]; then git fetch origin staging:staging && git checkout staging && git merge --no-edit master && git push https://$GITHUB_API_KEY@github.com/$TRAVIS_REPO_SLUG.git staging; git checkout master; fi

install:
  # install OS deps (apt-get)
  - bash ./acore.sh "install-deps"
  # create config file
  - 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  
  # create and import mysql
  - mysql -e "SET GLOBAL sql_mode = '';" # this is necessary because of mysql 5.7
  - bash ./acore.sh "db-assembler" "import-all"

script:
  # compile
  - 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
  - ./apps/ci-error-check.sh