language: node_js
node_js: 11
osx_image: xcode11

stages:
  - Build
  - name: Docs
    if: branch = master

jobs:
  include:
    - stage: 'Build'
      if: branch = xxx
      os: linux
      before_install:
        - set -e
        - rm app/node_modules/.yarn-integrity || true
        - yarn
      script:
        - set -e
        - python -c "import fcntl; fcntl.fcntl(1, fcntl.F_SETFL, 0)" # https://github.com/travis-ci/travis-ci/issues/8920
        - scripts/build-native.js
        - yarn run build:typings
        - yarn run build
        - scripts/prepackage-plugins.js
        - travis_wait scripts/build-linux.js

    - stage: 'Build'
      os: osx
      before_install:
        - set -e
        - rm app/node_modules/.yarn-integrity || true
        - yarn
      script:
        - set -e
        - scripts/build-native.js
        - yarn run build:typings
        - yarn run build
        - scripts/prepackage-plugins.js
        - travis_wait scripts/build-macos.js

    - stage: 'Docs'
      os: linux
      if: branch = master
      script:
        - set -e
        - '[ -z "${encrypted_4e2fb4889ef8_iv}" ] && exit 0'
        - openssl aes-256-cbc -K $encrypted_4e2fb4889ef8_key -iv $encrypted_4e2fb4889ef8_iv -in .travis.ssh.key.enc -out .travis.ssh.key -d
        - eval "$(ssh-agent -s)"
        - chmod 600 .travis.ssh.key
        - ssh-add .travis.ssh.key
        - yarn
        - yarn run docs
        - rsync -e "ssh -o StrictHostKeyChecking=no" -arv docs/api/ root@ajenti.org:/srv/terminus-docs/

dist: xenial
sudo: false

addons:
  apt:
    packages:
    - rpm
    - yarn
    - libsecret-1-dev
    sources:
    - sourceline: 'deb https://dl.yarnpkg.com/debian/ stable main'
      key_url: 'https://dl.yarnpkg.com/debian/pubkey.gpg'


cache:
  directories:
  - 'terminus-*/node_modules'
  - $HOME/.cache/yarn
  - $HOME/.cache/electron
  - $HOME/.cache/electron-builder
