438 lines
19 KiB
YAML
438 lines
19 KiB
YAML
version: 2
|
|
|
|
jobs:
|
|
build:
|
|
resource_class: medium+
|
|
docker:
|
|
- image: nikolaik/python-nodejs:python3.7-nodejs8
|
|
environment:
|
|
CONTRACTS_COMMIT_HASH: '9ed05f5'
|
|
working_directory: ~/repo
|
|
steps:
|
|
- checkout
|
|
- run: echo 'export PATH=$HOME/CIRCLE_PROJECT_REPONAME/node_modules/.bin:$PATH' >> $BASH_ENV
|
|
# HACK(feuGeneA): commented out this hack as we're changing
|
|
# from a circleci-maintained container to a different
|
|
# container, and this hack may not apply anymore, as
|
|
# suggested by the non-existance of `/home/circleci/.bashrc`
|
|
# when running the command below.
|
|
# - run:
|
|
# # HACK(albrow): Without this, yarn commands will sometimes
|
|
# # fail with a "permission denied" error.
|
|
# name: Set npm path
|
|
# command: npm set prefix=/home/circleci/npm && echo 'export PATH=$HOME/circleci/npm/bin:$PATH' >> /home/circleci/.bashrc
|
|
- run:
|
|
name: install-yarn
|
|
command: npm install --global yarn@1.17.0
|
|
- run:
|
|
name: yarn
|
|
command: yarn --frozen-lockfile --ignore-engines install || yarn --frozen-lockfile --ignore-engines install
|
|
- setup_remote_docker
|
|
- run: yarn build:ci
|
|
- run: yarn build:ts
|
|
- save_cache:
|
|
key: repo-{{ .Environment.CIRCLE_SHA1 }}
|
|
paths:
|
|
- ~/repo
|
|
- store_artifacts:
|
|
path: ~/repo/packages/abi-gen/test-cli/output
|
|
- store_artifacts:
|
|
path: ~/repo/packages/abi-gen-wrappers/generated_docs
|
|
test-contracts-ganache:
|
|
resource_class: medium+
|
|
docker:
|
|
- image: nikolaik/python-nodejs:python3.7-nodejs8
|
|
working_directory: ~/repo
|
|
steps:
|
|
- restore_cache:
|
|
keys:
|
|
- repo-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run: yarn wsrun test:circleci @0x/contracts-multisig @0x/contracts-utils @0x/contracts-exchange-libs @0x/contracts-erc20 @0x/contracts-erc721 @0x/contracts-erc1155 @0x/contracts-extensions @0x/contracts-asset-proxy @0x/contracts-exchange @0x/contracts-exchange-forwarder @0x/contracts-coordinator @0x/contracts-tests @0x/contracts-staking
|
|
test-exchange-ganache-3.0:
|
|
resource_class: medium+
|
|
docker:
|
|
- image: nikolaik/python-nodejs:python3.7-nodejs8
|
|
working_directory: ~/repo
|
|
steps:
|
|
- restore_cache:
|
|
keys:
|
|
- repo-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run: yarn wsrun test:circleci @0x/contracts-exchange
|
|
test-integrations-ganache-3.0:
|
|
resource_class: medium+
|
|
docker:
|
|
- image: nikolaik/python-nodejs:python3.7-nodejs8
|
|
working_directory: ~/repo
|
|
steps:
|
|
- restore_cache:
|
|
keys:
|
|
- repo-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run: yarn wsrun test:circleci @0x/contracts-integrations
|
|
test-contracts-rest-ganache-3.0:
|
|
resource_class: medium+
|
|
docker:
|
|
- image: nikolaik/python-nodejs:python3.7-nodejs8
|
|
working_directory: ~/repo
|
|
steps:
|
|
- restore_cache:
|
|
keys:
|
|
- repo-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run: yarn wsrun test:circleci @0x/contracts-multisig @0x/contracts-utils @0x/contracts-exchange-libs @0x/contracts-erc20 @0x/contracts-erc721 @0x/contracts-erc1155 @0x/contracts-asset-proxy @0x/contracts-exchange-forwarder @0x/contracts-tests @0x/contracts-staking @0x/contracts-coordinator
|
|
# TODO(dorothy-zbornak): Re-enable after updating this package for 3.0.
|
|
# - run: yarn wsrun test:circleci @0x/contracts-extensions
|
|
test-publish:
|
|
resource_class: medium+
|
|
docker:
|
|
- image: nikolaik/python-nodejs:python3.7-nodejs8
|
|
- image: 0xorg/verdaccio
|
|
working_directory: ~/repo
|
|
steps:
|
|
- restore_cache:
|
|
keys:
|
|
- repo-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run:
|
|
command: yarn test:publish:circleci
|
|
no_output_timeout: 1800
|
|
test-doc-generation:
|
|
docker:
|
|
- image: nikolaik/python-nodejs:python3.7-nodejs8
|
|
working_directory: ~/repo
|
|
steps:
|
|
- restore_cache:
|
|
keys:
|
|
- repo-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run:
|
|
command: yarn test:generate_docs:circleci
|
|
no_output_timeout: 1200
|
|
test-rest:
|
|
docker:
|
|
- image: nikolaik/python-nodejs:python3.7-nodejs8
|
|
working_directory: ~/repo
|
|
steps:
|
|
- restore_cache:
|
|
keys:
|
|
- repo-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run: yarn wsrun test:circleci @0x/contracts-test-utils
|
|
- run: yarn wsrun test:circleci @0x/abi-gen
|
|
# TODO (xianny): Needs to be updated for 3.0
|
|
# - run: yarn wsrun test:circleci @0x/asset-buyer
|
|
- run: yarn wsrun test:circleci @0x/contract-artifacts
|
|
- run: yarn wsrun test:circleci @0x/assert
|
|
- run: yarn wsrun test:circleci @0x/base-contract
|
|
# TODO (xianny): Needs to be updated for 3.0
|
|
# - 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/order-utils
|
|
- run: yarn wsrun test:circleci @0x/sol-compiler
|
|
- run: yarn wsrun test:circleci @0x/sol-tracing-utils
|
|
- 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-asset-buyer-{{ .Environment.CIRCLE_SHA1 }}
|
|
paths:
|
|
- ~/repo/packages/asset-buyer/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-order-utils-{{ .Environment.CIRCLE_SHA1 }}
|
|
paths:
|
|
- ~/repo/packages/order-utils/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-tracing-utils-{{ .Environment.CIRCLE_SHA1 }}
|
|
paths:
|
|
- ~/repo/packages/sol-tracing-utils/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: nikolaik/python-nodejs:python3.7-nodejs8
|
|
- image: 0xorg/ganache-cli:2.2.2
|
|
- image: 0xorg/launch-kit-backend:74bcc39
|
|
environment:
|
|
RPC_URL: http://localhost:8545
|
|
NETWORK_ID: 50
|
|
WHITELIST_ALL_TOKENS: True
|
|
command: |
|
|
sh -c "until printf 'POST /\r\nContent-Length: 26\r\n\r\n{\"method\":\"net_listening\"}' | nc localhost 8545 | grep true; do continue; done; node_modules/.bin/forever ts/lib/index.js"
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: installed-py-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
|
|
- restore_cache:
|
|
keys:
|
|
- repo-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run:
|
|
command: |
|
|
cd python-packages
|
|
python -m ensurepip
|
|
./pre_install
|
|
./install
|
|
- save_cache:
|
|
key: installed-py-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
|
|
paths:
|
|
- '/usr/local/bin'
|
|
- '/usr/local/lib/python3.7/site-packages'
|
|
- run:
|
|
command: |
|
|
cd python-packages
|
|
./parallel_without_sra_client coverage run setup.py test
|
|
./build_docs
|
|
- save_cache:
|
|
key: coverage-python-contract-addresses-{{ .Environment.CIRCLE_SHA1 }}
|
|
paths:
|
|
- ~/repo/python-packages/contract_addresses/.coverage
|
|
- save_cache:
|
|
key: coverage-python-contract-artifacts-{{ .Environment.CIRCLE_SHA1 }}
|
|
paths:
|
|
- ~/repo/python-packages/contract_artifacts/.coverage
|
|
- save_cache:
|
|
key: coverage-python-contract-demo-{{ .Environment.CIRCLE_SHA1 }}
|
|
paths:
|
|
- ~/repo/python-packages/contract_demo/.coverage
|
|
- save_cache:
|
|
key: coverage-python-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
|
|
paths:
|
|
- ~/repo/python-packages/json_schemas/.coverage
|
|
- save_cache:
|
|
key: coverage-python-order-utils-{{ .Environment.CIRCLE_SHA1 }}
|
|
paths:
|
|
- ~/repo/python-packages/order_utils/.coverage
|
|
- save_cache:
|
|
key: coverage-python-sra-client-{{ .Environment.CIRCLE_SHA1 }}
|
|
paths:
|
|
- ~/repo/python-packages/sra_client/.coverage
|
|
- store_artifacts:
|
|
path: ~/repo/python-packages/contract_wrappers/src/zero_ex/contract_wrappers/*/__init__.py
|
|
- store_artifacts:
|
|
path: ~/repo/python-packages/contract_addresses/build
|
|
- store_artifacts:
|
|
path: ~/repo/python-packages/contract_artifacts/build
|
|
- store_artifacts:
|
|
path: ~/repo/python-packages/contract_wrappers/build
|
|
- store_artifacts:
|
|
path: ~/repo/python-packages/json_schemas/build
|
|
- store_artifacts:
|
|
path: ~/repo/python-packages/middlewares/build
|
|
- store_artifacts:
|
|
path: ~/repo/python-packages/order_utils/build
|
|
- store_artifacts:
|
|
path: ~/repo/python-packages/sra_client/build
|
|
test-rest-python:
|
|
working_directory: ~/repo
|
|
docker:
|
|
- image: nikolaik/python-nodejs:python3.7-nodejs8
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: installed-py-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run:
|
|
command: |
|
|
cd python-packages/order_utils
|
|
python -m ensurepip
|
|
python -m pip install .
|
|
- save_cache:
|
|
key: installed-py-{{ .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: nikolaik/python-nodejs:python3.7-nodejs8
|
|
steps:
|
|
- checkout
|
|
- restore_cache:
|
|
key: installed-py-{{ .Branch }}-{{ .Environment.CIRCLE_SHA1 }}
|
|
- restore_cache:
|
|
keys:
|
|
- repo-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run:
|
|
command: |
|
|
python -m ensurepip
|
|
cd python-packages
|
|
./pre_install
|
|
./install
|
|
./lint
|
|
static-tests:
|
|
resource_class: large
|
|
working_directory: ~/repo
|
|
docker:
|
|
- image: nikolaik/python-nodejs:python3.7-nodejs8
|
|
steps:
|
|
- restore_cache:
|
|
keys:
|
|
- repo-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run: yarn lerna run lint
|
|
- run: yarn prettier:ci
|
|
- run: yarn deps_versions:ci
|
|
- run: yarn diff_md_docs:ci
|
|
- run: cd packages/0x.js && yarn build:umd:prod
|
|
- run: yarn bundlewatch
|
|
submit-coverage:
|
|
docker:
|
|
- image: nikolaik/python-nodejs:python3.7-nodejs8
|
|
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-asset-buyer-{{ .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-order-utils-{{ .Environment.CIRCLE_SHA1 }}
|
|
- restore_cache:
|
|
keys:
|
|
- coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
|
|
- restore_cache:
|
|
keys:
|
|
- coverage-sol-tracing-utils-{{ .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-json-schemas-{{ .Environment.CIRCLE_SHA1 }}
|
|
- restore_cache:
|
|
keys:
|
|
- coverage-python-contract-addresses-{{ .Environment.CIRCLE_SHA1 }}
|
|
- restore_cache:
|
|
keys:
|
|
- coverage-python-contract-artifacts-{{ .Environment.CIRCLE_SHA1 }}
|
|
- restore_cache:
|
|
keys:
|
|
- coverage-python-contract-demo-{{ .Environment.CIRCLE_SHA1 }}
|
|
- restore_cache:
|
|
keys:
|
|
- coverage-python-sra-client-{{ .Environment.CIRCLE_SHA1 }}
|
|
- restore_cache:
|
|
keys:
|
|
- coverage-python-order-utils-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run: yarn report_coverage
|
|
workflows:
|
|
version: 2
|
|
main:
|
|
jobs:
|
|
- build
|
|
- test-exchange-ganache-3.0:
|
|
requires:
|
|
- build
|
|
- test-integrations-ganache-3.0:
|
|
requires:
|
|
- build
|
|
- test-contracts-rest-ganache-3.0:
|
|
requires:
|
|
- build
|
|
- test-rest:
|
|
requires:
|
|
- build
|
|
- static-tests:
|
|
requires:
|
|
- build
|
|
- test-publish:
|
|
requires:
|
|
- build
|
|
- test-doc-generation:
|
|
requires:
|
|
- build
|
|
- submit-coverage:
|
|
requires:
|
|
- test-contracts-rest-ganache-3.0
|
|
- test-exchange-ganache-3.0
|
|
- test-rest
|
|
- static-tests
|
|
# - test-python:
|
|
# requires:
|
|
# - build
|
|
# - test-rest
|
|
# - static-tests-python:
|
|
# requires:
|
|
# - test-python
|
|
# skip python tox run for now, as we don't yet have multiple test environments to support.
|
|
# - test-rest-python
|