From 4af33dbc257667e1f19e147e2f46d85355debd36 Mon Sep 17 00:00:00 2001 From: Dieter Plaetinck Date: Wed, 3 Jan 2018 19:39:01 +0100 Subject: [PATCH] split up circleCI jobs into parrallel workflows --- .circleci/config.yml | 55 +++++++++++++++++++++++++++++++++++++------- 1 file changed, 47 insertions(+), 8 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 875c843f42..345b43ad80 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -2,12 +2,23 @@ version: 2 jobs: build: working_directory: /home/circleci/.go_workspace/src/github.com/grafana/metrictank - machine: true + docker: + - image: circleci/golang:1.9.1 steps: - - run: go version + - checkout - run: echo $GOPATH - - run: docker version - - run: docker-compose version + - run: scripts/build.sh + - run: scripts/build_tools.sh + - run: scripts/build_docker.sh + - persist_to_workspace: + root: . + paths: build + + qa: + working_directory: /home/circleci/.go_workspace/src/github.com/grafana/metrictank + docker: + - image: circleci/golang:1.9.1 + steps: - checkout - run: scripts/qa/gofmt.sh - run: scripts/qa/go-generate.sh @@ -17,12 +28,25 @@ jobs: - run: scripts/qa/unused.sh - run: scripts/qa/vendor.sh - run: go vet ./... - - run: scripts/build.sh - - run: scripts/build_tools.sh - - run: scripts/build_docker.sh - - run: scripts/qa/docs.sh - run: go test -v -race $(go list ./... | grep -v github.com/grafana/metrictank/chaos) + + qa-post-build: + machine: true + steps: + - attach_workspace: + at: build + - run: find . build + - run: scripts/qa/docs.sh - run: scripts/qa/end2end.sh + + deploy: + working_directory: /home/circleci/.go_workspace/src/github.com/grafana/metrictank + docker: + - image: circleci/golang:1.9 + steps: + - attach_workspace: + at: build + - checkout - run: scripts/depends.sh - run: scripts/build_packages.sh - store_artifacts: @@ -36,3 +60,18 @@ jobs: docker login -u $DOCKER_USER -p $DOCKER_PASS scripts/push/docker.sh fi + +workflows: + version: 2 + build_accept_deploy: + jobs: + - build + - qa + - qa-post-build: + requires: + - build + - deploy: + requires: + - qa + - build + - qa-post-build