version: 2.1 commands: init_workspace: steps: - 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: - run: name: Install Dependency Libraries command: | sudo apt update sudo apt-get install openssl libssl-dev libgmp-dev - 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