| 
									
										
										
										
											2015-03-09 11:14:42 -07:00
										 |  |  | # Copyright 2015 The Prometheus Authors
 | 
					
						
							|  |  |  | # Licensed under the Apache License, Version 2.0 (the "License");
 | 
					
						
							|  |  |  | # you may not use this file except in compliance with the License.
 | 
					
						
							|  |  |  | # You may obtain a copy of the License at
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | # http://www.apache.org/licenses/LICENSE-2.0
 | 
					
						
							|  |  |  | #
 | 
					
						
							|  |  |  | # Unless required by applicable law or agreed to in writing, software
 | 
					
						
							|  |  |  | # distributed under the License is distributed on an "AS IS" BASIS,
 | 
					
						
							|  |  |  | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
					
						
							|  |  |  | # See the License for the specific language governing permissions and
 | 
					
						
							|  |  |  | # limitations under the License.
 | 
					
						
							| 
									
										
										
										
											2014-04-09 16:20:52 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-29 09:52:36 -08:00
										 |  |  | GO     ?= GO15VENDOREXPERIMENT=1 go | 
					
						
							|  |  |  | GOPATH := $(firstword $(subst :, ,$(GOPATH))) | 
					
						
							| 
									
										
										
										
											2017-02-02 09:50:28 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | PROMU       ?= $(GOPATH)/bin/promu | 
					
						
							|  |  |  | STATICCHECK ?= $(GOPATH)/bin/staticcheck | 
					
						
							|  |  |  | pkgs         = $(shell $(GO) list ./... | grep -v /vendor/) | 
					
						
							| 
									
										
										
										
											2015-12-17 07:06:58 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-24 14:38:06 -08:00
										 |  |  | PREFIX                  ?= $(shell pwd) | 
					
						
							|  |  |  | BIN_DIR                 ?= $(shell pwd) | 
					
						
							|  |  |  | DOCKER_IMAGE_NAME       ?= node-exporter | 
					
						
							|  |  |  | DOCKER_IMAGE_TAG        ?= $(subst /,-,$(shell git rev-parse --abbrev-ref HEAD)) | 
					
						
							| 
									
										
										
										
											2015-12-17 07:06:58 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-28 04:04:52 -08:00
										 |  |  | ifeq ($(OS),Windows_NT) | 
					
						
							|  |  |  |     OS_detected := Windows | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |     OS_detected := $(shell uname -s) | 
					
						
							|  |  |  | endif | 
					
						
							| 
									
										
										
										
											2015-12-17 07:06:58 -08:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-28 04:04:52 -08:00
										 |  |  | ifeq ($(OS_detected), Linux) | 
					
						
							|  |  |  |     test-e2e := test-e2e | 
					
						
							|  |  |  | else | 
					
						
							|  |  |  |     test-e2e := skip-test-e2e | 
					
						
							|  |  |  | endif | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-02 09:50:28 -08:00
										 |  |  | all: format vet staticcheck build test $(test-e2e) | 
					
						
							| 
									
										
										
										
											2014-04-09 16:20:52 -07:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-24 14:38:06 -08:00
										 |  |  | style: | 
					
						
							|  |  |  | 	@echo ">> checking code style" | 
					
						
							|  |  |  | 	@! gofmt -d $(shell find . -path ./vendor -prune -o -name '*.go' -print) | grep '^' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | test: | 
					
						
							|  |  |  | 	@echo ">> running tests" | 
					
						
							|  |  |  | 	@$(GO) test -short $(pkgs) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-12-21 03:00:32 -08:00
										 |  |  | test-e2e: build | 
					
						
							|  |  |  | 	@echo ">> running end-to-end tests" | 
					
						
							|  |  |  | 	./end-to-end-test.sh | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-28 04:04:52 -08:00
										 |  |  | skip-test-e2e: | 
					
						
							|  |  |  | 	@echo ">> SKIP running end-to-end tests on $(OS_detected)" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-01-24 14:38:06 -08:00
										 |  |  | format: | 
					
						
							|  |  |  | 	@echo ">> formatting code" | 
					
						
							|  |  |  | 	@$(GO) fmt $(pkgs) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | vet: | 
					
						
							|  |  |  | 	@echo ">> vetting code" | 
					
						
							|  |  |  | 	@$(GO) vet $(pkgs) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-02 09:50:28 -08:00
										 |  |  | staticcheck: $(STATICCHECK) | 
					
						
							|  |  |  | 	@echo ">> running staticcheck" | 
					
						
							|  |  |  | 	@$(STATICCHECK) $(pkgs) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-03 12:23:02 -07:00
										 |  |  | build: $(PROMU) | 
					
						
							| 
									
										
										
										
											2016-01-24 14:38:06 -08:00
										 |  |  | 	@echo ">> building binaries" | 
					
						
							|  |  |  | 	@$(PROMU) build --prefix $(PREFIX) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-03 12:23:02 -07:00
										 |  |  | tarball: $(PROMU) | 
					
						
							| 
									
										
										
										
											2016-01-24 14:38:06 -08:00
										 |  |  | 	@echo ">> building release tarball" | 
					
						
							|  |  |  | 	@$(PROMU) tarball --prefix $(PREFIX) $(BIN_DIR) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | docker: | 
					
						
							|  |  |  | 	@echo ">> building docker image" | 
					
						
							|  |  |  | 	@docker build -t "$(DOCKER_IMAGE_NAME):$(DOCKER_IMAGE_TAG)" . | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2016-08-03 12:23:02 -07:00
										 |  |  | $(GOPATH)/bin/promu promu: | 
					
						
							| 
									
										
										
										
											2017-02-02 09:50:28 -08:00
										 |  |  | 	@GOOS= GOARCH= $(GO) get -u github.com/prometheus/promu | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | $(GOPATH)/bin/staticcheck: | 
					
						
							|  |  |  | 	@GOOS= GOARCH= $(GO) get -u honnef.co/go/tools/cmd/staticcheck | 
					
						
							| 
									
										
										
										
											2016-01-24 14:38:06 -08:00
										 |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2017-02-02 09:50:28 -08:00
										 |  |  | .PHONY: all style format build test test-e2e vet tarball docker promu staticcheck $(GOPATH)/bin/promu $(GOPATH)/bin/staticcheck |