2019-10-21 07:37:07 -07:00
|
|
|
version: 2.1
|
|
|
|
orbs:
|
|
|
|
bridge:
|
|
|
|
executors:
|
|
|
|
node-dev:
|
|
|
|
docker:
|
|
|
|
- image: circleci/node:10.15
|
|
|
|
environment:
|
|
|
|
TARGET_NETWORK: development
|
2019-10-24 13:45:25 -07:00
|
|
|
commands:
|
|
|
|
fetch_repo:
|
|
|
|
description: "Checkout and init submodules"
|
|
|
|
steps:
|
|
|
|
- checkout
|
|
|
|
- run:
|
2019-10-29 08:47:21 -07:00
|
|
|
name: "Initialize submodules"
|
2019-10-24 13:45:25 -07:00
|
|
|
command: git submodule update --init
|
|
|
|
setup_docker:
|
|
|
|
description: "Set up remote docker engine"
|
|
|
|
steps:
|
|
|
|
- setup_remote_docker:
|
|
|
|
version: 18.09.3
|
|
|
|
docker_layer_caching: true
|
2019-10-28 07:55:47 -07:00
|
|
|
restore_tss_image:
|
|
|
|
description: "Restores tss image from cache"
|
|
|
|
steps:
|
|
|
|
- restore_cache:
|
|
|
|
name: "Restore tss image from cache"
|
|
|
|
key: "tss-v1-{{ .Branch }}"
|
2019-10-28 09:14:57 -07:00
|
|
|
- load_tss
|
2019-10-24 13:45:25 -07:00
|
|
|
save_tss:
|
|
|
|
description: "Save tss image to workspace"
|
|
|
|
steps:
|
|
|
|
- run:
|
|
|
|
name: "Save tss image to archive"
|
|
|
|
command: |
|
2019-10-28 09:14:57 -07:00
|
|
|
mkdir -p ./workspace
|
2019-10-24 13:45:25 -07:00
|
|
|
docker save tss | gzip > ./workspace/tss.tar.gz
|
|
|
|
- persist_to_workspace:
|
2019-10-28 07:55:47 -07:00
|
|
|
name: "Save tss image to workspace"
|
2019-10-24 13:45:25 -07:00
|
|
|
root: ./workspace
|
|
|
|
paths:
|
|
|
|
- tss.tar.gz
|
2019-10-28 07:55:47 -07:00
|
|
|
- save_cache:
|
|
|
|
name: "Save tss image to cache"
|
|
|
|
paths:
|
|
|
|
- ./workspace/tss.tar.gz
|
|
|
|
key: "tss-v1-{{ .Branch }}"
|
2019-10-24 13:45:25 -07:00
|
|
|
load_tss:
|
|
|
|
description: "Load tss image from workspace"
|
|
|
|
steps:
|
|
|
|
- run:
|
|
|
|
name: "Load tss image from archive"
|
2019-11-03 02:53:49 -08:00
|
|
|
command: docker load -i ./workspace/tss.tar.gz || true
|
2019-10-28 05:47:07 -07:00
|
|
|
save_docker_logs:
|
2019-10-28 07:23:16 -07:00
|
|
|
description: "Save docker logs"
|
2019-10-28 05:47:07 -07:00
|
|
|
parameters:
|
|
|
|
validator:
|
|
|
|
type: integer
|
|
|
|
default: 1
|
|
|
|
steps:
|
2019-10-28 06:49:32 -07:00
|
|
|
- run:
|
|
|
|
name: "Saving validator<< parameters.validator >> logs"
|
|
|
|
command: |
|
|
|
|
mkdir -p ./artifacts/logs/validator<< parameters.validator >>
|
2019-10-28 07:23:16 -07:00
|
|
|
docker logs validator<< parameters.validator >>_rabbitmq_1 > ./artifacts/logs/validator<< parameters.validator >>/rabbitmq.log
|
|
|
|
docker logs validator<< parameters.validator >>_redis_1 > ./artifacts/logs/validator<< parameters.validator >>/redis.log
|
2019-10-28 08:55:09 -07:00
|
|
|
docker logs validator<< parameters.validator >>_proxy_1 > ./artifacts/logs/validator<< parameters.validator >>/proxy.log
|
2019-10-28 07:23:16 -07:00
|
|
|
docker logs validator<< parameters.validator >>_eth-watcher_1 > ./artifacts/logs/validator<< parameters.validator >>/eth-watcher.log
|
|
|
|
docker logs validator<< parameters.validator >>_bnc-watcher_1 > ./artifacts/logs/validator<< parameters.validator >>/bnc-watcher.log
|
|
|
|
docker logs validator<< parameters.validator >>_signer_1 > ./artifacts/logs/validator<< parameters.validator >>/signer.log
|
|
|
|
docker logs validator<< parameters.validator >>_keygen_1 > ./artifacts/logs/validator<< parameters.validator >>/keygen.log
|
|
|
|
when: always
|
|
|
|
save_artifacts:
|
|
|
|
description: "Save and upload tests results, save validator logs to artifacts"
|
|
|
|
steps:
|
|
|
|
- run:
|
|
|
|
name: "Save tests results"
|
|
|
|
command: |
|
|
|
|
mkdir -p ./artifacts/test_results/mocha
|
|
|
|
docker cp "tests:/tests/results.xml" "./artifacts/test_results/mocha/results.xml"
|
|
|
|
when: always
|
|
|
|
- store_test_results:
|
|
|
|
path: ./artifacts/test_results/mocha
|
|
|
|
when: always
|
|
|
|
- save_docker_logs:
|
|
|
|
validator: 1
|
|
|
|
- save_docker_logs:
|
|
|
|
validator: 2
|
|
|
|
- save_docker_logs:
|
|
|
|
validator: 3
|
2019-10-28 07:55:47 -07:00
|
|
|
- run:
|
|
|
|
name: "Save ganache logs"
|
|
|
|
command: |
|
2019-11-25 06:32:31 -08:00
|
|
|
mkdir -p ./artifacts/logs/ethereum
|
|
|
|
docker logs ethereum-testnet_side-oracle_1 > ./artifacts/logs/ethereum/side-oracle.log
|
2019-11-26 04:03:55 -08:00
|
|
|
docker logs ethereum-testnet_ganache_home_1 > ./artifacts/logs/ethereum/ganache_home.log
|
|
|
|
docker logs ethereum-testnet_ganache_side_1 > ./artifacts/logs/ethereum/ganache_side.log
|
2019-10-28 07:55:47 -07:00
|
|
|
when: always
|
2019-11-14 10:48:32 -08:00
|
|
|
- run:
|
|
|
|
name: "Save binance logs"
|
|
|
|
command: |
|
|
|
|
mkdir -p ./artifacts/logs/binance
|
|
|
|
docker logs binance-testnet_node_1 > ./artifacts/logs/binance/node.log
|
|
|
|
docker logs binance-testnet_api-server_1 > ./artifacts/logs/binance/api-server.log
|
|
|
|
docker logs binance-testnet_http-api_1 > ./artifacts/logs/binance/http-api.log
|
|
|
|
when: always
|
2019-10-28 07:23:16 -07:00
|
|
|
- store_artifacts:
|
|
|
|
path: ./artifacts
|
2019-11-26 04:03:55 -08:00
|
|
|
destination: artifacts
|
2019-10-28 06:49:32 -07:00
|
|
|
when: always
|
2019-10-21 07:37:07 -07:00
|
|
|
jobs:
|
2019-10-24 06:05:33 -07:00
|
|
|
init_tss:
|
2019-10-23 09:12:27 -07:00
|
|
|
executor: bridge/node-dev
|
|
|
|
steps:
|
2019-10-24 13:45:25 -07:00
|
|
|
- bridge/fetch_repo
|
|
|
|
- bridge/setup_docker
|
2019-10-28 07:55:47 -07:00
|
|
|
- bridge/restore_tss_image
|
2019-10-24 13:45:25 -07:00
|
|
|
- run:
|
|
|
|
name: "Build tss image"
|
2019-10-28 07:55:47 -07:00
|
|
|
command: docker build --cache-from tss -t tss ./src/tss || docker build -t tss ./src/tss
|
2019-10-24 13:45:25 -07:00
|
|
|
- bridge/save_tss
|
2019-10-21 11:43:31 -07:00
|
|
|
run_tests:
|
2019-10-21 07:37:07 -07:00
|
|
|
executor: bridge/node-dev
|
|
|
|
steps:
|
2019-10-24 13:45:25 -07:00
|
|
|
- bridge/fetch_repo
|
|
|
|
- bridge/setup_docker
|
2019-10-23 09:12:27 -07:00
|
|
|
- attach_workspace:
|
2019-10-24 06:05:33 -07:00
|
|
|
at: ./workspace
|
2019-10-24 13:45:25 -07:00
|
|
|
- bridge/load_tss
|
2019-10-21 11:43:31 -07:00
|
|
|
- run:
|
2019-10-24 13:45:25 -07:00
|
|
|
name: "Init tests environment"
|
|
|
|
command: |
|
2019-11-11 09:14:07 -08:00
|
|
|
BLOCK_TIME=3 ./demo/start-ethereum-environment.sh
|
|
|
|
./demo/start-binance-environment.sh
|
2019-10-24 13:45:25 -07:00
|
|
|
N=1 ./demo/validator-demo.sh -d
|
|
|
|
N=2 ./demo/validator-demo.sh -d
|
|
|
|
N=3 ./demo/validator-demo.sh -d
|
|
|
|
- run:
|
|
|
|
name: "Wait until validator nodes are ready"
|
|
|
|
command: |
|
2019-10-28 07:55:47 -07:00
|
|
|
docker run --network validator1_test_network --entrypoint ash appropriate/curl:latest -c "until curl -X GET http://proxy:8002/info > /dev/null 2>&1; do sleep 1; done"
|
|
|
|
docker run --network validator2_test_network --entrypoint ash appropriate/curl:latest -c "until curl -X GET http://proxy:8002/info > /dev/null 2>&1; do sleep 1; done"
|
|
|
|
docker run --network validator3_test_network --entrypoint ash appropriate/curl:latest -c "until curl -X GET http://proxy:8002/info > /dev/null 2>&1; do sleep 1; done"
|
2019-10-28 06:49:32 -07:00
|
|
|
no_output_timeout: 3m
|
2019-10-24 13:45:25 -07:00
|
|
|
- run:
|
|
|
|
name: "Build and prepare tests container"
|
|
|
|
command: |
|
|
|
|
docker build -t tests ./tests
|
2019-11-11 09:14:07 -08:00
|
|
|
docker create --env-file ./tests/.env --name tests tests
|
2019-11-11 10:33:55 -08:00
|
|
|
docker network connect binance_net tests
|
2019-11-22 02:39:30 -08:00
|
|
|
docker network connect ethereum_side_rpc_net tests
|
|
|
|
docker network connect ethereum_home_rpc_net tests
|
2019-10-27 09:21:36 -07:00
|
|
|
docker network connect validator1_test_network tests
|
|
|
|
docker network connect validator2_test_network tests
|
|
|
|
docker network connect validator3_test_network tests
|
2019-10-24 13:45:25 -07:00
|
|
|
- run:
|
|
|
|
name: "Run tests"
|
2019-10-28 05:47:07 -07:00
|
|
|
command: docker start -a tests
|
2019-10-28 11:22:48 -07:00
|
|
|
- run:
|
|
|
|
name: "Check alive docker containers"
|
|
|
|
command: docker ps
|
|
|
|
when: always
|
2019-10-28 07:23:16 -07:00
|
|
|
- bridge/save_artifacts
|
2019-10-21 07:37:07 -07:00
|
|
|
workflows:
|
|
|
|
version: 2
|
|
|
|
main:
|
|
|
|
jobs:
|
2019-10-24 06:05:33 -07:00
|
|
|
- init_tss
|
2019-10-23 09:12:27 -07:00
|
|
|
- run_tests:
|
|
|
|
requires:
|
2019-10-24 06:05:33 -07:00
|
|
|
- init_tss
|