language: minimal
dist: bionic
matrix:
  include:
    - name: OSX (xcode12.2 clang-12.0.0)
      os: osx
      osx_image: xcode12.2
    - name: Linux amd64 (gcc-9)
      os: linux
      addons:
        apt:
          update: true
          sources:
            - ubuntu-toolchain-r-test
            - sourceline: ppa:ubuntu-toolchain-r/test
          packages: g++-9
      env:
        - CXX=g++-9
        - CC=gcc-9
    - name: Linux arm64 (gcc-8)
      os: linux
      arch: arm64
      addons:
        apt:
          packages: g++-8
      env:
        - CXX=g++-8
        - CC=gcc-8
    - name: Linux s390x (gcc-7)
      os: linux
      arch: s390x
    - name: Linux ppc64le (gcc-7)
      os: linux
      arch: ppc64le
    - name: Linux amd64 (clang)
      os: linux
      env:
        - CXX=clang++
        - CC=clang
    - name: Linux arm64 (clang)
      os: linux
      arch: arm64
      env:
        - CXX=clang++
        - CC=clang
    - name: Linux s390x (clang)
      os: linux
      arch: s390x
      env:
        - CXX=clang++
        - CC=clang
    - name: Linux ppc64le (clang)
      os: linux
      arch: ppc64le
      env:
        - CXX=clang++
        - CC=clang
  allow_failures:
    # Those builds frequently fail due to builds longer than maximum allowed.
    # Let them fail quietly.
    arch: ppc64le
before_install:
  - echo $TRAVIS_OS_NAME
  # macos
  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then ./tools/macos-setup-brew.sh; fi
  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then brew install softhsm; fi
  - if [ "$TRAVIS_OS_NAME" == "osx" ]; then sed s/access_bpf/staff/ packaging/macosx/ChmodBPF/ChmodBPF | sudo bash; fi
  # linux
  - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo ./tools/debian-setup.sh --install-optional --install-test-deps -q; fi
  - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo apt-get install -y python3-pip; fi
  # all platforms
  - pip3 install pytest pytest-xdist
before_script:
  - mkdir build
  - cd build
  - cmake -GNinja ..
script:
  - ninja || travis_assert
  - ninja test-programs
  - if [ "$TRAVIS_OS_NAME" == "linux" ]; then sudo setcap cap_net_raw,cap_net_admin+eip run/dumpcap; fi
  - pytest
after_script:
  - if [ -f run/tshark ]; then run/tshark --version; fi
  - ../test/travis-upload-artifacts.sh
