aboutsummaryrefslogblamecommitdiffstats
path: root/.circleci/config.yml
blob: d4082f51198ff9b87f843d6fa41d6772209307e4 (plain) (tree)
1
2
3


          























































































































































































































                                                                                                        
          


              
                   

















                                     
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 @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-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-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
workflows:
    version: 2
    main:
        jobs:
            - build
            - test-contracts-ganache:
                  requires:
                      - build
            - test-contracts-geth:
                  requires:
                      - build
            - test-rest:
                  requires:
                      - build
            - static-tests:
                  requires:
                      - build
            - test-publish:
                  requires:
                      - build
            - submit-coverage:
                  requires:
                      - test-rest