aboutsummaryrefslogtreecommitdiffstats
path: root/.circleci/config.yml
blob: 72d9f5386d8f3fa82676e8d7fae5fbbe5d1233cb (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
version: 2.1
commands:
  init_workspace:
    steps:
      - run:
          name: Install Dependency Libraries
          command: |
            sudo apt update
            sudo apt-get install openssl libssl-dev libgmp-dev
      - run:
          name: "Prepare Workspace"
          command: sudo chown -R `whoami` /go
      - attach_workspace:
          at: /go
  run_test:
    steps:
      - run:
          name: "Running Test"
          no_output_timeout: 900
          command: |
            if [ "${CIRCLE_BRANCH}" == "master" ]; then
              make test
            else
              make test-short
            fi

executors:
  go1_11:
    docker:
      - image: circleci/golang:1.11
    working_directory: /go/src/github.com/dexon-foundation/dexon-consensus

jobs:
  dep:
    executor: go1_11
    steps:
      - init_workspace
      - checkout
      - restore_cache:
          keys:
            - v1-Gopkg.lock-{{ .Branch }}-{{ checksum "Gopkg.toml" }}
      - restore_cache:
          keys:
            - v1-vendor-{{ .Branch }}-{{ checksum "Gopkg.lock" }}
      - run: bin/install_tools.sh
      - run: dep ensure
      - save_cache:
          key: v1-Gopkg.lock-{{ .Branch }}-{{ checksum "Gopkg.toml" }}
          paths:
            - Gopkg.lock
      - save_cache:
          key: v1-vendor-{{ .Branch }}-{{ checksum "Gopkg.lock" }}
          paths:
            - vendor
      - run: make dep
      - persist_to_workspace:
          root: /go
          paths:
            - src
            - bin
  lint:
    executor: go1_11
    steps:
      - init_workspace
      - run: make check-format
      - run: make lint
      - run: make vet

  unit_test:
    executor: go1_11
    environment: 
      GOCACHE: "off"
      NO_INTEGRATION_TEST: true
    steps:
      - init_workspace
      - run_test

  integration_test:
    executor: go1_11
    environment: 
      ONLY_INTEGRATION_TEST: true
      NO_TEST_RACE: true
    steps:
      - init_workspace
      - run_test

  build:
    executor: go1_11
    steps:
      - init_workspace
      - run: make

workflows:
  version: 2.1

  test_and_build:
    jobs:
      - dep
      - lint:
          requires:
            - dep
      - unit_test:
          requires:
            - lint
      - integration_test:
          requires:
            - lint
      - build:
          requires:
            - unit_test
            - integration_test