language: generic
os:
    - linux
    - osx
dist: bionic
osx_image: xcode12.2
addons:
    apt:
        - cpanminus
        - python3-pip
        - python3-setuptools
        - python3-tk
    homebrew:
        - perl
        - cpanminus
        - create-dmg
cache:
    directories:
        - $HOME/perl_modules
        - $HOME/tidyall_d
deploy:
    provider: releases
    token:
        secure: SrKnXigL/oUHNbqpbGx0DB1o+LAEkfPA2QTBllXxg4V+1vGAHBT9FRecp8Do+no/zSPRttH+sPDEPBXMMAV0BWVKKw5Mxas/S5ulVkNdfxpTq1bKjI3EjZbVsS1zZlHe0P77TDFDAj8zyeiYecBM08suhd9OvScieiPlpFPE1UYp9vvNKaBgc66IRNnIDRBdktW4YLsgvkrpXnxGPy8gGwylsTeOzNs5/r5dzHswGdksJl46kqCIbV+s4/Xcx+BEnfibWzEFZmLQoGKhoukbSis3YXGIlERcgiVU6v7S2D4wbwUXSAKOj/Io7z/88Co2P3Qbm538kf/pjeR9+DaM1HsHQQcL0detCjjLog+ekKr2fM00QI1yRmqOiZtuXxTMpneYX73EBmPt4la4rjKmnlhS+NTxrynHcPZD8QopCPvoZ3sUD6dQCrbi8kcGxe13srfdJ3KjuWZXdedLIOgNELbj5o6GNivsanWna59yoJzChC5/H5Jjllncvzbp56TZfEkM1NJkE84jjSS8Sn2KLXjD0woHIsuUSkRNExrCt/6QmIub/QxZPUhwQ2J0xCv1IJPdd0XvO3gCqasG3UA2Q0OlP172x92ocOV/wm1/4wfoG6v/mn+bX5ZwvrsMmm+r3FKKlM8L3T33yFjMzgG/YMoRN8w7pXUIkdtZK8EEDVg=
    file: PySolFC.dmg
    on:
        repo: shlomif/PySolFC
        tags: true
    skip_cleanup: true
before_install:
    - if test "$TRAVIS_OS_NAME" = "osx" ; then
        wget --content-disposition https://sourceforge.net/projects/pysolfc/files/PySolFC-Cardsets/minimal/PySolFC-Cardsets--Minimal-2.2.0.tar.xz/download &&
        tar xJf PySolFC-Cardsets--Minimal-3.0.0.tar.xz &&
        mv PySolFC-Cardsets--Minimal-3.0.0/cardset-* data ;
        fi
    - if test "$TRAVIS_OS_NAME" = "osx" ; then
        PYVER=3.9.1 &&
        PYVER_SHORT=3.9 &&
        wget -O python.pkg "https://www.python.org/ftp/python/${PYVER}/python-${PYVER}-macosx10.9.pkg" &&
        sudo installer -pkg python.pkg -target / &&
        export PATH="/Library/Frameworks/Python.framework/Versions/${PYVER_SHORT}/bin:${PATH}" ;
        fi
    - cpanm local::lib
    - eval "$(perl -Mlocal::lib=${HOME}/perl_modules)"
install:
    # Tests are failing for them sometimes
    - cpanm --notest Capture::Tiny IPC::System::Simple
    - cpanm Code::TidyAll::Plugin::Flake8 Perl::Tidy Test::Code::TidyAll Test::Differences Test::TrailingSpace
    - export PY_MODS='attrs configobj pycotap pysol-cards setuptools six'
    - if test "$TRAVIS_OS_NAME" = "osx" ; then export PY_MODS="--no-binary=Pillow Pillow $PY_MODS" ; fi
    - sudo -H pip3 install --upgrade wheel
    - sudo -H pip3 install --upgrade $PY_MODS flake8 flake8-import-order
script:
    - export TIDYALL_DATA_DIR="$HOME/tidyall_d"
    - bash -x scripts/travis-ci-build
    - if test "$TRAVIS_OS_NAME" = "osx" ; then PYTHONPATH="." python3 setup_osx.py py2app ; fi
    - if test "$TRAVIS_OS_NAME" = "osx" ; then
        create-dmg --volname "Install PySolFC"
        --volicon data/PySol.icns
        --background html-src/images/pysollogo01.png
        --window-size 800 400
        --icon PySolFC.app 200 185
        --app-drop-link 600 185
        --skip-jenkins
        PySolFC.dmg dist ; fi
