sudo: required
dist: trusty
language: c

env:
  global:
    # This is the encrypted COVERITY_SCAN_TOKEN, created via the "travis
    # encrypt" command using the project repository's public key.
    - secure: "ggJ9c/VfKcwtrwz/My+ne4My7D8g3qi3vz5Hh+yLiri0+oIXCy313ZD6ssIEY/5beQZEOnuHhBgBJd/Y3clSQNc2M9fRNc+wxOkIO992lgnY0MZJN3y9MLfpqUbTClhU9Fst0qXQqGpI6UI8yz1tj7yKi7DPrycJLRrjMpyTfyo="

matrix:
  include:
    - compiler: "gcc"
      os: linux
      env:
        - PLATFORM=linux BITS=64 HOST=x86_64
      addons:
        coverity_scan:
          project:
            name: "monitoring-plugins/monitoring-plugins"
            description: "Monitoring Plugins"
          notification_email: team@monitoring-plugins.org
          build_command_prepend: tools/setup && ./configure
          build_command: make
          branch_pattern: coverity.*
    - compiler: "clang"
      os: linux
      env:
        - PLATFORM=linux BITS=64 HOST=x86_64
        - CXX=clang++

before_install:
  # Trusty related fixed
  # multiverse is no on trusty activated (https://github.com/travis-ci/travis-ci/issues/4979)
  - sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu/ trusty multiverse" && sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu/ trusty-updates multiverse"
  # /etc/hosts has IPv6 hosts (https://github.com/travis-ci/travis-ci/issues/4978)
  - sudo [ $(ip addr show | grep "inet6 ::1" | wc -l) -lt "1" ] && sudo sed -i '/^::1/d' /etc/hosts
  # Trusty has running ntpd on localhost, but we don't like that for our tests
  - sudo killall -9 ntpd
  # Trusty has no swap, lets create some
  - sudo fallocate -l 20M /swapfile; sudo chmod 600 /swapfile; sudo mkswap /swapfile; sudo swapon /swapfile
  - sudo add-apt-repository -y ppa:waja/trusty-backports
  - sudo apt-get update -qq
  - sudo apt-get purge -qq gawk
  # http://docs.travis-ci.com/user/trusty-ci-environment/ indicates, no MySQL on Trusty (yet)
  # # ensure we have a test database in place for tests
  # - mysql -e "create database IF NOT EXISTS test;" -uroot

install:
  - sudo apt-get install -qq --no-install-recommends perl autotools-dev libdbi-dev libldap2-dev libpq-dev libmysqlclient-dev libradcli-dev libkrb5-dev libnet-snmp-perl procps
  - sudo apt-get install -qq --no-install-recommends libdbi0-dev libdbd-sqlite3 libssl-dev dnsutils snmp-mibs-downloader libsnmp-perl snmpd
  - sudo apt-get install -qq --no-install-recommends fping snmp netcat smbclient fping pure-ftpd apache2 postfix libhttp-daemon-ssl-perl
  - sudo apt-get install -qq --no-install-recommends libdbd-sybase-perl libnet-dns-perl
  - sudo apt-get install -qq --no-install-recommends slapd ldap-utils
  - sudo apt-get install -qq --no-install-recommends autoconf automake
  - sudo apt-get install -qq --no-install-recommends faketime
  # Trusty related dependencies (not yet provided)
  - sudo apt-get install -qq --no-install-recommends mariadb-client mariadb-server

before_script:
  # ensure we have a test database in place for tests
  - mysql -e "create database IF NOT EXISTS test;" -uroot
  # Detect LDAP configuration (seems  volatile on trusty env)
  - sed -e 's/cn=admin,dc=nodomain/'$(sudo /usr/sbin/slapcat|grep ^dn:|grep cn=|awk '{print $2}')'/' -i plugins/t/NPTest.cache.travis
  - tools/setup
  - ./configure --enable-libtap
  - make
  - export NPTEST_CACHE="$(pwd)/plugins/t/NPTest.cache.travis"
  - ssh-keygen -t dsa -N "" -f ~/.ssh/id_dsa
  - cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
  - ssh-keyscan localhost >> ~/.ssh/known_hosts
  - touch ~/.ssh/config
  - sudo rm -f /usr/share/mibs/ietf/SNMPv2-PDU /usr/share/mibs/ietf/IPSEC-SPD-MIB /usr/share/mibs/ietf/IPATM-IPMC-MIB /usr/share/mibs/iana/IANA-IPPM-METRICS-REGISTRY-MIB
  - sudo mkdir -p /var/lib/snmp/mib_indexes
  - sudo mkdir /media/ramdisk && sudo chmod 777 /media/ramdisk && sudo mount -t tmpfs -o size=20% none /media/ramdisk

script:
  - if [ "$COVERITY_SCAN_BRANCH" != 1 ]; then make test; fi

notifications:
  irc:
    channels:
      - "chat.freenode.net#Monitoring-Plugins"
    on_success: change
    on_failure: always
    skip_join: true
  email:
    - team@monitoring-plugins.org

