diff --git a/.travis.yml b/.travis.yml index fe5c2d3..5fc729e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,6 +4,10 @@ language: node_js node_js: - '11' +services: + - mongodb + - docker + addons: apt: packages: @@ -12,13 +16,18 @@ addons: env: global: - # run E2E tests against these values - - REACT_APP_NODE_URI="https://pacific.oceanprotocol.com" - - REACT_APP_AQUARIUS_URI="https://aquarius.test.oceanprotocol.com" - - REACT_APP_BRIZO_URI="https://brizo.test.oceanprotocol.com" - - REACT_APP_SECRET_STORE_URI="https://secret-store.oceanprotocol.com" - - REACT_APP_FAUCET_URI="https://faucet.oceanprotocol.com" - - REACT_APP_BRIZO_ADDRESS="0x0474ed05ba757dde575dfaaaa267d9e7f3643abc" + # run E2E tests against local Spree + - REACT_APP_NODE_URI="http://localhost:8545" + - REACT_APP_AQUARIUS_URI="http://localhost:5000" + - REACT_APP_BRIZO_URI="http://localhost:8030" + - REACT_APP_SECRET_STORE_URI="http://localhost:12001" + - REACT_APP_FAUCET_URI="http://localhost:3001" + - REACT_APP_BRIZO_ADDRESS="0x00Bd138aBD70e2F00903268F3Db08f2D25677C9e" + - AQUARIUS_VERSION=v0.3.8 + - BRIZO_VERSION=v0.3.14 + - KEEPER_VERSION=v0.10.3 + - KEEPER_OWNER_ROLE_ADDRESS="0xe2DD09d719Da89e5a3D0F2549c7E24566e947260" + - MONGO_URL="mongodb://localhost:27017/faucetdbtest" before_install: - npm install -g npm @@ -27,12 +36,22 @@ before_install: # https://stackoverflow.com/questions/22475849/node-js-error-enospc#32600959 - echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p +before_script: + # Faucet + - docker run -d -p 127.0.0.1:3001:3001 oceanprotocol/faucet > faucet.log & + # Barge + - git clone https://github.com/oceanprotocol/barge + - cd barge + - bash -x start_ocean.sh --no-pleuston --local-spree-node 2>&1 > start_ocean.log & + - cd .. + script: # - ./scripts/install.sh # runs automatically with npm ci # executing `npm test` scripts individually here, so first one failing will exit the build - npm run lint || travis_terminate 1 - ./scripts/test.sh || travis_terminate 1 - ./scripts/coverage.sh + - ./scripts/keeper.sh - npm run test:e2e || travis_terminate 1 - ./scripts/build.sh @@ -42,8 +61,6 @@ notifications: cache: npm: true directories: - - client/node_modules - - server/node_modules # cache folder with Cypress binary - ~/.cache diff --git a/scripts/keeper.sh b/scripts/keeper.sh new file mode 100755 index 0000000..a7d57f4 --- /dev/null +++ b/scripts/keeper.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# Wait for contracts migration and extract Keeper artifacts + +RETRY_COUNT=0 +COMMAND_STATUS=1 + +mkdir -p artifacts + +until [ $COMMAND_STATUS -eq 0 ] || [ $RETRY_COUNT -eq 120 ]; do + keeper_contracts_docker_id=$(docker container ls | grep keeper-contracts | awk '{print $1}') + docker cp ${keeper_contracts_docker_id}:/keeper-contracts/artifacts/ready ./artifacts/ + COMMAND_STATUS=$? + sleep 5 + let RETRY_COUNT=RETRY_COUNT+1 +done + +if [ $COMMAND_STATUS -ne 0 ]; then + echo "Waited for more than two minutes, but keeper contracts have not been migrated yet. Did you run an Ethereum RPC client and the migration script?" + exit 1 +fi