Continuous Integration (CI)

All the following configurations work with electron-react-boilerplate.

matrix:
include:
- os: osx
language: node_js
node_js:
- node
env:
- ELECTRON_CACHE=$HOME/.cache/electron
- ELECTRON_BUILDER_CACHE=$HOME/.cache/electron-builder
- os: linux
language: node_js
node_js:
- node
services:
- xvfb
addons:
apt:
sources:
- sourceline: 'ppa:ubuntu-toolchain-r/test'
packages:
- gcc-multilib
- g++-8
- g++-multilib
- icnsutils
- graphicsmagick
- xz-utils
- xorriso
- rpm
before_cache:
- rm -rf $HOME/.cache/electron-builder/wine
cache:
yarn: true
directories:
- node_modules
- $(npm config get prefix)/lib/node_modules
- $HOME/.cache/electron
- $HOME/.cache/electron-builder
before_install:
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export CXX="g++-8"; fi
install:
- yarn --ignore-engines
# On Linux, initialize "virtual display". See before_script
- |
if [ "$TRAVIS_OS_NAME" == "linux" ]; then
/sbin/start-stop-daemon \
--start \
--quiet \
--pidfile /tmp/custom_xvfb_99.pid \
--make-pidfile \
--background \
--exec /usr/bin/Xvfb \
-- :99 -ac -screen 0 1280x1024x16
else
:
fi
before_script:
# On Linux, create a "virtual display". This allows browsers to work properly
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then export DISPLAY=:99.0; fi
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then sleep 3; fi
script:
- yarn package-ci
- yarn lint
- yarn ts
- yarn test
- yarn build-e2e
- yarn test-e2e