blob: 08ff726ece7b04e6b9644a809c5a43a015749aeb (
plain) (
tree)
|
|
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
elif [ "${CIRCLE_BRANCH}" == "single-chain" ]; then
make test
else
make test-short
fi
install_npm:
steps:
- run:
name: Install npm
command: |
curl -sL https://deb.nodesource.com/setup_11.x | sudo bash -
sudo apt-get install -y nodejs
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
security:
executor: go1_11
steps:
- init_workspace
- run: make check-security
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
snyk:
executor: go1_11
steps:
- init_workspace
- install_npm
- run: sudo npm install -g snyk
- run: snyk auth $SNYK_APIKEY_JHU
- run: snyk monitor --org=dexon-foundation --project=dexon-consensus
workflows:
version: 2.1
nightly:
jobs:
- dep
- snyk:
requires:
- dep
triggers:
- schedule:
cron: "0 8 * * *"
filters:
branches:
only:
- master
- single-chain
test_and_build:
jobs:
- dep
- lint:
requires:
- dep
- security:
requires:
- dep
- unit_test:
requires:
- security
- lint
- integration_test:
requires:
- security
- lint
- build:
requires:
- unit_test
- integration_test
|