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




           
                              
                
                                      
                             
          
                
                                                                                                  
                      





                                                                    

                    
                                                 
                   

                                                                     
                
                           
                                                             
                       



                                                  
         
           
                              
                             
          


                                                 
                                                                  
                                                             
                   
                                                                        
                
                                                                  



                                                                   
                 
           
                              




                                                 
                                               
         
           
                              




                                                 






                                                             



















                                                                   



                                                              



                                                               
               
                             
           
                              
          


                                                 
                             
                                

                  
                              






                                                 





                                                             


                                                                       








                                                                  


                                                             


                                                               
                                                                  

                      
                                                          


                                                              
                                 




             
               

                   
               

                   
                       

                   
                     

                   

                        


                            
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: node ./node_modules/lerna/bin/lerna.js bootstrap
      - run: yarn build
      - save_cache:
          key: repo-{{ .Environment.CIRCLE_SHA1 }}
          paths:
            - ~/repo
  test-1:
    docker:
      - image: circleci/node:9
    working_directory: ~/repo
    steps:
      - restore_cache:
          keys:
            - repo-{{ .Environment.CIRCLE_SHA1 }}
      - run: yarn wsrun test:circleci @0xproject/contract-wrappers
      - run: yarn wsrun test:circleci @0xproject/sol-compiler
      - save_cache:
          key: coverage-contract-wrappers-{{ .Environment.CIRCLE_SHA1 }}
          paths:
            - ~/repo/packages/contract-wrappers/coverage/lcov.info
      - save_cache:
          key: coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
          paths:
            - ~/repo/packages/sol-compiler/coverage/lcov.info
  test-contracts:
    docker:
      - image: circleci/node:9
    working_directory: ~/repo
    steps:
      - restore_cache:
          keys:
            - repo-{{ .Environment.CIRCLE_SHA1 }}
      - run: yarn wsrun test:circleci contracts
  test-2:
    docker:
      - image: circleci/node:9
    working_directory: ~/repo
    steps:
      - restore_cache:
          keys:
            - repo-{{ .Environment.CIRCLE_SHA1 }}
      - run: yarn wsrun test:circleci @0xproject/assert
      - run: yarn wsrun test:circleci @0xproject/connect
      - run: yarn wsrun test:circleci @0xproject/dev-utils
      - run: yarn wsrun test:circleci @0xproject/json-schemas
      - run: yarn wsrun test:circleci @0xproject/subproviders
      - run: yarn wsrun test:circleci @0xproject/sol-cov
      - run: yarn wsrun test:circleci @0xproject/metacoin
      - 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
      - save_cache:
          key: coverage-sol-cov-{{ .Environment.CIRCLE_SHA1 }}
          paths:
            - ~/repo/packages/sol-cov/coverage/lcov.info
      - save_cache:
          key: coverage-metacoin-{{ .Environment.CIRCLE_SHA1 }}
          paths:
            - ~/repo/packages/metacoin/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-assert-{{ .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-subproviders-{{ .Environment.CIRCLE_SHA1 }}
      - restore_cache:
          keys:
            - coverage-sol-cov-{{ .Environment.CIRCLE_SHA1 }}
      - restore_cache:
          keys:
            - coverage-contracts-{{ .Environment.CIRCLE_SHA1 }}
      - restore_cache:
          keys:
            - coverage-sol-compiler-{{ .Environment.CIRCLE_SHA1 }}
      - restore_cache:
          keys:
            - coverage-0xjs-{{ .Environment.CIRCLE_SHA1 }}
      - restore_cache:
          keys:
            - coverage-metacoin-{{ .Environment.CIRCLE_SHA1 }}
      - run: yarn report_coverage
workflows:
  version: 2
  main:
    jobs:
      - build
      - test-1:
          requires:
            - build
      - test-2:
          requires:
            - build
      - test-contracts:
          requires:
            - build
      - static-tests:
          requires:
            - build
      - submit-coverage:
          requires:
            - test-contracts
            - test-1
            - test-2