tokenbridge/.circleci/config.yml

166 lines
5.2 KiB
YAML
Raw Normal View History

2019-05-06 16:18:40 +03:00
version: 2
jobs:
initialize:
docker:
- image: circleci/node:10.15
steps:
- checkout
- run: git submodule update --init
- restore_cache:
name: Restore Yarn Package Cache
keys:
- yarn-{{ checksum "package.json" }}-{{ checksum "yarn.lock" }}
- run: git submodule status > submodule.status
- restore_cache:
name: Restore contracts submodule with compiled contracts
keys:
- contracts-{{ checksum "submodule.status" }}
- run: yarn install --frozen-lockfile
- save_cache:
name: Save Yarn Package Cache
key: yarn-{{ checksum "package.json" }}-{{ checksum "yarn.lock" }}
paths:
- ~/.cache/yarn
- run: touch install_deploy.log; test -d contracts/build/contracts || yarn install:deploy &> install_deploy.log
- store_artifacts:
path: install_deploy.log
- run: test -d contracts/build/contracts || yarn compile:contracts
- save_cache:
name: Save contracts submodule with compiled contracts
key: contracts-{{ checksum "submodule.status" }}
paths:
- contracts
- save_cache:
name: Save initialized project for subsequent jobs
key: initialize-{{ .Environment.CIRCLE_SHA1 }}
paths:
- ~/project
initialize-root:
docker:
- image: circleci/node:10.15
steps:
- checkout
- run: sudo su - -c 'export CI=true && cd /home/circleci/project && yarn initialize && yarn test'
build:
docker:
- image: circleci/node:10.15
steps:
- restore_cache:
key: initialize-{{ .Environment.CIRCLE_SHA1 }}
- run: yarn run build
2019-05-06 16:18:40 +03:00
lint:
docker:
- image: circleci/node:10.15
steps:
- restore_cache:
key: initialize-{{ .Environment.CIRCLE_SHA1 }}
2019-05-06 16:18:40 +03:00
- run: yarn run lint
ansible-lint:
docker:
- image: particlekit/ansible-lint
steps:
- checkout
- run: ./deployment/lint.sh
2019-05-06 16:18:40 +03:00
test:
docker:
- image: circleci/node:10.15
steps:
- restore_cache:
key: initialize-{{ .Environment.CIRCLE_SHA1 }}
2019-05-06 16:18:40 +03:00
- run: yarn run test
oracle-e2e:
docker:
- image: circleci/node:10.15
steps:
- checkout
- run: git submodule update --init
- setup_remote_docker:
docker_layer_caching: true
- run: yarn run oracle-e2e
ui-e2e:
2019-05-20 10:56:18 +03:00
machine:
image: circleci/classic:latest
docker_layer_caching: true
steps:
2019-05-20 10:56:18 +03:00
- checkout
- run: |
echo 'export NVM_DIR="/opt/circleci/.nvm"' >> $BASH_ENV
echo ' [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> $BASH_ENV
- run: nvm install 11.4.0 && nvm alias default 11.4.0
- run: curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
- run: echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
- run: sudo apt-get update && sudo apt-get install yarn
- run: wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
- run: sudo dpkg -i google-chrome-stable_current_amd64.deb
- run: git submodule update --init
- restore_cache:
name: Restore Machine Yarn Package Cache
keys:
- yarn-machine-{{ checksum "package.json" }}-{{ checksum "yarn.lock" }}
- run: yarn install --frozen-lockfile
- save_cache:
name: Save Machine Yarn Package Cache
key: yarn-machine-{{ checksum "package.json" }}-{{ checksum "yarn.lock" }}
paths:
- ~/.cache/yarn
2019-05-20 10:56:18 +03:00
- run: yarn run ui-e2e
monitor-e2e:
machine:
image: circleci/classic:latest
docker_layer_caching: true
steps:
- checkout
- run: git submodule update --init
- run: ./monitor-e2e/run-tests.sh
cover:
docker:
- image: circleci/node:10.15
steps:
- restore_cache:
key: initialize-{{ .Environment.CIRCLE_SHA1 }}
- run: yarn workspace ui run coverage
- run: yarn workspace ui run coveralls
deployment:
machine:
image: circleci/classic:latest
docker_layer_caching: true
steps:
- checkout
- run: git submodule update --init
- run: sudo add-apt-repository ppa:jonathonf/python-3.6 -y
- run: sudo apt-get update
- run: sudo apt-get install python3.6 -y
- run: sudo apt-get install python3-pip python3.6-dev -y
- run: cd deployment && virtualenv -p python3.6 venv
- run: cd deployment && source venv/bin/activate && pip install -r requirements.txt
- run: cd deployment && source venv/bin/activate && molecule test
2019-05-06 16:18:40 +03:00
workflows:
version: 2
tokenbridge:
jobs:
- initialize
- initialize-root:
filters:
branches:
only: master
- build:
requires:
- initialize
- lint:
requires:
- initialize
- test:
requires:
- initialize
- cover:
requires:
- initialize
filters:
branches:
only: master
2019-05-21 10:29:18 +03:00
- ansible-lint
2019-05-20 16:52:02 +03:00
- oracle-e2e
2019-05-20 10:56:18 +03:00
- ui-e2e
- monitor-e2e
- deployment