2015-01-02 19:14:42 +01:00
|
|
|
# Pony-up!
|
2014-12-06 04:04:00 +01:00
|
|
|
machine:
|
|
|
|
pre:
|
2015-01-02 19:14:42 +01:00
|
|
|
# Install gvm
|
2014-12-16 20:38:08 +01:00
|
|
|
- bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/1.0.22/binscripts/gvm-installer)
|
2015-12-21 19:26:53 +01:00
|
|
|
# Install codecov for coverage
|
|
|
|
- pip install --user codecov
|
2014-12-16 20:38:08 +01:00
|
|
|
|
|
|
|
post:
|
2015-11-11 02:01:43 +01:00
|
|
|
# go
|
2016-01-14 03:25:20 +01:00
|
|
|
- gvm install go1.5.3 --prefer-binary --name=stable
|
2014-12-16 20:38:08 +01:00
|
|
|
|
|
|
|
environment:
|
2015-01-02 19:14:42 +01:00
|
|
|
# Convenient shortcuts to "common" locations
|
2014-12-16 20:38:08 +01:00
|
|
|
CHECKOUT: /home/ubuntu/$CIRCLE_PROJECT_REPONAME
|
|
|
|
BASE_DIR: src/github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME
|
2015-01-02 19:14:42 +01:00
|
|
|
# Trick circle brainflat "no absolute path" behavior
|
2014-12-16 20:38:08 +01:00
|
|
|
BASE_STABLE: ../../../$HOME/.gvm/pkgsets/stable/global/$BASE_DIR
|
2016-03-11 01:46:43 +01:00
|
|
|
DOCKER_BUILDTAGS: "include_oss include_gcs"
|
2015-01-02 19:14:42 +01:00
|
|
|
# Workaround Circle parsing dumb bugs and/or YAML wonkyness
|
2014-12-16 20:38:08 +01:00
|
|
|
CIRCLE_PAIN: "mode: set"
|
2014-12-06 04:04:00 +01:00
|
|
|
|
|
|
|
hosts:
|
2015-01-02 19:14:42 +01:00
|
|
|
# Not used yet
|
2014-12-06 04:04:00 +01:00
|
|
|
fancy: 127.0.0.1
|
|
|
|
|
|
|
|
dependencies:
|
2014-12-16 20:38:08 +01:00
|
|
|
pre:
|
2015-01-02 19:14:42 +01:00
|
|
|
# Copy the code to the gopath of all go versions
|
2014-12-16 20:38:08 +01:00
|
|
|
- >
|
|
|
|
gvm use stable &&
|
|
|
|
mkdir -p "$(dirname $BASE_STABLE)" &&
|
|
|
|
cp -R "$CHECKOUT" "$BASE_STABLE"
|
|
|
|
|
|
|
|
override:
|
2015-01-02 19:14:42 +01:00
|
|
|
# Install dependencies for every copied clone/go version
|
2015-01-22 23:25:28 +01:00
|
|
|
- gvm use stable && go get github.com/tools/godep:
|
2014-12-16 20:38:08 +01:00
|
|
|
pwd: $BASE_STABLE
|
|
|
|
|
2014-12-06 04:04:00 +01:00
|
|
|
post:
|
2015-01-02 19:14:42 +01:00
|
|
|
# For the stable go version, additionally install linting tools
|
2014-12-16 20:38:08 +01:00
|
|
|
- >
|
|
|
|
gvm use stable &&
|
2015-06-01 19:40:52 +02:00
|
|
|
go get github.com/axw/gocov/gocov github.com/golang/lint/golint
|
2015-12-21 19:26:53 +01:00
|
|
|
|
2014-12-06 04:04:00 +01:00
|
|
|
test:
|
|
|
|
pre:
|
2015-01-02 19:14:42 +01:00
|
|
|
# Output the go versions we are going to test
|
2015-04-22 21:54:01 +02:00
|
|
|
# - gvm use old && go version
|
2014-12-16 20:38:08 +01:00
|
|
|
- gvm use stable && go version
|
|
|
|
|
2015-08-03 20:24:44 +02:00
|
|
|
# First thing: build everything. This will catch compile errors, and it's
|
|
|
|
# also necessary for go vet to work properly (see #807).
|
|
|
|
- gvm use stable && godep go install ./...:
|
|
|
|
pwd: $BASE_STABLE
|
|
|
|
|
2015-01-02 19:14:42 +01:00
|
|
|
# FMT
|
2015-01-12 22:59:50 +01:00
|
|
|
- gvm use stable && test -z "$(gofmt -s -l . | grep -v Godeps/_workspace/src/ | tee /dev/stderr)":
|
2014-12-16 20:38:08 +01:00
|
|
|
pwd: $BASE_STABLE
|
|
|
|
|
2015-11-11 02:01:43 +01:00
|
|
|
# VET
|
2014-12-16 20:38:08 +01:00
|
|
|
- gvm use stable && go vet ./...:
|
|
|
|
pwd: $BASE_STABLE
|
|
|
|
|
2015-01-02 19:14:42 +01:00
|
|
|
# LINT
|
2015-01-12 22:59:50 +01:00
|
|
|
- gvm use stable && test -z "$(golint ./... | grep -v Godeps/_workspace/src/ | tee /dev/stderr)":
|
2014-12-16 20:38:08 +01:00
|
|
|
pwd: $BASE_STABLE
|
|
|
|
|
2014-12-06 04:04:00 +01:00
|
|
|
override:
|
2015-01-02 19:14:42 +01:00
|
|
|
# Test stable, and report
|
2015-12-21 21:35:33 +01:00
|
|
|
- gvm use stable; export ROOT_PACKAGE=$(go list .); go list -tags "$DOCKER_BUILDTAGS" ./... | xargs -L 1 -I{} bash -c 'export PACKAGE={}; godep go test -tags "$DOCKER_BUILDTAGS" -test.short -coverprofile=$GOPATH/src/$PACKAGE/coverage.out -coverpkg=$(./coverpkg.sh $PACKAGE $ROOT_PACKAGE) $PACKAGE':
|
2015-11-11 02:01:43 +01:00
|
|
|
timeout: 600
|
|
|
|
pwd: $BASE_STABLE
|
2014-12-06 04:04:00 +01:00
|
|
|
|
2014-12-16 20:38:08 +01:00
|
|
|
post:
|
2015-12-21 21:35:33 +01:00
|
|
|
# Report to codecov
|
2015-12-21 19:26:53 +01:00
|
|
|
- bash <(curl -s https://codecov.io/bash):
|
2014-12-17 20:55:24 +01:00
|
|
|
pwd: $BASE_STABLE
|
2014-12-16 20:38:08 +01:00
|
|
|
|
2015-01-02 19:14:42 +01:00
|
|
|
## Notes
|
|
|
|
# Disabled the -race detector due to massive memory usage.
|
|
|
|
# Do we want these as well?
|
|
|
|
# - go get code.google.com/p/go.tools/cmd/goimports
|
|
|
|
# - test -z "$(goimports -l -w ./... | tee /dev/stderr)"
|
|
|
|
# http://labix.org/gocheck
|