language: node_js
node_js: 12

cache:
  directories:
    - node_modules
    - app/node_modules
    - $HOME/.cache/electron
    - $HOME/.cache/electron-builder
    - $HOME/.npm/_prebuilds

env:
  global:
    - ELECTRON_CACHE=$HOME/.cache/electron
    - ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder

jobs:
  include:
    - stage: Test
      before_install:
        - sudo apt-get install libsecret-1-dev
        - npm install
      script:
        - npm test

    - stage: Deploy Linux & Windows
      if: tag IS present
      os: linux
      services: docker
      before_install:
        - sudo apt-get install libsecret-1-dev
        - npm install
      script:
        - docker run --rm --env-file <(env | grep -iE 'DEBUG|NODE_|ELECTRON_|NPM_|CI|CIRCLE|TRAVIS|APPVEYOR_|CSC_|_TOKEN|_KEY|AWS_|STRIP|BUILD_') -v ${PWD}:/project -v ~/.cache/electron:/root/.cache/electron -v ~/.cache/electron-builder:/root/.cache/electron-builder electronuserland/builder:wine /bin/bash -c "npm run build -- --linux --win -p always"
      before_cache:
        - rm -rf $HOME/.cache/electron-builder/wine

    - stage: Deploy Mac
      if: tag IS present
      os: osx
      before_install:
        - npm install
      osx_image: xcode10.2
      script:
        - npm run build -- -p always
    
    # - stage: Deploy ARM Linux
    #   if: tag IS present
    #   os: linux
    #   arch: arm64
    #   script:
    #     - npm run build -- --linux AppImage -p always