From eea93b8904ef8afd4564d97968b4bb5c03a03d3a Mon Sep 17 00:00:00 2001 From: Adrian Brink Date: Wed, 28 Mar 2018 12:37:42 +0200 Subject: [PATCH] Upgrade to Circle 2.0 --- .circleci/config.yml | 121 +++++++++++++++++++++++++++++++++++++++++++ .gitignore | 1 + circle.yml | 21 -------- 3 files changed, 122 insertions(+), 21 deletions(-) create mode 100644 .circleci/config.yml delete mode 100644 circle.yml diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 000000000..fd22668a4 --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,121 @@ +version: 2 + +defaults: &defaults + working_directory: /go/src/github.com/tendermint/abci + docker: + - image: circleci/golang:1.10.0 + 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: + - v1-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 + - persist_to_workspace: + root: /tmp/workspace + paths: + - bin + - profiles + - save_cache: + key: v1-pkg-cache + paths: + - /go/pkg + - save_cache: + key: v1-tree-{{ .Environment.CIRCLE_SHA1 }} + paths: + - /go/src/github.com/tendermint/abci + + test_integration: + <<: *defaults + steps: + - attach_workspace: + at: /tmp/workspace + - restore_cache: + key: v1-pkg-cache + - restore_cache: + key: v1-tree-{{ .Environment.CIRCLE_SHA1 }} + - run: + name: Run integration tests + command: | + find . -path ./vendor -prune -o -name "*.sock" -exec rm {} \; + bash tests/test.sh + + test_cover: + <<: *defaults + parallelism: 4 + steps: + - attach_workspace: + at: /tmp/workspace + - restore_cache: + key: v1-pkg-cache + - restore_cache: + key: v1-tree-{{ .Environment.CIRCLE_SHA1 }} + - run: + name: Run test cover + command: | + for pkg in $(go list github.com/tendermint/abci/... | grep -v /vendor/ | circleci tests split --split-by=timings); do + id=$(basename "$pkg") + go test -timeout 5m -race -coverprofile=/tmp/workspace/profiles/$id.out -covermode=atomic "$pkg" + done + - persist_to_workspace: + root: /tmp/workspace + paths: + - "profiles/*" + + upload_coverage: + <<: *defaults + steps: + - attach_workspace: + at: /tmp/workspace + - restore_cache: + key: v1-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 + - test_cover: + requires: + - setup_dependencies + - test_integration: + requires: + - setup_dependencies + - upload_coverage: + requires: + - test_integrations + + diff --git a/.gitignore b/.gitignore index f1fa5d414..8c2b367cd 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ vendor types/types.pb.go *.sw[op] abci-cli +coverage.txt diff --git a/circle.yml b/circle.yml deleted file mode 100644 index 8e7373395..000000000 --- a/circle.yml +++ /dev/null @@ -1,21 +0,0 @@ -machine: - environment: - GOPATH: /home/ubuntu/.go_workspace - REPO: $GOPATH/src/github.com/$CIRCLE_PROJECT_USERNAME/$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 - - go version - -test: - override: - - cd $REPO && make get_tools check get_vendor_deps install test_integrations - post: - - cd "$REPO" && bash <(curl -s https://codecov.io/bash) -f coverage.txt - - cd "$REPO" && mv coverage.txt "${CIRCLE_ARTIFACTS}"