language: python

matrix:
  include:
    - name: "Linux (Python 3.8)"
      python: 3.8
      os: linux
      distro: bionic
    - name: "Linux (Python 3.6)"
      python: 3.6
      os: linux
      env: WAFOPTS="--build-type=debug"
    - name: "Linux (Python 2.7, nodeps)"
      python: 2.7
      os: linux
      distro: trusty
      env: WAFOPTS="--nodeps"
    - name: "Linux (Python pypy3.5)"
      language: python
      python: "pypy3.5"
      os: linux
    - name: "Linux (double, fftw3)"
      python: 3.8
      os: linux
      env: HAVE_AUBIO_DOUBLE=1 CFLAGS="-O3" WAFOPTS="--enable-fftw3"
    - name: "Linux (default, dpkg-buildflags)"
      os: linux
      env: CFLAGS="`dpkg-buildflags --get CFLAGS`" LDFLAGS="`dpkg-buildflags --get LDFLAGS`"

    - name: "macOS (xcode11)"
      language: shell
      os: osx
      osx_image: xcode11
    - name: "macOS (xcode12, lib only)"
      language: shell
      os: osx
      osx_image: xcode12
      script:
        - make test_lib_only_clean
    - name: "macOS (xcode10, noopt, nodeps)"
      language: shell
      os: osx
      osx_image: xcode10
      env: CFLAGS="-Os" HAVE_AUBIO_DOUBLE=1 WAFOPTS="--disable-accelerate --nodeps"
    - name: "iOS"
      language: shell
      os: osx
      env: WAFOPTS="--with-target-platform=ios --nodeps" AUBIO_NOTESTS=1
    - name: "iOSSimulator"
      language: shell
      os: osx
      env: WAFOPTS="--with-target-platform=iosimulator --nodeps" AUBIO_NOTESTS=1

#    - name: "Windows (Python 3.8.0, lib only)"
#      language: shell
#      os: windows
#      before_install:
#        - choco install python --version 3.8.0
#        - choco install make
#        - python -m pip install --upgrade pip
#      env: PATH=/c/Python38:/c/Python38/Scripts:$PATH AUBIO_NOTESTS=1

addons:
  apt:
    packages:
    - bzip2
    - libavcodec-dev
    - libavformat-dev
    - libswresample-dev
    - libavutil-dev
    - libsndfile1-dev
    - libsamplerate-dev
    - libvorbis-dev
    - libflac-dev
    - libjack-dev
    - libasound2-dev
    - libfftw3-dev
    - librubberband-dev
    - sox
    - lcov
  homebrew:
    packages:
    - sox
    - ffmpeg
    - libsndfile
    - libvorbis
    - flac
    - libsamplerate
    - rubberband
    - lcov
    update: true

install:
  - make getwaf deps_python
  - which pip
  - pip --version
  - pip install coverage

script:
  - make create_test_sounds
  - |
    if [[ -z "$AUBIO_NOTESTS" ]]; then
      make test_lib_python_clean
      make coverage
    else
      make test_lib_only_clean
    fi;

after_success:
  - |
    if [[ -z "$AUBIO_NOTESTS" ]]; then
      # upload to codecov
      bash <(curl -s https://codecov.io/bash)
    fi

notifications:
    irc:
        channels:
            - "irc.freenode.org#aubio"
        use_notice: true
    webhooks:
        urls:
            - https://webhooks.gitter.im/e/81e7733a5b1d977854b4
        on_success: change  # options: [always|never|change] default: always
        on_failure: always  # options: [always|never|change] default: always
        on_start: never     # options: [always|never|change] default: always
