aboutsummaryrefslogtreecommitdiffstats
path: root/.circleci/config.yml
diff options
context:
space:
mode:
Diffstat (limited to '.circleci/config.yml')
-rw-r--r--.circleci/config.yml593
1 files changed, 348 insertions, 245 deletions
diff --git a/.circleci/config.yml b/.circleci/config.yml
index a6fb511b9..7811b9b34 100644
--- a/.circleci/config.yml
+++ b/.circleci/config.yml
@@ -1,250 +1,353 @@
version: 2
jobs:
- build:
- docker:
- - image: circleci/node:9
- environment:
- CONTRACTS_COMMIT_HASH: '9ed05f5'
- working_directory: ~/repo
- steps:
- - checkout
- - run: echo 'export PATH=$HOME/CIRCLE_PROJECT_REPONAME/node_modules/.bin:$PATH' >> $BASH_ENV
- - restore_cache:
- name: Restore Yarn Package Cache
- keys:
- - yarn-packages-{{ .Branch }}-{{ checksum "yarn.lock" }}
- - yarn-packages-{{ .Branch }}
- - yarn-packages-master
- - yarn-packages-
- - run:
- name: yarn
- command: yarn --frozen-lockfile install
- - save_cache:
- name: Save Yarn Package Cache
- key: yarn-packages-{{ .Branch }}-{{ checksum "yarn.lock" }}
- paths:
- - node_modules/
- - run: >
- if [ -z "$(git diff --name-only v2-prototype packages/website)" ]; then
- yarn build --exclude website
- else
- yarn build
- fi
- - save_cache:
- key: repo-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo
- test-contracts-ganache:
- docker:
- - image: circleci/node:9
- working_directory: ~/repo
- steps:
- - restore_cache:
- keys:
- - repo-{{ .Environment.CIRCLE_SHA1 }}
- - run: yarn wsrun test:circleci contracts
- test-contracts-geth:
- docker:
- - image: circleci/node:9
- - image: albrow/0x-devnet
- working_directory: ~/repo
- steps:
- - restore_cache:
- keys:
- - repo-{{ .Environment.CIRCLE_SHA1 }}
- # HACK(albrow): we need to sleep 10 seconds to ensure the devnet is
- # initialized
- - run: sleep 10 && TEST_PROVIDER=geth yarn wsrun test contracts
- test-publish:
- docker:
- - image: circleci/node:9
- - image: verdaccio/verdaccio
- working_directory: ~/repo
- steps:
- - restore_cache:
- keys:
- - repo-{{ .Environment.CIRCLE_SHA1 }}
- - run: yarn test:publish:circleci
- test-rest:
- docker:
- - image: circleci/node:9
- working_directory: ~/repo
- steps:
- - restore_cache:
- keys:
- - repo-{{ .Environment.CIRCLE_SHA1 }}
- - run: yarn wsrun test:circleci 0x.js
- - run: yarn wsrun test:circleci @0xproject/abi-gen
- - run: yarn wsrun test:circleci @0xproject/assert
- - run: yarn wsrun test:circleci @0xproject/base-contract
- - run: yarn wsrun test:circleci @0xproject/connect
- - run: yarn wsrun test:circleci @0xproject/contract-wrappers
- - run: yarn wsrun test:circleci @0xproject/dev-utils
- - run: yarn wsrun test:circleci @0xproject/json-schemas
- - run: yarn wsrun test:circleci @0xproject/metacoin
- - run: yarn wsrun test:circleci @0xproject/order-utils
- - run: yarn wsrun test:circleci @0xproject/order-watcher
- - run: yarn wsrun test:circleci @0xproject/sol-compiler
- - run: yarn wsrun test:circleci @0xproject/sol-cov
- - run: yarn wsrun test:circleci @0xproject/sra-report
- - run: yarn wsrun test:circleci @0xproject/subproviders
- - run: yarn wsrun test:circleci @0xproject/web3-wrapper
- - run: yarn wsrun test:circleci @0xproject/utils
- - save_cache:
- key: coverage-0xjs-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/0x.js/coverage/lcov.info
- - save_cache:
- key: coverage-abi-gen-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/abi-gen/coverage/lcov.info
- - save_cache:
- key: coverage-assert-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/assert/coverage/lcov.info
- - save_cache:
- key: coverage-base-contract-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/base-contract/coverage/lcov.info
- - save_cache:
- key: coverage-connect-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/connect/coverage/lcov.info
- - save_cache:
- key: coverage-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/contract-wrappers/coverage/lcov.info
- - save_cache:
- key: coverage-dev-utils-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/dev-utils/coverage/lcov.info
- - save_cache:
- key: coverage-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/json-schemas/coverage/lcov.info
- - save_cache:
- key: coverage-metacoin-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/metacoin/coverage/lcov.info
- - save_cache:
- key: coverage-order-utils-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/order-utils/coverage/lcov.info
- - save_cache:
- key: coverage-order-watcher-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/order-watcher/coverage/lcov.info
- - save_cache:
- key: coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/sol-compiler/coverage/lcov.info
- - save_cache:
- key: coverage-sol-cov-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/sol-cov/coverage/lcov.info
- - save_cache:
- key: coverage-sra-report-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/sra-report/coverage/lcov.info
- - save_cache:
- key: coverage-subproviders-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/subproviders/coverage/lcov.info
- - save_cache:
- key: coverage-web3-wrapper-{{ .Environment.CIRCLE_SHA1 }}
- paths:
- - ~/repo/packages/web3-wrapper/coverage/lcov.info
- static-tests:
- working_directory: ~/repo
- docker:
- - image: circleci/node:9
- steps:
- - restore_cache:
- keys:
- - repo-{{ .Environment.CIRCLE_SHA1 }}
- - run: yarn prettier:ci
- - run: yarn lerna run lint
- submit-coverage:
- docker:
- - image: circleci/node:9
- working_directory: ~/repo
- steps:
- - restore_cache:
- keys:
- - repo-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-0xjs-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-abi-gen-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-assert-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-base-contract-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-connect-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-dev-utils-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-metacoin-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-order-utils-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-order-watcher-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-sol-cov-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-sra-report-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-subproviders-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-web3-wrapper-{{ .Environment.CIRCLE_SHA1 }}
- - restore_cache:
- keys:
- - coverage-contracts-{{ .Environment.CIRCLE_SHA1 }}
- - run: yarn report_coverage
+ build:
+ resource_class: medium+
+ docker:
+ - image: circleci/node:9
+ environment:
+ CONTRACTS_COMMIT_HASH: '9ed05f5'
+ working_directory: ~/repo
+ steps:
+ - checkout
+ - run: echo 'export PATH=$HOME/CIRCLE_PROJECT_REPONAME/node_modules/.bin:$PATH' >> $BASH_ENV
+ - run:
+ name: install-yarn
+ command: sudo npm install --global yarn@1.9.4
+ - run:
+ name: yarn
+ command: yarn --frozen-lockfile install || yarn --frozen-lockfile install
+ - run: yarn build:ci:no_website
+ - save_cache:
+ key: repo-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo
+ build-website:
+ resource_class: medium+
+ docker:
+ - image: circleci/node:9
+ working_directory: ~/repo
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ - run: cd packages/website && yarn build
+ test-contracts-ganache:
+ docker:
+ - image: circleci/node:9
+ working_directory: ~/repo
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ - run: yarn wsrun test:circleci contracts
+ test-contracts-geth:
+ docker:
+ - image: circleci/node:9
+ - image: 0xorg/devnet
+ working_directory: ~/repo
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ # HACK(albrow): we need to sleep 10 seconds to ensure the devnet is
+ # initialized
+ - run: sleep 10 && TEST_PROVIDER=geth yarn wsrun test contracts
+ test-publish:
+ resource_class: medium+
+ docker:
+ - image: circleci/node:9
+ - image: 0xorg/verdaccio
+ working_directory: ~/repo
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ - run: yarn test:publish:circleci
+ test-doc-generation:
+ docker:
+ - image: circleci/node:9
+ working_directory: ~/repo
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ - run: yarn test:generate_docs:circleci
+ test-rest:
+ docker:
+ - image: circleci/node:9
+ working_directory: ~/repo
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ - run: yarn wsrun test:circleci @0x/abi-gen
+ - run: yarn wsrun test:circleci @0x/assert
+ - run: yarn wsrun test:circleci @0x/base-contract
+ - run: yarn wsrun test:circleci @0x/connect
+ - run: yarn wsrun test:circleci @0x/contract-wrappers
+ - run: yarn wsrun test:circleci @0x/dev-utils
+ - run: yarn wsrun test:circleci @0x/json-schemas
+ - run: yarn wsrun test:circleci @0x/metacoin
+ - run: yarn wsrun test:circleci @0x/order-utils
+ - run: yarn wsrun test:circleci @0x/order-watcher
+ - run: yarn wsrun test:circleci @0x/sol-compiler
+ - run: yarn wsrun test:circleci @0x/sol-cov
+ - run: yarn wsrun test:circleci @0x/sol-doc
+ - run: yarn wsrun test:circleci @0x/subproviders
+ - run: yarn wsrun test:circleci @0x/web3-wrapper
+ - run: yarn wsrun test:circleci @0x/utils
+ - run: yarn wsrun test:circleci @0x/instant
+ - save_cache:
+ key: coverage-abi-gen-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/abi-gen/coverage/lcov.info
+ - save_cache:
+ key: coverage-assert-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/assert/coverage/lcov.info
+ - save_cache:
+ key: coverage-base-contract-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/base-contract/coverage/lcov.info
+ - save_cache:
+ key: coverage-connect-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/connect/coverage/lcov.info
+ - save_cache:
+ key: coverage-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/contract-wrappers/coverage/lcov.info
+ - save_cache:
+ key: coverage-dev-utils-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/dev-utils/coverage/lcov.info
+ - save_cache:
+ key: coverage-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/json-schemas/coverage/lcov.info
+ - save_cache:
+ key: coverage-metacoin-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/metacoin/coverage/lcov.info
+ - save_cache:
+ key: coverage-order-utils-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/order-utils/coverage/lcov.info
+ - save_cache:
+ key: coverage-order-watcher-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/order-watcher/coverage/lcov.info
+ - save_cache:
+ key: coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/sol-compiler/coverage/lcov.info
+ - save_cache:
+ key: coverage-sol-cov-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/sol-cov/coverage/lcov.info
+ - save_cache:
+ key: coverage-sol-doc-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/sol-doc/coverage/lcov.info
+ - save_cache:
+ key: coverage-subproviders-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/subproviders/coverage/lcov.info
+ - save_cache:
+ key: coverage-web3-wrapper-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/packages/web3-wrapper/coverage/lcov.info
+ test-python:
+ working_directory: ~/repo
+ docker:
+ - image: circleci/python
+ - image: 0xorg/ganache-cli
+ command: |
+ ganache-cli --gasLimit 10000000 --noVMErrorsOnRPCResponse --db /snapshot --noVMErrorsOnRPCResponse -p 8545 --networkId 50 -m "concert load couple harbor equip island argue ramp clarify fence smart topic"
+ steps:
+ - checkout
+ - run: sudo chown -R circleci:circleci /usr/local/bin
+ - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7/site-packages
+ - restore_cache:
+ key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
+ - run:
+ command: |
+ cd python-packages/order_utils
+ python -m ensurepip
+ python -m pip install -e .[dev]
+ - save_cache:
+ key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - '/usr/local/bin'
+ - '/usr/local/lib/python3.7/site-packages'
+ - '.eggs'
+ - '.mypy_cache'
+ - '.pytest_cache'
+ - '.tox'
+ - run:
+ command: |
+ cd python-packages/order_utils
+ coverage run setup.py test
+ - save_cache:
+ key: coverage-python-order-utils-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - ~/repo/python-packages/order_utils/.coverage
+ test-rest-python:
+ working_directory: ~/repo
+ docker:
+ - image: circleci/python
+ steps:
+ - checkout
+ - run: sudo chown -R circleci:circleci /usr/local/bin
+ - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7/site-packages
+ - restore_cache:
+ key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
+ - run:
+ command: |
+ cd python-packages/order_utils
+ python -m ensurepip
+ python -m pip install -e .[dev]
+ - save_cache:
+ key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - '/usr/local/bin'
+ - '/usr/local/lib/python3.7/site-packages'
+ - '.eggs'
+ - '.mypy_cache'
+ - '.pytest_cache'
+ - '.tox'
+ - run:
+ command: |
+ cd python-packages/order_utils
+ tox
+ static-tests-python:
+ working_directory: ~/repo
+ docker:
+ - image: circleci/python
+ steps:
+ - checkout
+ - run: sudo chown -R circleci:circleci /usr/local/bin
+ - run: sudo chown -R circleci:circleci /usr/local/lib/python3.7/site-packages
+ - restore_cache:
+ key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
+ - run:
+ command: |
+ cd python-packages/order_utils
+ python -m ensurepip
+ python -m pip install -e .[dev]
+ - save_cache:
+ key: deps9-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
+ paths:
+ - '/usr/local/bin'
+ - '/usr/local/lib/python3.7/site-packages'
+ - run:
+ command: |
+ cd python-packages/order_utils
+ python setup.py lint
+ static-tests:
+ working_directory: ~/repo
+ docker:
+ - image: circleci/node:9
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ - run: yarn lerna run lint
+ - run: yarn prettier:ci
+ - run: cd packages/0x.js && yarn build:umd:prod
+ - run: yarn bundlewatch
+ submit-coverage:
+ docker:
+ - image: circleci/node:9
+ working_directory: ~/repo
+ steps:
+ - restore_cache:
+ keys:
+ - repo-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-abi-gen-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-assert-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-base-contract-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-connect-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-dev-utils-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-metacoin-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-order-utils-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-order-watcher-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-sol-cov-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-sol-doc-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-subproviders-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-web3-wrapper-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-contracts-{{ .Environment.CIRCLE_SHA1 }}
+ - restore_cache:
+ keys:
+ - coverage-python-order-utils-{{ .Environment.CIRCLE_SHA1 }}
+ - run: yarn report_coverage
workflows:
- version: 2
- main:
- jobs:
- - build
- - test-contracts-ganache:
- requires:
+ version: 2
+ main:
+ jobs:
- build
- - test-contracts-geth:
- requires:
- - build
- - test-rest:
- requires:
- - build
- - static-tests:
- requires:
- - build
- - test-publish:
- requires:
- - build
- - submit-coverage:
- requires:
- - test-rest
+ - build-website:
+ requires:
+ - build
+ - test-contracts-ganache:
+ requires:
+ - build
+ - test-contracts-geth:
+ requires:
+ - build
+ - test-rest:
+ requires:
+ - build
+ - static-tests:
+ requires:
+ - build
+ - test-publish:
+ requires:
+ - build
+ - test-doc-generation:
+ requires:
+ - build
+ - submit-coverage:
+ requires:
+ - test-rest
+ - test-python
+ - test-python
+ - static-tests-python
+ # skip python tox run for now, as we don't yet have multiple test environments to support.
+ #- test-rest-python