sudo: required
language: C++
os:
  - osx
services:
  - docker
compiler:
  - gcc

before_install:
  - if ! [ "$DEPLOY_KEY_ENC" == "" ]; then
      echo $DEPLOY_KEY_ENC | base64 --decode | openssl aes-256-cbc -K $encrypted_83a41ac424a6_key -iv $encrypted_83a41ac424a6_iv -out ~/.ssh/id_rsa -d ;
      chmod 600 ~/.ssh/id_rsa ;
    fi
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
      docker build -f Dockerfile -t strawberry-build . || travis_terminate 1;
      docker run --name build -itd strawberry-build /bin/bash || travis_terminate 1;
      docker exec build git clone https://github.com/strawberrymusicplayer/strawberry;
    fi
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
      git fetch --unshallow || travis_terminate 1;
      git pull || travis_terminate 1;
      brew unlink python@2 || travis_terminate 1;
      brew install glib pkgconfig libffi protobuf protobuf-c qt gettext gnutls fftw sqlite chromaprint zlib taglib;
      brew install gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-plugins-ugly gst-libav;
      brew install libcdio libmtp libimobiledevice libplist;
      brew install create-dmg;
      export Qt5_DIR=/usr/local/opt/qt5/lib/cmake;
      export Qt5LinguistTools_DIR=/usr/local/opt/qt5/lib/cmake/Qt5LinguistTools;
      export PATH="/usr/local/opt/gettext/bin:$PATH";
      export PKG_CONFIG_PATH="/usr/local/opt/libffi/lib/pkgconfig/:/usr/local/opt/zlib/lib/pkgconfig:$PKG_CONFIG_PATH";
      ls /usr/local/lib/gstreamer-1.0;
    fi
before_script:
  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker exec build cmake -Hstrawberry -Bbuild ; fi
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then mkdir build; cd build; cmake .. -DUSE_BUNDLE=ON -DUSE_SYSTEM_TAGLIB=ON ; fi
script:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then docker exec build make -C build -j8 ; fi
- if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
      make -j8 || travis_terminate 1;
      make install || travis_terminate 1;
      make dmg;
  fi
after_success:
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then ls -lh strawberry*.dmg; fi
  - if [[ "$TRAVIS_OS_NAME" == "osx" ]] && [[ "$CC_FOR_BUILD" == "gcc" ]] && [ -f ~/.ssh/id_rsa ]; then
      if [[ "$TRAVIS_BRANCH" == "master" ]]; then
        rsync -e "ssh -o StrictHostKeyChecking=no" -va strawberry*.dmg travis@echoes.jkvinge.net:/home/travis/builds/macos;
      elif [[ "$TRAVIS_BRANCH" == "macos" ]]; then
        rsync -e "ssh -o StrictHostKeyChecking=no" -va strawberry*.dmg travis@echoes.jkvinge.net:/home/travis/builds/macos;
      fi
    fi

branches:
  except:
    - # Do not build tags that we create when we upload to GitHub Releases
    - /^(?i:continuous)$/
  
