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




                 




                                                              

















                                                       
           
                                   
                                                                          
 


                    
          
                      
                





                                                                     

                                 







                                                                      
                     









                              

                      



                    
                    

















                                 
                 



















                              
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