mirror of
https://github.com/tendermint/tendermint.git
synced 2026-09-20 15:04:22 +00:00
This commit makes it such that circle CI only shows the module whose tests it is currently running in the log, unless a test fails. For each failing test, it will display the name of all failing tests, along with their log output. This is done to make our log output far more scrollable. We lose no information in debugging.
231 lines
5.9 KiB
YAML
231 lines
5.9 KiB
YAML
version: 2
|
|
|
|
defaults: &defaults
|
|
working_directory: /go/src/github.com/tendermint/tendermint
|
|
docker:
|
|
- image: circleci/golang:1.10.3
|
|
environment:
|
|
GOBIN: /tmp/workspace/bin
|
|
|
|
jobs:
|
|
setup_dependencies:
|
|
<<: *defaults
|
|
steps:
|
|
- run: mkdir -p /tmp/workspace/bin
|
|
- run: mkdir -p /tmp/workspace/profiles
|
|
- checkout
|
|
- restore_cache:
|
|
keys:
|
|
- v3-pkg-cache
|
|
- run:
|
|
name: tools
|
|
command: |
|
|
export PATH="$GOBIN:$PATH"
|
|
make get_tools
|
|
- run:
|
|
name: dependencies
|
|
command: |
|
|
export PATH="$GOBIN:$PATH"
|
|
make get_vendor_deps
|
|
- run:
|
|
name: binaries
|
|
command: |
|
|
export PATH="$GOBIN:$PATH"
|
|
make install install_abci
|
|
- persist_to_workspace:
|
|
root: /tmp/workspace
|
|
paths:
|
|
- bin
|
|
- profiles
|
|
- save_cache:
|
|
key: v3-pkg-cache
|
|
paths:
|
|
- /go/pkg
|
|
- save_cache:
|
|
key: v3-tree-{{ .Environment.CIRCLE_SHA1 }}
|
|
paths:
|
|
- /go/src/github.com/tendermint/tendermint
|
|
|
|
build_slate:
|
|
<<: *defaults
|
|
steps:
|
|
- attach_workspace:
|
|
at: /tmp/workspace
|
|
- restore_cache:
|
|
key: v3-pkg-cache
|
|
- restore_cache:
|
|
key: v3-tree-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run:
|
|
name: slate docs
|
|
command: |
|
|
set -ex
|
|
export PATH="$GOBIN:$PATH"
|
|
make build-slate
|
|
|
|
lint:
|
|
<<: *defaults
|
|
steps:
|
|
- attach_workspace:
|
|
at: /tmp/workspace
|
|
- restore_cache:
|
|
key: v3-pkg-cache
|
|
- restore_cache:
|
|
key: v3-tree-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run:
|
|
name: metalinter
|
|
command: |
|
|
set -ex
|
|
export PATH="$GOBIN:$PATH"
|
|
make metalinter
|
|
- run:
|
|
name: check_dep
|
|
command: |
|
|
set -ex
|
|
export PATH="$GOBIN:$PATH"
|
|
make check_dep
|
|
|
|
test_abci_apps:
|
|
<<: *defaults
|
|
steps:
|
|
- attach_workspace:
|
|
at: /tmp/workspace
|
|
- restore_cache:
|
|
key: v3-pkg-cache
|
|
- restore_cache:
|
|
key: v3-tree-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run:
|
|
name: Run abci apps tests
|
|
command: |
|
|
export PATH="$GOBIN:$PATH"
|
|
bash abci/tests/test_app/test.sh
|
|
|
|
# if this test fails, fix it and update the docs at:
|
|
# https://github.com/tendermint/tendermint/blob/develop/docs/abci-cli.md
|
|
test_abci_cli:
|
|
<<: *defaults
|
|
steps:
|
|
- attach_workspace:
|
|
at: /tmp/workspace
|
|
- restore_cache:
|
|
key: v3-pkg-cache
|
|
- restore_cache:
|
|
key: v3-tree-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run:
|
|
name: Run abci-cli tests
|
|
command: |
|
|
export PATH="$GOBIN:$PATH"
|
|
bash abci/tests/test_cli/test.sh
|
|
|
|
test_apps:
|
|
<<: *defaults
|
|
steps:
|
|
- attach_workspace:
|
|
at: /tmp/workspace
|
|
- restore_cache:
|
|
key: v3-pkg-cache
|
|
- restore_cache:
|
|
key: v3-tree-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run: sudo apt-get update && sudo apt-get install -y --no-install-recommends bsdmainutils
|
|
- run:
|
|
name: Run tests
|
|
command: bash test/app/test.sh
|
|
|
|
test_cover:
|
|
<<: *defaults
|
|
parallelism: 4
|
|
steps:
|
|
- attach_workspace:
|
|
at: /tmp/workspace
|
|
- restore_cache:
|
|
key: v3-pkg-cache
|
|
- restore_cache:
|
|
key: v3-tree-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run: mkdir -p /tmp/logs
|
|
- run:
|
|
name: Run tests
|
|
command: |
|
|
for pkg in $(go list github.com/tendermint/tendermint/... | circleci tests split --split-by=timings); do
|
|
id=$(basename "$pkg")
|
|
|
|
GOCACHE=off go test -timeout 5m -race -coverprofile=/tmp/workspace/profiles/$id.out -covermode=atomic "$pkg" | tee "/tmp/logs/$id-$RANDOM.log"
|
|
done
|
|
- persist_to_workspace:
|
|
root: /tmp/workspace
|
|
paths:
|
|
- "profiles/*"
|
|
- store_artifacts:
|
|
path: /tmp/logs
|
|
|
|
test_persistence:
|
|
<<: *defaults
|
|
steps:
|
|
- attach_workspace:
|
|
at: /tmp/workspace
|
|
- restore_cache:
|
|
key: v3-pkg-cache
|
|
- restore_cache:
|
|
key: v3-tree-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run:
|
|
name: Run tests
|
|
command: bash test/persist/test_failure_indices.sh
|
|
|
|
test_p2p:
|
|
environment:
|
|
GOBIN: /home/circleci/.go_workspace/bin
|
|
GOPATH: /home/circleci/.go_workspace
|
|
machine:
|
|
image: circleci/classic:latest
|
|
steps:
|
|
- checkout
|
|
- run: mkdir -p $GOPATH/src/github.com/tendermint
|
|
- run: ln -sf /home/circleci/project $GOPATH/src/github.com/tendermint/tendermint
|
|
- run: bash test/p2p/circleci.sh
|
|
|
|
upload_coverage:
|
|
<<: *defaults
|
|
steps:
|
|
- attach_workspace:
|
|
at: /tmp/workspace
|
|
- restore_cache:
|
|
key: v3-tree-{{ .Environment.CIRCLE_SHA1 }}
|
|
- run:
|
|
name: gather
|
|
command: |
|
|
set -ex
|
|
|
|
echo "mode: atomic" > coverage.txt
|
|
for prof in $(ls /tmp/workspace/profiles/); do
|
|
tail -n +2 /tmp/workspace/profiles/"$prof" >> coverage.txt
|
|
done
|
|
- run:
|
|
name: upload
|
|
command: bash <(curl -s https://codecov.io/bash) -f coverage.txt
|
|
|
|
workflows:
|
|
version: 2
|
|
test-suite:
|
|
jobs:
|
|
- setup_dependencies
|
|
- lint:
|
|
requires:
|
|
- setup_dependencies
|
|
- test_abci_apps:
|
|
requires:
|
|
- setup_dependencies
|
|
- test_abci_cli:
|
|
requires:
|
|
- setup_dependencies
|
|
- test_apps:
|
|
requires:
|
|
- setup_dependencies
|
|
- test_cover:
|
|
requires:
|
|
- setup_dependencies
|
|
- test_persistence:
|
|
requires:
|
|
- setup_dependencies
|
|
- test_p2p
|
|
- upload_coverage:
|
|
requires:
|
|
- test_cover
|