148 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
			
		
		
	
	
			148 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
ifeq ($(SHELL), cmd)
 | 
						|
	VERSION := $(shell git describe --exact-match --tags 2>nil)
 | 
						|
	HOME := $(HOMEPATH)
 | 
						|
else ifeq ($(SHELL), sh.exe)
 | 
						|
	VERSION := $(shell git describe --exact-match --tags 2>nil)
 | 
						|
	HOME := $(HOMEPATH)
 | 
						|
else
 | 
						|
	VERSION := $(shell git describe --exact-match --tags 2>/dev/null)
 | 
						|
endif
 | 
						|
 | 
						|
PREFIX := /usr/local
 | 
						|
BRANCH := $(shell git rev-parse --abbrev-ref HEAD)
 | 
						|
COMMIT := $(shell git rev-parse --short HEAD)
 | 
						|
GOFILES ?= $(shell git ls-files '*.go')
 | 
						|
GOFMT ?= $(shell gofmt -l -s $(filter-out plugins/parsers/influx/machine.go, $(GOFILES)))
 | 
						|
BUILDFLAGS ?=
 | 
						|
 | 
						|
ifdef GOBIN
 | 
						|
PATH := $(GOBIN):$(PATH)
 | 
						|
else
 | 
						|
PATH := $(subst :,/bin:,$(shell go env GOPATH))/bin:$(PATH)
 | 
						|
endif
 | 
						|
 | 
						|
LDFLAGS := $(LDFLAGS) -X main.commit=$(COMMIT) -X main.branch=$(BRANCH)
 | 
						|
ifdef VERSION
 | 
						|
	LDFLAGS += -X main.version=$(VERSION)
 | 
						|
endif
 | 
						|
 | 
						|
.PHONY: all
 | 
						|
all:
 | 
						|
	@$(MAKE) --no-print-directory deps
 | 
						|
	@$(MAKE) --no-print-directory telegraf
 | 
						|
 | 
						|
.PHONY: deps
 | 
						|
deps:
 | 
						|
	dep ensure -vendor-only
 | 
						|
 | 
						|
.PHONY: telegraf
 | 
						|
telegraf:
 | 
						|
	go build -ldflags "$(LDFLAGS)" ./cmd/telegraf
 | 
						|
 | 
						|
.PHONY: go-install
 | 
						|
go-install:
 | 
						|
	go install -ldflags "-w -s $(LDFLAGS)" ./cmd/telegraf
 | 
						|
 | 
						|
.PHONY: install
 | 
						|
install: telegraf
 | 
						|
	mkdir -p $(DESTDIR)$(PREFIX)/bin/
 | 
						|
	cp telegraf $(DESTDIR)$(PREFIX)/bin/
 | 
						|
 | 
						|
 | 
						|
.PHONY: test
 | 
						|
test:
 | 
						|
	go test -short ./...
 | 
						|
 | 
						|
.PHONY: fmt
 | 
						|
fmt:
 | 
						|
	@gofmt -s -w $(filter-out plugins/parsers/influx/machine.go, $(GOFILES))
 | 
						|
 | 
						|
.PHONY: fmtcheck
 | 
						|
fmtcheck:
 | 
						|
	@if [ ! -z "$(GOFMT)" ]; then \
 | 
						|
		echo "[ERROR] gofmt has found errors in the following files:"  ; \
 | 
						|
		echo "$(GOFMT)" ; \
 | 
						|
		echo "" ;\
 | 
						|
		echo "Run make fmt to fix them." ; \
 | 
						|
		exit 1 ;\
 | 
						|
	fi
 | 
						|
 | 
						|
.PHONY: test-windows
 | 
						|
test-windows:
 | 
						|
	go test -short ./plugins/inputs/ping/...
 | 
						|
	go test -short ./plugins/inputs/win_perf_counters/...
 | 
						|
	go test -short ./plugins/inputs/win_services/...
 | 
						|
	go test -short ./plugins/inputs/procstat/...
 | 
						|
	go test -short ./plugins/inputs/ntpq/...
 | 
						|
 | 
						|
.PHONY: vet
 | 
						|
vet:
 | 
						|
	@echo 'go vet $$(go list ./... | grep -v ./plugins/parsers/influx)'
 | 
						|
	@go vet $$(go list ./... | grep -v ./plugins/parsers/influx) ; if [ $$? -ne 0 ]; then \
 | 
						|
		echo ""; \
 | 
						|
		echo "go vet has found suspicious constructs. Please remediate any reported errors"; \
 | 
						|
		echo "to fix them before submitting code for review."; \
 | 
						|
		exit 1; \
 | 
						|
	fi
 | 
						|
 | 
						|
.PHONY: check
 | 
						|
check: fmtcheck vet
 | 
						|
 | 
						|
.PHONY: test-all
 | 
						|
test-all: fmtcheck vet
 | 
						|
	go test ./...
 | 
						|
 | 
						|
.PHONY: package
 | 
						|
package:
 | 
						|
	./scripts/build.py --package --platform=all --arch=all
 | 
						|
 | 
						|
.PHONY: package-release
 | 
						|
package-release:
 | 
						|
	./scripts/build.py --release --package --platform=all --arch=all \
 | 
						|
		--upload --bucket=dl.influxdata.com/telegraf/releases
 | 
						|
 | 
						|
.PHONY: package-nightly
 | 
						|
package-nightly:
 | 
						|
	./scripts/build.py --nightly --package --platform=all --arch=all \
 | 
						|
		--upload --bucket=dl.influxdata.com/telegraf/nightlies
 | 
						|
 | 
						|
.PHONY: clean
 | 
						|
clean:
 | 
						|
	rm -f telegraf
 | 
						|
	rm -f telegraf.exe
 | 
						|
 | 
						|
.PHONY: docker-image
 | 
						|
docker-image:
 | 
						|
	docker build -f scripts/stretch.docker -t "telegraf:$(COMMIT)" .
 | 
						|
 | 
						|
plugins/parsers/influx/machine.go: plugins/parsers/influx/machine.go.rl
 | 
						|
	ragel -Z -G2 $^ -o $@
 | 
						|
 | 
						|
.PHONY: static
 | 
						|
static:
 | 
						|
	@echo "Building static linux binary..."
 | 
						|
	@CGO_ENABLED=0 \
 | 
						|
	GOOS=linux \
 | 
						|
	GOARCH=amd64 \
 | 
						|
	go build -ldflags "$(LDFLAGS)" ./cmd/telegraf
 | 
						|
 | 
						|
.PHONY: plugin-%
 | 
						|
plugin-%:
 | 
						|
	@echo "Starting dev environment for $${$(@)} input plugin..."
 | 
						|
	@docker-compose -f plugins/inputs/$${$(@)}/dev/docker-compose.yml up
 | 
						|
 | 
						|
.PHONY: ci-1.11
 | 
						|
ci-1.11:
 | 
						|
	docker build -t quay.io/influxdb/telegraf-ci:1.11.1 - < scripts/ci-1.11.docker
 | 
						|
	docker push quay.io/influxdb/telegraf-ci:1.11.1
 | 
						|
 | 
						|
.PHONY: ci-1.10
 | 
						|
ci-1.10:
 | 
						|
	docker build -t quay.io/influxdb/telegraf-ci:1.10.4 - < scripts/ci-1.10.docker
 | 
						|
	docker push quay.io/influxdb/telegraf-ci:1.10.4
 | 
						|
 | 
						|
.PHONY: ci-1.9
 | 
						|
ci-1.9:
 | 
						|
	docker build -t quay.io/influxdb/telegraf-ci:1.9.7 - < scripts/ci-1.9.docker
 | 
						|
	docker push quay.io/influxdb/telegraf-ci:1.9.7
 |