]> jfr.im git - irc/evilnet/znc.git/blob - .travis.yml
Initial commit of evilnet modifications to znc 1.6.1
[irc/evilnet/znc.git] / .travis.yml
1 language: cpp
2 os:
3 - linux
4 - osx
5 compiler:
6 - gcc
7 - clang
8 env:
9 matrix:
10 - BUILD_TYPE=normal
11 - BUILD_TYPE=asan
12 - BUILD_TYPE=tsan
13 global:
14 - secure: "i2f2UVDnyHT/9z0U3XvgTj8eDERvnc1Wk7HpseEjb75JwGzqn/2R+RKHmoSrwK3hFgij2IMxZL19XtHFwMz9t5A/huAAKD74KMMI/QpeZEJ/sjT3CTLcE9HEVDdJOjc7dfLRxb2hZtgvx8clZIMrpeUdPhci8openff30KvXVbg="
15 matrix:
16 exclude:
17 - os: osx
18 env: BUILD_TYPE=asan
19 - os: osx
20 env: BUILD_TYPE=tsan
21 - compiler: gcc
22 env: BUILD_TYPE=asan
23 - compiler: gcc
24 env: BUILD_TYPE=tsan
25 - os: osx
26 compiler: gcc
27 before_install:
28 - "echo os: [$TRAVIS_OS_NAME] build: [$BUILD_TYPE]"
29 - if [[ "$BUILD_TYPE" == "normal" ]]; then export CFGFLAGS= MYCXXFLAGS= MYLDFLAGS=; fi
30 - 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
31 - if [[ "$BUILD_TYPE" == "tsan" ]]; then export CFGFLAGS=--enable-debug MYCXXFLAGS="-fsanitize=thread -O1 -fPIE" MYLDFLAGS="-fsanitize=thread -pie"; fi
32 # UBSan randomly crashes clang, and very often :(
33 # CFGFLAGS=--enable-debug MYCXXFLAGS="-fsanitize=undefined -O1 -fPIE -fno-sanitize-recover" MYLDFLAGS="-fsanitize=undefined -pie -fno-sanitize-recover"
34 - 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
35 - export SECRET_KEY=no
36 install:
37 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then cat /proc/cpuinfo /proc/meminfo; fi
38 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then lsb_release -a; fi
39 - if [[ "$TRAVIS_OS_NAME" == "linux" && "$CXX" == "g++" ]]; then sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test; fi
40 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo add-apt-repository -y ppa:teward/swig3.0; fi
41 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo add-apt-repository -y ppa:teward/icu-backports; fi
42 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get update; fi
43 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sudo apt-get install libperl-dev python3-dev tcl-dev libsasl2-dev libgtest-dev libicu-dev swig3.0 doxygen graphviz; fi
44 - if [[ "$TRAVIS_OS_NAME" == "linux" && "$CXX" == "g++" ]]; then sudo apt-get install g++-4.8; fi
45 - if [[ "$TRAVIS_OS_NAME" == "linux" && "$CXX" == "g++" ]]; then export CXX="g++-4.8" CC="gcc-4.8"; fi
46 - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export CFGFLAGS="$CFGFLAGS --with-gtest=/usr/src/gtest"; fi
47 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sw_vers; fi
48 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sysctl -a | grep cpu; fi
49 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then sysctl -a | grep mem; fi
50 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew config; fi
51 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew list --versions; fi
52 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew update; fi
53 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew install swig python3 icu4c jq; fi
54 - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then brew info --json=v1 --installed | jq .; fi
55 - 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
56 - 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
57 - "echo pkg-config path: [$PKG_CONFIG_PATH]"
58 script:
59 - ./bootstrap.sh
60 - mkdir build
61 - cd build
62 - ../configure --enable-perl --enable-python --enable-tcl --enable-cyrus --enable-charset $CFGFLAGS CXXFLAGS="$CXXFLAGS $MYCXXFLAGS" LDFLAGS="$LDFLAGS $MYLDFLAGS"
63 - cat config.log
64 - make V=1
65 - make V=1 test
66 - sudo make install
67 - cd ..
68 after_success:
69 - test -r .travis_after_all.py && python .travis_after_all.py || echo No .travis_after_all.py found
70 - test -r .to_export_back && echo $(cat .to_export_back) || echo No .to_export_back found
71 - export DUMMY_VAR=dummy-value $(cat .to_export_back)
72 - |
73 if [ "$BUILD_LEADER" == "YES" ] && [ "$BUILD_AGGREGATE_STATUS" == "others_succeeded" ] && [ "$TRAVIS_REPO_SLUG" == "znc/znc" ] && [ "$TRAVIS_PULL_REQUEST" == "false" ] && [ "$TRAVIS_BRANCH" == "master" ]; then
74 echo "All builds passed!"
75 ./.travis-generate-docs.sh
76 else
77 echo "Not leader"
78 fi
79 notifications:
80 irc:
81 channels:
82 - "irc.freenode.net#znc"
83 - "irc.arcti.ca#znc"
84 on_success: always
85 on_failure: always