aboutsummaryrefslogblamecommitdiffstats
path: root/.circleci/config.yml
blob: 3b1f5565650894a91f1183c5bf566e81bab4dd6d (plain) (tree)
1
2
3
4
5
6
7
8
9






                                 
                                      
                             
          
                
                                                                                                  

                                                             

                    
                                         


                                                             
                            

                                                                                         
                                                             
                                 



                                                  
            

                                 
                             
          


                                                 
            


                                                           
                                                       



                                                           
                 






                                                 



                                                           
                                                           



                                                                











                                                           
                                                                     



                                                               







                                                 



                                                           
                                                                                                        



















                                                                   
       
                             

                                 
          


                                                 
                                
           
                             

                                 
          


                                                 
                             












                                                               

















                                                                  

                                                          




             


                   


                       
                      

                   
                  




                   


                   


                        

                           
                            
version: 2

jobs:
  build:
    docker:
      - image: circleci/node:6.12
    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:
          key: dependency-cache-{{ checksum "package.json" }}
      - run:
          name: yarn
          command: yarn --frozen-lockfile
      - save_cache:
          key: dependency-cache-{{ checksum "package.json" }}
          paths:
            - ./node_modules
      - run: wget https://s3.amazonaws.com/testrpc-shapshots/${CONTRACTS_COMMIT_HASH}.zip
      - run: unzip ${CONTRACTS_COMMIT_HASH}.zip -d testrpc_snapshot
      - run: node ./node_modules/lerna/bin/lerna.js bootstrap
      - run: yarn lerna:run build
      - save_cache:
          key: repo-{{ .Environment.CIRCLE_SHA1 }}
          paths:
            - ~/repo
  test-0xjs:
    docker:
      - image: circleci/node:6.12
    working_directory: ~/repo
    steps:
      - restore_cache:
          keys:
            - repo-{{ .Environment.CIRCLE_SHA1 }}
      - run:
          name: testrpc
          command: npm run testrpc -- --db testrpc_snapshot
          background: true
      - run: yarn lerna:run --scope 0x.js test:circleci
      - save_cache:
          key: coverage-0xjs-{{ .Environment.CIRCLE_SHA1 }}
          paths:
            - ~/repo/packages/0x.js/coverage/lcov.info
  test-contracts:
    docker:
      - image: circleci/node:6.12
    working_directory: ~/repo
    steps:
      - restore_cache:
          keys:
            - repo-{{ .Environment.CIRCLE_SHA1 }}
      - run:
          name: testrpc
          command: npm run testrpc -- --db testrpc_snapshot
          background: true
      - run: yarn lerna:run --scope contracts test:circleci
      - save_cache:
          key: coverage-contracts-{{ .Environment.CIRCLE_SHA1 }}
          paths:
            - ~/repo/packages/contracts/coverage/lcov.info
  test-deployer:
    docker:
      - image: circleci/node:6.12
    working_directory: ~/repo
    steps:
      - restore_cache:
          keys:
            - repo-{{ .Environment.CIRCLE_SHA1 }}
      - run:
          name: testrpc
          command: npm run testrpc -- --db testrpc_snapshot
          background: true
      - run: yarn lerna:run --scope @0xproject/deployer test:circleci
      - save_cache:
          key: coverage-deployer-{{ .Environment.CIRCLE_SHA1 }}
          paths:
            - ~/repo/packages/deployer/coverage/lcov.info
  test-rest:
    docker:
      - image: circleci/node:6.12
    working_directory: ~/repo
    steps:
      - restore_cache:
          keys:
            - repo-{{ .Environment.CIRCLE_SHA1 }}
      - run:
          name: testrpc
          command: npm run testrpc -- --db testrpc_snapshot
          background: true
      - run: yarn lerna:run --ignore contracts --ignore 0x.js --ignore @0xproject/deployer test:circleci
      - save_cache:
          key: coverage-assert-{{ .Environment.CIRCLE_SHA1 }}
          paths:
            - ~/repo/packages/assert/coverage/lcov.info
      - save_cache:
          key: coverage-connect-{{ .Environment.CIRCLE_SHA1 }}
          paths:
            - ~/repo/packages/connect/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-subproviders-{{ .Environment.CIRCLE_SHA1 }}
          paths:
            - ~/repo/packages/subproviders/coverage/lcov.info
  lint:
    working_directory: ~/repo
    docker:
      - image: circleci/node:6.12
    steps:
      - restore_cache:
          keys:
            - repo-{{ .Environment.CIRCLE_SHA1 }}
      - run: yarn lerna:run lint
  prettier:
    working_directory: ~/repo
    docker:
      - image: circleci/node:6.12
    steps:
      - restore_cache:
          keys:
            - repo-{{ .Environment.CIRCLE_SHA1 }}
      - run: yarn prettier:ci
  submit-coverage:
    docker:
      - image: circleci/node:6.12
    working_directory: ~/repo
    steps:
      - restore_cache:
          keys:
            - repo-{{ .Environment.CIRCLE_SHA1 }}
      - restore_cache:
          keys:
            - coverage-contracts-{{ .Environment.CIRCLE_SHA1 }}
      - restore_cache:
          keys:
            - coverage-assert-{{ .Environment.CIRCLE_SHA1 }}
      - restore_cache:
          keys:
            - coverage-connect-{{ .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-subproviders-{{ .Environment.CIRCLE_SHA1 }}
      - restore_cache:
          keys:
            - coverage-deployer-{{ .Environment.CIRCLE_SHA1 }}
      - restore_cache:
          keys:
            - coverage-0xjs-{{ .Environment.CIRCLE_SHA1 }}
      - run: yarn report_coverage
workflows:
  version: 2
  main:
    jobs:
      - build
      - test-0xjs:
          requires:
            - build
      - test-contracts:
          requires:
            - build
      - test-deployer:
          requires:
            - build
      - test-rest:
          requires:
            - build
      - prettier:
          requires:
            - build
      - lint:
          requires:
            - build
      - submit-coverage:
          requires:
            - test-0xjs
            - test-deployer
            - test-rest
            - test-contracts