aboutsummaryrefslogtreecommitdiffstats
path: root/.circleci/config.yml
blob: 8c1c680fdfd479e6d3a0d357afee09fa47e3de66 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
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
  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
  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 deployer test:circleci
  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 deployer test:circleci
  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
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