commit
c08c6c506e
1 changed files with 40 additions and 0 deletions
40
circle.yml
40
circle.yml
|
@ -1,23 +1,33 @@
|
||||||
|
# Pony-up!
|
||||||
machine:
|
machine:
|
||||||
pre:
|
pre:
|
||||||
|
# Install gvm
|
||||||
- bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/1.0.22/binscripts/gvm-installer)
|
- bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/1.0.22/binscripts/gvm-installer)
|
||||||
|
|
||||||
post:
|
post:
|
||||||
|
# Install many go versions
|
||||||
- gvm install go1.3.3 -B --name=old
|
- gvm install go1.3.3 -B --name=old
|
||||||
- gvm install go1.4 -B --name=stable
|
- gvm install go1.4 -B --name=stable
|
||||||
|
# - gvm install tip --name=bleed
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
|
# Convenient shortcuts to "common" locations
|
||||||
CHECKOUT: /home/ubuntu/$CIRCLE_PROJECT_REPONAME
|
CHECKOUT: /home/ubuntu/$CIRCLE_PROJECT_REPONAME
|
||||||
BASE_DIR: src/github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME
|
BASE_DIR: src/github.com/$CIRCLE_PROJECT_USERNAME/$CIRCLE_PROJECT_REPONAME
|
||||||
|
# Trick circle brainflat "no absolute path" behavior
|
||||||
BASE_OLD: ../../../$HOME/.gvm/pkgsets/old/global/$BASE_DIR
|
BASE_OLD: ../../../$HOME/.gvm/pkgsets/old/global/$BASE_DIR
|
||||||
BASE_STABLE: ../../../$HOME/.gvm/pkgsets/stable/global/$BASE_DIR
|
BASE_STABLE: ../../../$HOME/.gvm/pkgsets/stable/global/$BASE_DIR
|
||||||
|
# BASE_BLEED: ../../../$HOME/.gvm/pkgsets/bleed/global/$BASE_DIR
|
||||||
|
# Workaround Circle parsing dumb bugs and/or YAML wonkyness
|
||||||
CIRCLE_PAIN: "mode: set"
|
CIRCLE_PAIN: "mode: set"
|
||||||
|
|
||||||
hosts:
|
hosts:
|
||||||
|
# Not used yet
|
||||||
fancy: 127.0.0.1
|
fancy: 127.0.0.1
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
pre:
|
pre:
|
||||||
|
# Copy the code to the gopath of all go versions
|
||||||
- >
|
- >
|
||||||
gvm use old &&
|
gvm use old &&
|
||||||
mkdir -p "$(dirname $BASE_OLD)" &&
|
mkdir -p "$(dirname $BASE_OLD)" &&
|
||||||
|
@ -28,37 +38,59 @@ dependencies:
|
||||||
mkdir -p "$(dirname $BASE_STABLE)" &&
|
mkdir -p "$(dirname $BASE_STABLE)" &&
|
||||||
cp -R "$CHECKOUT" "$BASE_STABLE"
|
cp -R "$CHECKOUT" "$BASE_STABLE"
|
||||||
|
|
||||||
|
# - >
|
||||||
|
# gvm use bleed &&
|
||||||
|
# mkdir -p "$(dirname $BASE_BLEED)" &&
|
||||||
|
# cp -R "$CHECKOUT" "$BASE_BLEED"
|
||||||
|
|
||||||
override:
|
override:
|
||||||
|
# Install dependencies for every copied clone/go version
|
||||||
- gvm use old && go get -t -d -v ./...:
|
- gvm use old && go get -t -d -v ./...:
|
||||||
pwd: $BASE_OLD
|
pwd: $BASE_OLD
|
||||||
|
|
||||||
- gvm use stable && go get -t -d -v ./...:
|
- gvm use stable && go get -t -d -v ./...:
|
||||||
pwd: $BASE_STABLE
|
pwd: $BASE_STABLE
|
||||||
|
|
||||||
|
# - gvm use bleed && go get -t -d -v ./...:
|
||||||
|
# pwd: $BASE_BLEED
|
||||||
|
|
||||||
post:
|
post:
|
||||||
|
# For the stable go version, additionally install linting tools
|
||||||
- >
|
- >
|
||||||
gvm use stable &&
|
gvm use stable &&
|
||||||
go get github.com/axw/gocov/gocov github.com/mattn/goveralls github.com/golang/lint/golint
|
go get github.com/axw/gocov/gocov github.com/mattn/goveralls github.com/golang/lint/golint
|
||||||
|
|
||||||
test:
|
test:
|
||||||
pre:
|
pre:
|
||||||
|
# Output the go versions we are going to test
|
||||||
- gvm use old && go version
|
- gvm use old && go version
|
||||||
- gvm use stable && go version
|
- gvm use stable && go version
|
||||||
|
# - gvm use bleed && go version
|
||||||
|
|
||||||
|
# FMT
|
||||||
- gvm use stable && test -z "$(gofmt -s -l . | tee /dev/stderr)":
|
- gvm use stable && test -z "$(gofmt -s -l . | tee /dev/stderr)":
|
||||||
pwd: $BASE_STABLE
|
pwd: $BASE_STABLE
|
||||||
|
|
||||||
|
# VET
|
||||||
- gvm use stable && go vet ./...:
|
- gvm use stable && go vet ./...:
|
||||||
pwd: $BASE_STABLE
|
pwd: $BASE_STABLE
|
||||||
|
|
||||||
|
# LINT
|
||||||
- gvm use stable && test -z "$(golint ./... | tee /dev/stderr)":
|
- gvm use stable && test -z "$(golint ./... | tee /dev/stderr)":
|
||||||
pwd: $BASE_STABLE
|
pwd: $BASE_STABLE
|
||||||
|
|
||||||
override:
|
override:
|
||||||
|
# Test every version we have (but stable)
|
||||||
- gvm use old; go test -test.v -test.short ./...:
|
- gvm use old; go test -test.v -test.short ./...:
|
||||||
timeout: 600
|
timeout: 600
|
||||||
pwd: $BASE_OLD
|
pwd: $BASE_OLD
|
||||||
|
|
||||||
|
# - gvm use bleed; go test -test.v -test.short ./...:
|
||||||
|
# timeout: 600
|
||||||
|
# pwd: $BASE_BLEED
|
||||||
|
|
||||||
|
# Test stable, and report
|
||||||
|
# Preset the goverall report file
|
||||||
- echo "$CIRCLE_PAIN" > ~/goverage.report
|
- echo "$CIRCLE_PAIN" > ~/goverage.report
|
||||||
- gvm use stable; go list ./... | xargs -L 1 -I{} rm -f $GOPATH/src/{}/coverage.out:
|
- gvm use stable; go list ./... | xargs -L 1 -I{} rm -f $GOPATH/src/{}/coverage.out:
|
||||||
pwd: $BASE_STABLE
|
pwd: $BASE_STABLE
|
||||||
|
@ -68,11 +100,19 @@ test:
|
||||||
pwd: $BASE_STABLE
|
pwd: $BASE_STABLE
|
||||||
|
|
||||||
post:
|
post:
|
||||||
|
# Aggregate and report to coveralls
|
||||||
- gvm use stable; go list ./... | xargs -L 1 -I{} cat "$GOPATH/src/{}/coverage.out" | grep -v "$CIRCLE_PAIN" >> ~/goverage.report:
|
- gvm use stable; go list ./... | xargs -L 1 -I{} cat "$GOPATH/src/{}/coverage.out" | grep -v "$CIRCLE_PAIN" >> ~/goverage.report:
|
||||||
pwd: $BASE_STABLE
|
pwd: $BASE_STABLE
|
||||||
- gvm use stable; goveralls -service circleci -coverprofile=/home/ubuntu/goverage.report -repotoken $COVERALLS_TOKEN:
|
- gvm use stable; goveralls -service circleci -coverprofile=/home/ubuntu/goverage.report -repotoken $COVERALLS_TOKEN:
|
||||||
pwd: $BASE_STABLE
|
pwd: $BASE_STABLE
|
||||||
|
|
||||||
|
## 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
|
||||||
|
|
||||||
general:
|
general:
|
||||||
branches:
|
branches:
|
||||||
ignore:
|
ignore:
|
||||||
|
|
Loading…
Reference in a new issue