mirror of
https://github.com/google/cadvisor.git
synced 2026-10-28 16:44:49 +08:00
root and cmd require+replace github.com/google/cadvisor/lib => ./lib (and ../lib). build.sh stamps version symbols in lib/version; the Makefile and check_gotidy.sh run tests/lint/tidy over the lib module too. Signed-off-by: Davanum Srinivas <davanum@gmail.com>
117 lines
3.6 KiB
Makefile
117 lines
3.6 KiB
Makefile
# Copyright 2015 Google Inc. All rights reserved.
|
|
#
|
|
# 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.
|
|
|
|
GO := go
|
|
GOLANGCI_VER := 2.6.2
|
|
GO_TEST ?= $(GO) test $(or $(GO_FLAGS),-race)
|
|
arch ?= $(shell go env GOARCH)
|
|
|
|
all: presubmit build test
|
|
|
|
test:
|
|
@echo ">> running tests"
|
|
@# Filter out integration.
|
|
$(GO) list ./... | grep -vw integration | xargs $(GO_TEST)
|
|
cd cmd && $(GO_TEST) ./...
|
|
cd lib && $(GO_TEST) ./...
|
|
|
|
test-with-libpfm: GO_FLAGS=-race -tags libpfm
|
|
test-with-libpfm: test
|
|
|
|
container-test:
|
|
@echo ">> runinng tests in a container"
|
|
@./build/unit-in-container.sh
|
|
|
|
docker-test: container-test
|
|
@echo "docker-test target is deprecated, use container-test instead"
|
|
|
|
test-integration:
|
|
GO_FLAGS=$(or $(GO_FLAGS),-race) ./build/build.sh
|
|
$(GO_TEST) -c github.com/google/cadvisor/integration/tests/api
|
|
$(GO_TEST) -c github.com/google/cadvisor/integration/tests/common
|
|
$(GO_TEST) -c github.com/google/cadvisor/integration/tests/metrics
|
|
@./build/integration.sh
|
|
|
|
docker-test-integration:
|
|
@./build/integration-in-docker.sh
|
|
|
|
docker-test-integration-crio:
|
|
@./build/integration-in-docker-crio.sh
|
|
|
|
test-integration-crio:
|
|
GO_FLAGS=$(or $(GO_FLAGS),-race) ./build/build.sh
|
|
$(GO_TEST) -c github.com/google/cadvisor/integration/tests/crio
|
|
$(GO_TEST) -c github.com/google/cadvisor/integration/tests/common
|
|
@./build/integration-crio.sh
|
|
|
|
test-runner:
|
|
@$(GO) build github.com/google/cadvisor/integration/runner
|
|
|
|
tidy:
|
|
@cd lib && $(GO) mod tidy
|
|
@$(GO) mod tidy
|
|
@cd cmd && $(GO) mod tidy
|
|
|
|
format:
|
|
@echo ">> formatting code"
|
|
@# goimports is a superset of gofmt.
|
|
@goimports -w -local github.com/google/cadvisor .
|
|
|
|
build: assets
|
|
@echo ">> building binaries"
|
|
@./build/build.sh $(arch)
|
|
|
|
assets:
|
|
@echo ">> building assets"
|
|
@./build/assets.sh
|
|
|
|
release:
|
|
@echo ">> building release binaries"
|
|
@./build/release.sh
|
|
|
|
docker-%:
|
|
@docker build -t cadvisor:$(shell git rev-parse --short HEAD) -f deploy/Dockerfile .
|
|
|
|
docker-build:
|
|
@docker run --rm -w /go/src/github.com/google/cadvisor -v ${PWD}:/go/src/github.com/google/cadvisor golang:1.25 make build
|
|
|
|
presubmit: lint
|
|
@echo ">> checking go mod tidy"
|
|
@./build/check_gotidy.sh
|
|
@echo ">> checking file boilerplate"
|
|
@./build/check_boilerplate.sh
|
|
|
|
lint:
|
|
@# This assumes GOPATH/bin is in $PATH -- if not, the target will fail.
|
|
@# Extract the current golangci-lint version (empty if not installed),
|
|
@# then use GNU sort to check if GOT >= GOLANGCI_VER.
|
|
@GOT=$$(golangci-lint version 2>/dev/null | sed 's/^.* version \([^ ]*\) .*$$/\1/'); \
|
|
if ! printf $(GOLANGCI_VER)\\n$$GOT\\n | sort --version-sort --check=quiet; then \
|
|
echo ">> upgrading golangci-lint from $$GOT to $(GOLANGCI_VER)"; \
|
|
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $$(go env GOPATH)/bin v$(GOLANGCI_VER); \
|
|
GOT=$(GOLANGCI_VER); \
|
|
else \
|
|
echo ">> using installed golangci-lint $$GOT >= $(GOLANGCI_VER)"; \
|
|
fi
|
|
@echo ">> running golangci-lint using configuration at .golangci.yml"
|
|
@golangci-lint run
|
|
@cd cmd && golangci-lint run
|
|
@cd lib && golangci-lint run
|
|
|
|
clean:
|
|
@rm -f *.test cadvisor
|
|
@rm -rf _output/
|
|
|
|
.PHONY: all build docker format release test test-integration test-integration-crio lint presubmit tidy
|