2015-08-04 20:52:44 +00:00
|
|
|
UNAME := $(shell sh -c 'uname')
|
2015-08-18 16:16:59 +00:00
|
|
|
VERSION := $(shell sh -c 'git describe --always --tags')
|
2015-11-20 22:23:48 +00:00
|
|
|
ifdef GOBIN
|
|
|
|
PATH := $(GOBIN):$(PATH)
|
|
|
|
else
|
|
|
|
PATH := $(subst :,/bin:,$(GOPATH))/bin:$(PATH)
|
2015-09-10 17:01:08 +00:00
|
|
|
endif
|
2015-08-04 20:52:44 +00:00
|
|
|
|
2015-10-28 17:59:19 +00:00
|
|
|
# Standard Telegraf build
|
2015-12-04 18:44:56 +00:00
|
|
|
default: prepare build
|
|
|
|
|
|
|
|
# Only run the build (no dependency grabbing)
|
|
|
|
build:
|
|
|
|
go build -o telegraf -ldflags \
|
2015-09-07 22:01:22 +00:00
|
|
|
"-X main.Version=$(VERSION)" \
|
2015-08-18 16:16:59 +00:00
|
|
|
./cmd/telegraf/telegraf.go
|
2015-08-04 20:52:44 +00:00
|
|
|
|
2015-10-28 17:59:19 +00:00
|
|
|
# Build with race detector
|
2015-10-08 17:33:56 +00:00
|
|
|
dev: prepare
|
2015-12-04 18:44:56 +00:00
|
|
|
go build -race -o telegraf -ldflags \
|
2015-10-08 17:33:56 +00:00
|
|
|
"-X main.Version=$(VERSION)" \
|
|
|
|
./cmd/telegraf/telegraf.go
|
|
|
|
|
2015-10-28 17:59:19 +00:00
|
|
|
# Build linux 64-bit, 32-bit and arm architectures
|
2015-09-04 20:12:50 +00:00
|
|
|
build-linux-bins: prepare
|
2015-12-04 18:44:56 +00:00
|
|
|
GOARCH=amd64 GOOS=linux go build -o telegraf_linux_amd64 \
|
2015-11-02 21:32:06 +00:00
|
|
|
-ldflags "-X main.Version=$(VERSION)" \
|
|
|
|
./cmd/telegraf/telegraf.go
|
2015-12-04 18:44:56 +00:00
|
|
|
GOARCH=386 GOOS=linux go build -o telegraf_linux_386 \
|
2015-11-02 21:32:06 +00:00
|
|
|
-ldflags "-X main.Version=$(VERSION)" \
|
|
|
|
./cmd/telegraf/telegraf.go
|
2015-12-04 18:44:56 +00:00
|
|
|
GOARCH=arm GOOS=linux go build -o telegraf_linux_arm \
|
2015-11-02 21:32:06 +00:00
|
|
|
-ldflags "-X main.Version=$(VERSION)" \
|
|
|
|
./cmd/telegraf/telegraf.go
|
2015-09-04 20:12:50 +00:00
|
|
|
|
2015-12-04 18:44:56 +00:00
|
|
|
# Get dependencies and use godep to checkout changesets
|
2015-07-06 04:46:43 +00:00
|
|
|
prepare:
|
2015-12-04 18:44:56 +00:00
|
|
|
go get ./...
|
2015-08-18 16:16:59 +00:00
|
|
|
go get github.com/tools/godep
|
2015-12-04 18:44:56 +00:00
|
|
|
godep restore
|
2015-08-04 20:52:44 +00:00
|
|
|
|
2015-10-28 17:59:19 +00:00
|
|
|
# Run all docker containers necessary for unit tests
|
2015-10-27 17:50:16 +00:00
|
|
|
docker-run:
|
2015-08-18 16:16:59 +00:00
|
|
|
ifeq ($(UNAME), Darwin)
|
2015-10-27 17:50:16 +00:00
|
|
|
docker run --name kafka \
|
|
|
|
-e ADVERTISED_HOST=$(shell sh -c 'boot2docker ip || docker-machine ip default') \
|
|
|
|
-e ADVERTISED_PORT=9092 \
|
|
|
|
-p "2181:2181" -p "9092:9092" \
|
|
|
|
-d spotify/kafka
|
2015-08-18 16:16:59 +00:00
|
|
|
endif
|
|
|
|
ifeq ($(UNAME), Linux)
|
2015-10-27 17:50:16 +00:00
|
|
|
docker run --name kafka \
|
|
|
|
-e ADVERTISED_HOST=localhost \
|
|
|
|
-e ADVERTISED_PORT=9092 \
|
|
|
|
-p "2181:2181" -p "9092:9092" \
|
|
|
|
-d spotify/kafka
|
2015-08-18 16:16:59 +00:00
|
|
|
endif
|
2015-10-27 17:50:16 +00:00
|
|
|
docker run --name mysql -p "3306:3306" -e MYSQL_ALLOW_EMPTY_PASSWORD=yes -d mysql
|
|
|
|
docker run --name memcached -p "11211:11211" -d memcached
|
|
|
|
docker run --name postgres -p "5432:5432" -d postgres
|
|
|
|
docker run --name rabbitmq -p "15672:15672" -p "5672:5672" -d rabbitmq:3-management
|
|
|
|
docker run --name opentsdb -p "4242:4242" -d petergrace/opentsdb-docker
|
|
|
|
docker run --name redis -p "6379:6379" -d redis
|
|
|
|
docker run --name aerospike -p "3000:3000" -d aerospike
|
|
|
|
docker run --name nsq -p "4150:4150" -d nsqio/nsq /nsqd
|
2015-11-13 20:37:24 +00:00
|
|
|
docker run --name mqtt -p "1883:1883" -d ncarlier/mqtt
|
2015-11-18 21:27:10 +00:00
|
|
|
docker run --name riemann -p "5555:5555" -d blalor/riemann
|
2015-08-18 16:16:59 +00:00
|
|
|
|
2015-10-28 17:59:19 +00:00
|
|
|
# Run docker containers necessary for CircleCI unit tests
|
2015-10-27 22:22:21 +00:00
|
|
|
docker-run-circle:
|
|
|
|
docker run --name kafka \
|
|
|
|
-e ADVERTISED_HOST=localhost \
|
|
|
|
-e ADVERTISED_PORT=9092 \
|
|
|
|
-p "2181:2181" -p "9092:9092" \
|
|
|
|
-d spotify/kafka
|
|
|
|
docker run --name opentsdb -p "4242:4242" -d petergrace/opentsdb-docker
|
|
|
|
docker run --name aerospike -p "3000:3000" -d aerospike
|
|
|
|
docker run --name nsq -p "4150:4150" -d nsqio/nsq /nsqd
|
2015-11-13 20:37:24 +00:00
|
|
|
docker run --name mqtt -p "1883:1883" -d ncarlier/mqtt
|
2015-11-18 21:27:10 +00:00
|
|
|
docker run --name riemann -p "5555:5555" -d blalor/riemann
|
2015-10-27 22:22:21 +00:00
|
|
|
|
2015-10-28 17:59:19 +00:00
|
|
|
# Kill all docker containers, ignore errors
|
2015-10-27 17:50:16 +00:00
|
|
|
docker-kill:
|
2015-11-18 21:27:10 +00:00
|
|
|
-docker kill nsq aerospike redis opentsdb rabbitmq postgres memcached mysql kafka mqtt riemann
|
|
|
|
-docker rm nsq aerospike redis opentsdb rabbitmq postgres memcached mysql kafka mqtt riemann
|
2015-10-27 17:50:16 +00:00
|
|
|
|
2015-10-28 17:59:19 +00:00
|
|
|
# Run full unit tests using docker containers (includes setup and teardown)
|
2015-10-27 17:50:16 +00:00
|
|
|
test: docker-kill prepare docker-run
|
2015-10-16 22:13:32 +00:00
|
|
|
# Sleeping for kafka leadership election, TSDB setup, etc.
|
2015-10-27 17:50:16 +00:00
|
|
|
sleep 60
|
2015-10-27 22:22:21 +00:00
|
|
|
# SUCCESS, running tests
|
2015-12-04 18:44:56 +00:00
|
|
|
go test -race ./...
|
2015-07-06 04:46:43 +00:00
|
|
|
|
2015-10-28 17:59:19 +00:00
|
|
|
# Run "short" unit tests
|
2015-08-04 14:58:32 +00:00
|
|
|
test-short: prepare
|
2015-12-04 18:44:56 +00:00
|
|
|
go test -short ./...
|
2015-07-06 04:46:43 +00:00
|
|
|
|
|
|
|
.PHONY: test
|