language: node_js
node_js:
- "6"
- "8"
- "10"
- "12"
- "14"
sudo: required

matrix:
  include:
    - os: linux
      dist: bionic
      node_js: 14
      env:
        - DEPLOY="true"
        - MAIN="true"
    - os: linux
      dist: trusty
      node_js: 14
      env:
        - DEPLOY="true"
        - ARCH="armv7"
    - os: linux
      dist: trusty
      node_js: 14
      env:
        - DEPLOY="true"
        - ARCH="armv8"
    - os: linux
      dist: bionic
      node_js: 14
      env:
        - DEPLOY="true"
        - ELECTRON="9.4.4"
    - os: osx
      node_js: 14
      env:
        - DEPLOY="true"
    - os: osx
      node_js: 14
      env:
        - DEPLOY="true"
        - ELECTRON="9.4.4"

env:
  global:
    - GH_REF: github.com/nteract/zmq-prebuilt.git
    - secure: AMY9chDNyNawxPhxAksCREhbQoOmphQKo2hDuYIPXBCUNF6Zik969QlB07TVjo+Bo0KVEbG4ANTdI0FkFIhg4MuJIWUkW30ZDyCSovUx8zyWB/7IN23A4Cx4p4ZnKjezTHUQpZ9InRIZzy9kOR+215IIBP6GfxbUY89eDA6ARElcv1rwDjZqSnLAxfie6v80vIbhWxNK4kQjiEyIez5eWBjRg4//dmb63TvJjc78GFTaqmh6lRIApAyA0uKka14XR/PJw5IpDR+0Q2omHl4t4zbu9MdVNYMSD+c6iNxOq3fqZJwnyJ1ELErbtR8oeKgZX1SOew5QTCUZWQsa+ySYTCzUnhWjhCgN6W0ciVtT2PslS/ZcvnrGGIxJAOmTZwINw8sAp8yYdY9QCJOGdB5ah2oUBLGKElcFGqSblohXUEM1tXeRchmpXiiAxnPNtxc6lkZzz6NxDl2OFXSmjMS4Cr8cA//Bn6gM04xRJyETy86/8KDoL+ENc7gkeiuYUOFqkAn5X8PrqPdsPmF7yA61IF1ru/OgtiuCh+eqnzZKBPImJo2KfUIqVuRi/6eUaDfWLT7d/J84Vbe3p2nPxoFd2pSw60f/lIkzFSRZx3vBjQiW2MVUN7ZTdawMOzE4TpIV7rDOkKe7qJJobquJEjd2X9Z+8JiTYXK2pPN2GceiqAM=

before_install:
  - export DISPLAY=':99.0'
  - Xvfb :99 -screen 0 1024x768x24 > /dev/null 2>&1 &
  - if [ -n "$ELECTRON" ]; then npm install electron@${ELECTRON}; fi

install:
  - if [ -n "$ARCH" ]; then bash ./scripts/cross_compile.sh ${ARCH}; fi
  - if [ -n "$ELECTRON" ]; then npm install --runtime=electron --target=${ELECTRON} --disturl=https://atom.io/download/electron; fi
  - if [ -z "$ARCH" ] && [ -z "$ELECTRON" ]; then npm install; fi

script:
  - if [ -n "$ELECTRON" ]; then travis_retry npm run test:electron; fi
  - if [ -z "$ARCH" ] && [ -z "$ELECTRON" ]; then travis_retry npm run coverage; fi

after_success:
  - if [ "$MAIN" = "true" ]; then bash <(curl -s https://codecov.io/bash); fi
  - if [ "$MAIN" = "true" ]; then bash ./scripts/publish_docs.sh; fi

# deploy:
#   provider: script
#   skip_cleanup: true
#   script:
#     - if [ -z "$ARCH" ]; then ./node_modules/prebuild/bin.js --all --strip -u ${GH_TOKEN}; else bash ./scripts/cross_compile.sh ${ARCH} ${GH_TOKEN}; fi
#   on:
#     condition: $DEPLOY = "true"
#     tags: true

notifications:
  slack:
    secure: nklWvK1Mvoj5zly8PO0WmgQdakaSa5Ixwbxw4+1yyIKgyEUbyHzu0oySMAuyMPPV3nLaTaB/bwFxvrsUP6lxoO1CvQMUTrucLm3H5FXDDuTBBw5/tREFyuUy6XPeVsTPdL9ltrvCn8mTBYNZOM/3BWq6mV0XDHpxAIgE3FA2AUTrNoAxLqXC/V7ZmTnDYuH2T/cdeyP+Ri0UDuszUn/dzTM/fOSVpJ/J74JylJ5FH7x5z9lnD6T/916t8//i4tzoEaFkS4V7QgAj0Bta8BEMP0BN40Wap9UgXfrzafCnHDjcbKRoyVEs09kWMbrdY572EGiow2B+QOlYELLYCcD00VH71zDCpw1Ji6di3v+CxCzxFcNyZz8i/Hb8PIfYTyHV2C43X/doVzC3MVllw+d3IVTR0smn2jwjhr+szm9MDQcnUxq5zuOCiAMzE51hbhLQATUNQIiqsD0X+NK3o5urb/Fjb6I6q3MO7GJkuvsda1ni5OEPeFAlYKjvgBiwUZnc32uBHfd3iGzbdwzihSKreuIdVTCtmlnhVmM0ztg5E+BQ8SxWJPxLw5c+9ZaEja5bVCkZF4L3P/EcsdBQ1YmorsROgf/p+PsrnqKAy9zU/NynQQYODx28IPcuQgJbhzeTUEINnFej513BRnkREgjLY5bjXY6iLjKdlRo8kPVqrj8=
