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