diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 000000000..89d1d83e5 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,60 @@ +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 update || travis_terminate 1; + #brew upgrade || 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; + 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 ; 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)$/ + diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000..15dad8488 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,5 @@ +from jonaski/opensuse:lp151 + +run mkdir -p /usr/src/app +workdir /usr/src/app +copy . /usr/src/app