export VERSION="$(git describe --tags --long | sed 's/v\(.*\)/\1/')"
export GO111MODULE=on
mkdir -p /tmp/logs /tmp/workspace/profiles
for pkg in $(go list ./... | grep -v '/simulation' | circleci tests split); do
id=$(echo "$pkg" | sed 's|[/.]|_|g')
go test -mod=readonly -timeout 8m -race -coverprofile=/tmp/workspace/profiles/$id.out -covermode=atomic -tags='ledger test_ledger_mock' "$pkg" | tee "/tmp/logs/$id-$RANDOM.log"
done
- persist_to_workspace:
root:/tmp/workspace
paths:
- "profiles/*"
- store_artifacts:
path:/tmp/logs
test-all:
executor:golang
steps:
- make:
target:test-all
description:"Run all tests and simulations"
start-remote-sims:
executor:golang
steps:
- make:
target:start-remote-sims
description:"Test multi-seed simulation (long)"
workflows:
version:2
test-suite:
jobs:
- setup-dependencies:
# This filter enables the job for tags
filters:
tags:
only:
- /^v.*/
- test-cover:
requires:
- setup-dependencies
- test-all:
requires:
- setup-dependencies
# These filters ensure that the long sim only runs during release