dist: bionic
os: linux
language: python
python: '3.7'
stages:
  - lint
  - test
env:
  global:
    - TEST_DIR=${HOME}/test_basicswap2
    - TEST_RELOAD_PATH=~/test_basicswap1
    - BIN_DIR=~/cached_bin
    - PARTICL_BINDIR=${BIN_DIR}/particl
    - BITCOIN_BINDIR=${BIN_DIR}/bitcoin
    - LITECOIN_BINDIR=${BIN_DIR}/litecoin
    - XMR_BINDIR=${BIN_DIR}/monero
cache:
  directories:
    - "$BIN_DIR"
before_install:
  - sudo apt-get install -y wget python3-pip gnupg unzip protobuf-compiler automake libtool pkg-config
install:
  - travis_retry pip install tox pytest
before_script:
  - wget -O coincurve-anonswap.zip https://github.com/tecnovert/coincurve/archive/refs/tags/anonswap_v0.1.zip
  - unzip -d coincurve-anonswap coincurve-anonswap.zip
  - mv ./coincurve-anonswap/*/{.,}* ./coincurve-anonswap || true
  - cd coincurve-anonswap
  - python3 setup.py install --force
script:
  - cd $TRAVIS_BUILD_DIR
  - python3 setup.py install
  - basicswap-prepare --bindir=${BIN_DIR} --preparebinonly --withcoins=particl,bitcoin,litecoin,monero
  - export DATADIRS="${TEST_DIR}"
  - mkdir -p "${DATADIRS}/bin"
  - cp -r ${BIN_DIR} "${DATADIRS}/bin"
  - mkdir -p "${TEST_RELOAD_PATH}/bin"
  - cp -r ${BIN_DIR} "${TEST_RELOAD_PATH}/bin"
  - # tox
  - pytest tests/basicswap/test_xmr.py
  - pytest tests/basicswap/test_xmr_reload.py
  - pytest tests/basicswap/test_xmr_bids_offline.py
after_success:
  - echo "End test"
jobs:
  include:
    - stage: lint
      env:
      cache: false
      install:
        - travis_retry pip install flake8==3.7.0
        - travis_retry pip install codespell==1.15.0
      before_script:
      script:
        - PYTHONWARNINGS="ignore" flake8 --ignore=E501,F841,W503 --exclude=basicswap/contrib,basicswap/interface/contrib,messages_pb2.py,.eggs,.tox,bin/install_certifi.py
        - codespell --check-filenames --disable-colors --quiet-level=7 --ignore-words=tests/lint/spelling.ignore-words.txt -S .git,.eggs,.tox,pgp,*.pyc,*basicswap/contrib,*basicswap/interface/contrib,*mnemonics.py,bin/install_certifi.py,*basicswap/static
      after_success:
        - echo "End lint"
    - stage: test
      env:
