blob: c8d1c53e8cd34e3b22e30645cbf961b62d3bbe70 (
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}" == "dexon-classic" ]; 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
- run:
name: Saving Logs
when: on_fail
command: |
mkdir -p /tmp/logs
cd integration_test && tar -czf /tmp/logs/integration_test.tar.gz log.*
- store_artifacts:
path: /tmp/logs
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
- dexon-classic
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
|