zepio/.circleci/config.yml

82 lines
2.7 KiB
YAML

version: 2
jobs:
install_deps:
docker:
- image: circleci/node
steps:
- checkout
- run: yarn config delete proxy
- run: yarn install
- save_cache:
key: zec-dependencies-cache-{{ checksum "yarn.lock" }}
paths:
- /usr/local/share/.cache/yarn/v2
- ./node_modules
test:
docker:
- image: electronuserland/builder:wine-chrome
steps:
- checkout
- restore_cache:
key: zec-dependencies-cache-{{ checksum "yarn.lock" }}
- run: apt-get -y update
- run: apt install -y software-properties-common
- run: add-apt-repository ppa:jonathonf/ffmpeg-4
- run: apt-get -y update
- run: apt-get -y install libusb-1.0-0-dev graphicsmagick libudev-dev
- run: apt-get -y install tmux xvfb libxtst6 libxss1 libgtk2.0-0 libnss3 libasound2 libgconf-2-4 ffmpeg frei0r-plugins
- run:
name: Run Webpack
command: yarn dev
background: true
- run:
name: Run Mock RPC API
command: yarn e2e:serve
background: true
- run: yarn wait-on http://localhost:8080 && yarn wait-on http://localhost:18232
- run:
command: Xvfb :44 -auth /tmp/xvfb.auth -ac -screen 0 1024x768x24 -listen tcp
background: true
- run:
command: ffmpeg -y -f x11grab -video_size 1024x768 -i :44 -codec:v libx264 -r 12 /tmp/e2e-record.mp4
background: true
- run: DISPLAY=:44 yarn e2e:run
- run: |
kill -s SIGINT $(pgrep ffmpeg)
sleep 10
kill -s SIGTERM $(pgrep Xvfb)
- store_artifacts:
path: /tmp/e2e-record.mp4
destination: e2e-record.mp4
build_linux:
docker:
- image: electronuserland/builder:wine-chrome
steps:
- checkout
- restore_cache:
key: zec-dependencies-cache-{{ checksum "yarn.lock" }}
- run: yarn electron:dist -l
- store_artifacts:
path: ./dist/zec-react-wallet_0.3.0_amd64.deb
destination: zec-react-wallet_0.3.0_amd64.deb
- run:
name: Upload to Slack
command: |
export GIT_COMMIT_DESC=$(git log --format=oneline -n 1 | sed -E 's/^[^ ]+ (.*)$/\1/g')
curl -F file=@dist/zec-react-wallet_0.3.0_amd64.deb -F channels=$SLACK_CHANNEL -F token=$SLACK_API_TOKEN -F title="${CIRCLE_PROJECT_REPONAME} | branch -> ${CIRCLE_BRANCH} | commit -> ${GIT_COMMIT_DESC}" https://slack.com/api/files.upload
workflows:
version: 2
test_build:
jobs:
- install_deps
# - test:
# requires:
# - install_deps
- build_linux:
requires:
- install_deps