2018-10-08 13:17:05 +02:00
|
|
|
.PHONY: clean test check build.local build.linux build.osx build.docker build.push
|
|
|
|
|
2020-06-26 19:19:15 +02:00
|
|
|
BINARY ?= kube-metrics-adapter
|
|
|
|
VERSION ?= $(shell git describe --tags --always --dirty)
|
|
|
|
IMAGE ?= registry-write.opensource.zalan.do/teapot/$(BINARY)
|
|
|
|
TAG ?= $(VERSION)
|
|
|
|
SOURCES = $(shell find . -name '*.go')
|
|
|
|
DOCKERFILE ?= Dockerfile
|
|
|
|
GOPKGS = $(shell go list ./...)
|
|
|
|
GO_OPENAPI_GEN = ./build/openapi-gen
|
|
|
|
OPENAPI_GEN = pkg/apiserver/generated/openapi/zz_generated.openapi.go
|
|
|
|
BUILD_FLAGS ?= -v
|
|
|
|
LDFLAGS ?= -X main.version=$(VERSION) -w -s
|
2018-10-08 13:17:05 +02:00
|
|
|
|
|
|
|
default: build.local
|
|
|
|
|
|
|
|
clean:
|
|
|
|
rm -rf build
|
2020-06-26 19:19:15 +02:00
|
|
|
rm -rf $(OPENAPI_GEN)
|
2018-10-08 13:17:05 +02:00
|
|
|
|
|
|
|
test:
|
|
|
|
go test -v $(GOPKGS)
|
|
|
|
|
|
|
|
check:
|
2019-11-25 10:55:38 +01:00
|
|
|
go mod download
|
|
|
|
golangci-lint run --timeout=2m ./...
|
2018-10-08 13:17:05 +02:00
|
|
|
|
2020-06-26 19:19:15 +02:00
|
|
|
$(GO_OPENAPI_GEN):
|
|
|
|
mkdir -p build
|
|
|
|
GOBIN=$(shell pwd)/build go install k8s.io/kube-openapi/cmd/openapi-gen
|
|
|
|
|
|
|
|
$(OPENAPI_GEN): $(GO_OPENAPI_GEN)
|
|
|
|
$(GO_OPENAPI_GEN) -o . --go-header-file hack/boilerplate.go.txt --logtostderr -i k8s.io/metrics/pkg/apis/custom_metrics,k8s.io/metrics/pkg/apis/custom_metrics/v1beta1,k8s.io/metrics/pkg/apis/custom_metrics/v1beta2,k8s.io/metrics/pkg/apis/external_metrics,k8s.io/metrics/pkg/apis/external_metrics/v1beta1,k8s.io/apimachinery/pkg/apis/meta/v1,k8s.io/apimachinery/pkg/api/resource,k8s.io/apimachinery/pkg/version,k8s.io/api/core/v1 -p pkg/apiserver/generated/openapi -O zz_generated.openapi -r /dev/null
|
|
|
|
|
2018-10-08 13:17:05 +02:00
|
|
|
build.local: build/$(BINARY)
|
|
|
|
build.linux: build/linux/$(BINARY)
|
|
|
|
build.osx: build/osx/$(BINARY)
|
|
|
|
|
2020-06-26 19:19:15 +02:00
|
|
|
build/$(BINARY): go.mod $(OPENAPI_GEN) $(SOURCES)
|
2018-10-08 13:17:05 +02:00
|
|
|
CGO_ENABLED=0 go build -o build/$(BINARY) $(BUILD_FLAGS) -ldflags "$(LDFLAGS)" .
|
|
|
|
|
2020-06-26 19:19:15 +02:00
|
|
|
build/linux/$(BINARY): go.mod $(OPENAPI_GEN) $(SOURCES)
|
2018-10-08 13:17:05 +02:00
|
|
|
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build $(BUILD_FLAGS) -o build/linux/$(BINARY) -ldflags "$(LDFLAGS)" .
|
|
|
|
|
2020-06-26 19:19:15 +02:00
|
|
|
build/osx/$(BINARY): go.mod $(OPENAPI_GEN) $(SOURCES)
|
2018-10-08 13:17:05 +02:00
|
|
|
GOOS=darwin GOARCH=amd64 CGO_ENABLED=0 go build $(BUILD_FLAGS) -o build/osx/$(BINARY) -ldflags "$(LDFLAGS)" .
|
|
|
|
|
|
|
|
build.docker: build.linux
|
|
|
|
docker build --rm -t "$(IMAGE):$(TAG)" -f $(DOCKERFILE) .
|
|
|
|
|
|
|
|
build.push: build.docker
|
|
|
|
docker push "$(IMAGE):$(TAG)"
|