]> jfr.im git - irc/evilnet/znc.git/blame - .travis.yml
change default flood rate to a more correct value
[irc/evilnet/znc.git] / .travis.yml
CommitLineData
4a33ec57 1language: cpp
05e3a855
AS
2os:
3 - linux
4 - osx
4a33ec57
AS
5compiler:
6 - gcc
7 - clang
e11eb08f 8env:
ac261706 9 matrix:
05e3a855
AS
10 - BUILD_TYPE=normal
11 - BUILD_TYPE=asan
12 - BUILD_TYPE=tsan
ac261706 13 global:
bfc1fef6 14 - secure: "i2f2UVDnyHT/9z0U3XvgTj8eDERvnc1Wk7HpseEjb75JwGzqn/2R+RKHmoSrwK3hFgij2IMxZL19XtHFwMz9t5A/huAAKD74KMMI/QpeZEJ/sjT3CTLcE9HEVDdJOjc7dfLRxb2hZtgvx8clZIMrpeUdPhci8openff30KvXVbg="
e11eb08f 15matrix:
f2c53b64 16 fast_finish: true
05e3a855
AS
17 exclude:
18 - os: osx
19 env: BUILD_TYPE=asan
20 - os: osx
21 env: BUILD_TYPE=tsan
22 - compiler: gcc
23 env: BUILD_TYPE=asan
24 - compiler: gcc
25 env: BUILD_TYPE=tsan
26 - os: osx
27 compiler: gcc
4a33ec57 28before_install:
05e3a855
AS
29 - "echo os: [$TRAVIS_OS_NAME] build: [$BUILD_TYPE]"
30 - if [[ "$BUILD_TYPE" == "normal" ]]; then export CFGFLAGS= MYCXXFLAGS= MYLDFLAGS=; fi
31 - if [[ "$BUILD_TYPE" == "asan" ]]; then export CFGFLAGS=--enable-debug MYCXXFLAGS="-fsanitize=address -O1 -fno-omit-frame-pointer -fno-optimize-sibling-calls -fPIE" MYLDFLAGS="-fsanitize=address -pie"; fi
9974b669 32 - if [[ "$BUILD_TYPE" == "tsan" ]]; then export CFGFLAGS=--enable-debug MYCXXFLAGS="-fsanitize=thread -O1 -fPIE" MYLDFLAGS="-fsanitize=thread"; fi
05e3a855
AS
33 # UBSan randomly crashes clang, and very often :(
34 # CFGFLAGS=--enable-debug MYCXXFLAGS="-fsanitize=undefined -O1 -fPIE -fno-sanitize-recover" MYLDFLAGS="-fsanitize=undefined -pie -fno-sanitize-recover"
35 - if [[ "$TRAVIS_REPO_SLUG" == "znc/znc" && "$TRAVIS_PULL_REQUEST" == "false" && "$TRAVIS_BRANCH" == "master" ]]; then openssl aes-256-cbc -d -in .travis-github.enc -out ~/znc-docs-key -k ${SECRET_KEY}; fi
36 - export SECRET_KEY=no
37install:
38 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cat /proc/cpuinfo /proc/meminfo; fi
39 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then lsb_release -a; fi
05e3a855 40 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo add-apt-repository -y ppa:teward/swig3.0; fi
05e3a855 41 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get update; fi
10d92e53 42 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get -y install libperl-dev python3-dev tcl-dev libsasl2-dev libgtest-dev libicu-dev swig3.0 doxygen graphviz; fi
05e3a855 43 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export CFGFLAGS="$CFGFLAGS --with-gtest=/usr/src/gtest"; fi
9974b669
AS
44 # Clang 3.5 TSan is broken on Travis Ubuntu 14.04. Clang 3.8 seems to work, but only without -pie (https://github.com/google/sanitizers/issues/503)
45 - if [[ "$TRAVIS_OS_NAME" == "linux" && "$BUILD_TYPE" == "tsan" ]]; then sudo apt-get install -y clang-3.8; export CC=clang-3.8 CXX=clang++-3.8; fi
05e3a855
AS
46 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sw_vers; fi
47 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sysctl -a | grep cpu; fi
48 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sysctl -a | grep mem; fi
49 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew config; fi
50 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew list --versions; fi
51 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
52 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install swig python3 icu4c jq; fi
53 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew info --json=v1 --installed | jq .; fi
54 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$(dirname $(find $(brew --cellar python3)/$(brew info --json=v1 python3 | jq -r '.[].installed | .[].version' | tail -n1) -name python3.pc)); fi
55 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:$(dirname $(find $(brew --cellar icu4c )/$(brew info --json=v1 icu4c | jq -r '.[].installed | .[].version' | tail -n1) -name icu-uc.pc )); fi
56 - "echo pkg-config path: [$PKG_CONFIG_PATH]"
4a33ec57
AS
57script:
58 - ./bootstrap.sh
59 - mkdir build
60 - cd build
05e3a855 61 - ../configure --enable-perl --enable-python --enable-tcl --enable-cyrus --enable-charset $CFGFLAGS CXXFLAGS="$CXXFLAGS $MYCXXFLAGS" LDFLAGS="$LDFLAGS $MYLDFLAGS"
b7ce935c 62 - cat config.log
682e3648 63 - make V=1
05e3a855 64 - make V=1 test
4a33ec57 65 - sudo make install
ac261706
RS
66 - cd ..
67after_success:
a4996c0e 68 - test -r .travis_after_all.py && python .travis_after_all.py || echo No .travis_after_all.py found
aea871e6 69 - test -r .to_export_back && echo $(cat .to_export_back) || echo No .to_export_back found
bfc1fef6 70 - export DUMMY_VAR=dummy-value $(cat .to_export_back)
ac261706
RS
71 - |
72 if [ "$BUILD_LEADER" == "YES" ] && [ "$BUILD_AGGREGATE_STATUS" == "others_succeeded" ] && [ "$TRAVIS_REPO_SLUG" == "znc/znc" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" == "master" ]; then
73 echo "All builds passed!"
74 ./.travis-generate-docs.sh
bfc1fef6
AS
75 else
76 echo "Not leader"
ac261706 77 fi
4a33ec57
AS
78notifications:
79 irc:
80 channels:
bb20971f
AS
81 # irc.freenode.net #znc-dev (via ZNC-Linker)
82 # Format is poorly documented at https://github.com/travis-ci/travis-ci/issues/2813
83 - secure: "h06+4KSb2hM1BJWQqsrurqIU3F6fK55ATCRO7/t3FK6tbSHduywfbfcJmkPUD08lATCWaKm07afbVQPoU3dc6B+0rLvlvGmOoQlB6OxiROq+fc+gXXBwpnBJ1HKwmBrEActqkyZ8GWTVLeIhhR5xYVVZZv7AZ6jzCgpfyiXPink="
4a33ec57
AS
84 on_success: always
85 on_failure: always
bb20971f
AS
86 skip_join: true
87 nick:
88 secure: "UGh4tbpviOD438ZOi+I3W6eh+R68tbpNIJc0uf5FK6xhHLLo3FRIozkL7CRVA3TxYHuahwerZpBR4TbAyc+gVUn5YRHjdsMIPHPCW/kh8ZkEJKNYXkHerbH0Np6PRLI58l6lmjMQbiWn+lqlgsHdVsyknqxDwoj7JDieE+5X53c="
89 password:
90 secure: "B2F1coXddY1H0/v3OkiPnUlbnSN/wapRay1PUbN8tvm7IDYOjpivhsRk+31/4pauKOoF4AZhzP6F9mhGxkGYBQ23Td5Y6+uZeaDnTYnXjs8fbV0QY1Mx+2EkHDSkLQoYlYr06pK9q55X3uLK1zTz5Ye0Po3KzbeydxOyyG+xBGg="
10d92e53
MS
91sudo: required
92dist: trusty