From d5d7286cb6c07c77bc95796b78dde2c0829721b0 Mon Sep 17 00:00:00 2001 From: Anton Kaliaev Date: Fri, 3 Feb 2017 17:20:52 +0400 Subject: [PATCH] improve circleci config - update docker machine version to 0.9.0 - save coverage.txt as artifact - save docker logs as artifact - test if coverage.txt exists - 2>&1 redirect stderr to stdout in tests --- Makefile | 6 +++--- circle.yml | 33 ++++++++++++++------------------- test/test.sh | 2 +- test/test_cover.sh | 2 +- test/test_libs.sh | 2 +- 5 files changed, 20 insertions(+), 25 deletions(-) diff --git a/Makefile b/Makefile index 2b4ea598e..dc22959c5 100644 --- a/Makefile +++ b/Makefile @@ -22,11 +22,11 @@ dist: test: @echo "--> Running go test" - @go test $(PACKAGES) + @go test -v $(PACKAGES) test_race: @echo "--> Running go test --race" - @go test -race $(PACKAGES) + @go test -v -race $(PACKAGES) test_integrations: @bash ./test/test.sh @@ -48,7 +48,7 @@ get_deps: @go get -d $(PACKAGES) @go list -f '{{join .TestImports "\n"}}' ./... | \ grep -v /vendor/ | sort | uniq | \ - xargs go get + xargs go get -d get_vendor_deps: tools @rm -rf vendor/ diff --git a/circle.yml b/circle.yml index d6f7abeb6..e77b578bf 100644 --- a/circle.yml +++ b/circle.yml @@ -1,38 +1,33 @@ +--- machine: environment: MACH_PREFIX: tendermint-test-mach - GOPATH: /home/ubuntu/.go_workspace - REPO: $GOPATH/src/github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME DOCKER_VERSION: 1.10.0 - DOCKER_MACHINE_VERSION: 0.6.0 + DOCKER_MACHINE_VERSION: 0.9.0 + GOPATH: "$HOME/.go_project" + PROJECT_PARENT_PATH: "$GOPATH/src/github.com/$CIRCLE_PROJECT_USERNAME" + PROJECT_PATH: "$PROJECT_PARENT_PATH/$CIRCLE_PROJECT_REPONAME" hosts: - circlehost: 127.0.0.1 localhost: 127.0.0.1 -checkout: - post: - - rm -rf $REPO - - mkdir -p $HOME/.go_workspace/src/github.com/$CIRCLE_PROJECT_USERNAME - - mv $HOME/$CIRCLE_PROJECT_REPONAME $REPO - # - git submodule sync - # - git submodule update --init # use submodules - dependencies: override: - - echo $MACH_PREFIX $GOPATH $REPO $DOCKER_VERSION $DOCKER_MACHINE_VERSION - curl -sSL https://s3.amazonaws.com/circle-downloads/install-circleci-docker.sh | sudo bash -s -- $DOCKER_VERSION - - sudo curl -sSL -o /usr/bin/docker-machine https://github.com/docker/machine/releases/download/v$DOCKER_MACHINE_VERSION/docker-machine-linux-x86_64; sudo chmod 0755 /usr/bin/docker-machine - sudo start docker + - sudo curl -sSL -o /usr/bin/docker-machine "https://github.com/docker/machine/releases/download/v$DOCKER_MACHINE_VERSION/docker-machine-`uname -s`-`uname -m`"; sudo chmod 0755 /usr/bin/docker-machine + - mkdir -p "$PROJECT_PARENT_PATH" + - ln -sf "$HOME/$CIRCLE_PROJECT_REPONAME/" "$PROJECT_PATH" + post: - go version - docker version - docker-machine version test: override: - - "cd $REPO && set -o pipefail && make test_integrations | tee ~/test_integrations.log": + - cd "$PROJECT_PATH" && set -o pipefail && make test_integrations 2>&1 | tee test_integrations.log: timeout: 1800 - - "cp ~/test_integrations.log $CIRCLE_ARTIFACTS" post: - - "cd $REPO && bash <(curl -s https://codecov.io/bash)" - - + - cd "$PROJECT_PATH" && mv test_integrations.log "${CIRCLE_ARTIFACTS}" + - cd "$PROJECT_PATH" && bash <(curl -s https://codecov.io/bash) -f coverage.txt + - cd "$PROJECT_PATH" && [[ -f coverage.txt ]] && mv coverage.txt "${CIRCLE_ARTIFACTS}" + - sudo cp /var/log/upstart/docker.log "${CIRCLE_ARTIFACTS}" diff --git a/test/test.sh b/test/test.sh index 0e779a049..9e42235e8 100644 --- a/test/test.sh +++ b/test/test.sh @@ -29,6 +29,6 @@ if [[ $(echo "$BRANCH" | grep "release-") != "" ]]; then echo "" echo "TODO: run network tests" #echo "* branch $BRANCH; running mintnet/netmon throughput benchmark" - # TODO: replace mintnet + # TODO: replace mintnet #bash test/net/test.sh fi diff --git a/test/test_cover.sh b/test/test_cover.sh index 49992d631..60c84284d 100644 --- a/test/test_cover.sh +++ b/test/test_cover.sh @@ -5,7 +5,7 @@ PKGS=$(go list github.com/tendermint/tendermint/... | grep -v /vendor/) set -e echo "mode: atomic" > coverage.txt for pkg in ${PKGS[@]}; do - go test -timeout 30m -race -coverprofile=profile.out -covermode=atomic $pkg + go test -v -timeout 30m -race -coverprofile=profile.out -covermode=atomic $pkg if [ -f profile.out ]; then tail -n +2 profile.out >> coverage.txt; rm profile.out diff --git a/test/test_libs.sh b/test/test_libs.sh index 8692f5de3..28ec07980 100644 --- a/test/test_libs.sh +++ b/test/test_libs.sh @@ -21,7 +21,7 @@ for lib in "${LIBS_GO_TEST[@]}"; do bash scripts/glide/checkout.sh $GLIDE $lib echo "Testing $lib ..." - go test --race github.com/tendermint/$lib/... + go test -v --race github.com/tendermint/$lib/... if [[ "$?" != 0 ]]; then echo "FAIL" exit 1