Run make in circle, don't build arm and 32-bit

This commit is contained in:
Cameron Sparr 2015-10-28 11:59:19 -06:00
parent fa9555c430
commit 028bae8f04
3 changed files with 15 additions and 27 deletions

View File

@ -4,6 +4,7 @@
- Telegraf will no longer use docker-compose for "long" unit test, it has been - Telegraf will no longer use docker-compose for "long" unit test, it has been
changed to just run docker commands in the Makefile. See `make docker-run` and changed to just run docker commands in the Makefile. See `make docker-run` and
`make docker-kill`. `make test` will still run all unit tests with docker. `make docker-kill`. `make test` will still run all unit tests with docker.
- Long unit tests are now run in CircleCI, with docker & race detector
### Features ### Features
- [#325](https://github.com/influxdb/telegraf/pull/325): NSQ output. Thanks @jrxFive! - [#325](https://github.com/influxdb/telegraf/pull/325): NSQ output. Thanks @jrxFive!

View File

@ -4,16 +4,19 @@ ifndef GOBIN
GOBIN = $(GOPATH)/bin GOBIN = $(GOPATH)/bin
endif endif
# Standard Telegraf build
build: prepare build: prepare
$(GOBIN)/godep go build -o telegraf -ldflags \ $(GOBIN)/godep go build -o telegraf -ldflags \
"-X main.Version=$(VERSION)" \ "-X main.Version=$(VERSION)" \
./cmd/telegraf/telegraf.go ./cmd/telegraf/telegraf.go
# Build with race detector
dev: prepare dev: prepare
$(GOBIN)/godep go build -race -o telegraf -ldflags \ $(GOBIN)/godep go build -race -o telegraf -ldflags \
"-X main.Version=$(VERSION)" \ "-X main.Version=$(VERSION)" \
./cmd/telegraf/telegraf.go ./cmd/telegraf/telegraf.go
# Build linux 64-bit, 32-bit and arm architectures
build-linux-bins: prepare build-linux-bins: prepare
GOARCH=amd64 GOOS=linux $(GOBIN)/godep go build -o telegraf_linux_amd64 \ GOARCH=amd64 GOOS=linux $(GOBIN)/godep go build -o telegraf_linux_amd64 \
-ldflags "-X main.Version=$(VERSION)" \ -ldflags "-X main.Version=$(VERSION)" \
@ -25,9 +28,11 @@ build-linux-bins: prepare
-ldflags "-X main.Version=$(VERSION)" \ -ldflags "-X main.Version=$(VERSION)" \
./cmd/telegraf/telegraf.go ./cmd/telegraf/telegraf.go
# Get godep
prepare: prepare:
go get github.com/tools/godep go get github.com/tools/godep
# Run all docker containers necessary for unit tests
docker-run: docker-run:
ifeq ($(UNAME), Darwin) ifeq ($(UNAME), Darwin)
docker run --name kafka \ docker run --name kafka \
@ -52,6 +57,7 @@ endif
docker run --name aerospike -p "3000:3000" -d aerospike docker run --name aerospike -p "3000:3000" -d aerospike
docker run --name nsq -p "4150:4150" -d nsqio/nsq /nsqd docker run --name nsq -p "4150:4150" -d nsqio/nsq /nsqd
# Run docker containers necessary for CircleCI unit tests
docker-run-circle: docker-run-circle:
docker run --name kafka \ docker run --name kafka \
-e ADVERTISED_HOST=localhost \ -e ADVERTISED_HOST=localhost \
@ -62,16 +68,19 @@ docker-run-circle:
docker run --name aerospike -p "3000:3000" -d aerospike docker run --name aerospike -p "3000:3000" -d aerospike
docker run --name nsq -p "4150:4150" -d nsqio/nsq /nsqd docker run --name nsq -p "4150:4150" -d nsqio/nsq /nsqd
# Kill all docker containers, ignore errors
docker-kill: docker-kill:
-docker kill nsq aerospike redis opentsdb rabbitmq postgres memcached mysql kafka -docker kill nsq aerospike redis opentsdb rabbitmq postgres memcached mysql kafka
-docker rm nsq aerospike redis opentsdb rabbitmq postgres memcached mysql kafka -docker rm nsq aerospike redis opentsdb rabbitmq postgres memcached mysql kafka
# Run full unit tests using docker containers (includes setup and teardown)
test: docker-kill prepare docker-run test: docker-kill prepare docker-run
# Sleeping for kafka leadership election, TSDB setup, etc. # Sleeping for kafka leadership election, TSDB setup, etc.
sleep 60 sleep 60
# SUCCESS, running tests # SUCCESS, running tests
godep go test -race ./... godep go test -race ./...
# Run "short" unit tests
test-short: prepare test-short: prepare
$(GOBIN)/godep go test -short ./... $(GOBIN)/godep go test -short ./...

View File

@ -28,15 +28,6 @@ function check_go_fmt {
fi fi
} }
# build takes three arguments: GOOS & GOARCH & VERSION
function build {
echo -n "=> $1-$2: "
GOOS=$1 GOARCH=$2 godep go build -o telegraf-$1-$2 \
-ldflags "-X main.Version=$3" \
./cmd/telegraf/telegraf.go
du -h telegraf-$1-$2
}
# Set up the build directory, and then GOPATH. # Set up the build directory, and then GOPATH.
exit_if_fail mkdir $BUILD_DIR exit_if_fail mkdir $BUILD_DIR
export GOPATH=$BUILD_DIR export GOPATH=$BUILD_DIR
@ -45,11 +36,6 @@ export GOGC=off
export PATH=$GOPATH/bin:$PATH export PATH=$GOPATH/bin:$PATH
exit_if_fail mkdir -p $GOPATH/src/github.com/influxdb exit_if_fail mkdir -p $GOPATH/src/github.com/influxdb
# Get golint
go get github.com/golang/lint/golint
# Get godep tool
go get github.com/tools/godep
# Dump some test config to the log. # Dump some test config to the log.
echo "Test configuration" echo "Test configuration"
echo "========================================" echo "========================================"
@ -65,29 +51,21 @@ exit_if_fail cd $GOPATH/src/github.com/influxdb/telegraf
check_go_fmt check_go_fmt
# Build the code # Build the code
exit_if_fail godep go build -v ./... exit_if_fail make
# Run the tests # Run the tests
exit_if_fail godep go vet ./... exit_if_fail godep go vet ./...
exit_if_fail make docker-run-circle exit_if_fail make docker-run-circle
sleep 30 sleep 10
exit_if_fail godep go test -race ./... exit_if_fail godep go test -race ./...
# Build binaries
build "linux" "amd64" $VERSION
build "linux" "386" $VERSION
build "linux" "arm" $VERSION
# Simple Integration Tests # Simple Integration Tests
# check that version was properly set # check that version was properly set
exit_if_fail "./telegraf-linux-amd64 -version | grep $VERSION" exit_if_fail "./telegraf -version | grep $VERSION"
# check that one test cpu & mem output work # check that one test cpu & mem output work
tmpdir=$(mktemp -d) tmpdir=$(mktemp -d)
./telegraf-linux-amd64 -sample-config > $tmpdir/config.toml ./telegraf -sample-config > $tmpdir/config.toml
exit_if_fail ./telegraf-linux-amd64 -config $tmpdir/config.toml \ exit_if_fail ./telegraf -config $tmpdir/config.toml \
-test -filter cpu:mem -test -filter cpu:mem
# Artifact binaries
mv telegraf* $CIRCLE_ARTIFACTS
exit $rc exit $rc