mirror of
https://github.com/hanzo-ml/kserve.git
synced 2026-10-30 20:53:49 +00:00
96 lines
3.0 KiB
Makefile
96 lines
3.0 KiB
Makefile
LOCALBIN ?= $(shell pwd)/bin
|
|
$(LOCALBIN):
|
|
mkdir -p $(LOCALBIN)
|
|
PYTHON_VENV = $(LOCALBIN)/.venv
|
|
PYTHON_BIN = $(PYTHON_VENV)/bin
|
|
DEPS_ENV ?= kserve-deps.env
|
|
|
|
## Tool binary names.
|
|
GOLANGCI_LINT = $(LOCALBIN)/golangci-lint
|
|
CONTROLLER_GEN = $(LOCALBIN)/controller-gen
|
|
ENVTEST = $(LOCALBIN)/setup-envtest
|
|
KUSTOMIZE = $(LOCALBIN)/kustomize
|
|
YQ = $(LOCALBIN)/yq
|
|
HELM_DOCS = $(LOCALBIN)/helm-docs
|
|
PINACT = $(LOCALBIN)/pinact
|
|
UV = $(PYTHON_BIN)/uv
|
|
RUFF = $(PYTHON_BIN)/ruff
|
|
|
|
## Tool versions are defined in kserve-deps.env (included in main Makefile)
|
|
|
|
.PHONY: golangci-lint
|
|
golangci-lint: $(GOLANGCI_LINT)
|
|
$(GOLANGCI_LINT): $(LOCALBIN) $(DEPS_ENV)
|
|
$(call go-install-tool,$(GOLANGCI_LINT),github.com/golangci/golangci-lint/v2/cmd/golangci-lint,$(GOLANGCI_LINT_VERSION))
|
|
|
|
## Download controller-gen locally if necessary.
|
|
.PHONY: controller-gen
|
|
controller-gen: $(CONTROLLER_GEN)
|
|
$(CONTROLLER_GEN): $(LOCALBIN) $(DEPS_ENV)
|
|
$(call go-install-tool,$(CONTROLLER_GEN),sigs.k8s.io/controller-tools/cmd/controller-gen,$(CONTROLLER_TOOLS_VERSION))
|
|
|
|
## Download envtest-setup locally if necessary.
|
|
.PHONY: envtest
|
|
envtest: $(ENVTEST)
|
|
$(ENVTEST): $(LOCALBIN) $(DEPS_ENV)
|
|
$(call go-install-tool,$(ENVTEST),sigs.k8s.io/controller-runtime/tools/setup-envtest,$(ENVTEST_VERSION))
|
|
|
|
## Download kustomize locally if necessary.
|
|
.PHONY: kustomize
|
|
kustomize: $(KUSTOMIZE)
|
|
$(KUSTOMIZE): $(LOCALBIN) $(DEPS_ENV)
|
|
@[ -f "$(KUSTOMIZE)-$(KUSTOMIZE_VERSION)" ] || { \
|
|
BIN_DIR=$(LOCALBIN) hack/setup/cli/install-kustomize.sh && \
|
|
mv $(LOCALBIN)/kustomize $(KUSTOMIZE)-$(KUSTOMIZE_VERSION) ; \
|
|
} ; \
|
|
ln -sf "$$(basename $(KUSTOMIZE)-$(KUSTOMIZE_VERSION))" "$(KUSTOMIZE)"
|
|
|
|
## Download yq locally if necessary.
|
|
.PHONY: yq
|
|
yq: $(YQ)
|
|
$(YQ): $(LOCALBIN) $(DEPS_ENV)
|
|
@[ -f "$(YQ)-$(YQ_VERSION)" ] || { \
|
|
BIN_DIR=$(LOCALBIN) hack/setup/cli/install-yq.sh && \
|
|
mv $(LOCALBIN)/yq $(YQ)-$(YQ_VERSION) ; \
|
|
} ; \
|
|
ln -sf "$$(basename $(YQ)-$(YQ_VERSION))" "$(YQ)"
|
|
|
|
## Download helm-docs locally if necessary.
|
|
.PHONY: helm-docs
|
|
helm-docs: $(HELM_DOCS)
|
|
$(HELM_DOCS): $(LOCALBIN) $(DEPS_ENV)
|
|
$(call go-install-tool,$(HELM_DOCS),github.com/norwoodj/helm-docs/cmd/helm-docs,$(HELM_DOCS_VERSION))
|
|
|
|
## Download pinact locally if necessary.
|
|
.PHONY: pinact
|
|
pinact: $(PINACT)
|
|
$(PINACT): $(LOCALBIN)
|
|
$(call go-install-tool,$(PINACT),github.com/suzuki-shunsuke/pinact/v3/cmd/pinact,$(PINACT_VERSION))
|
|
|
|
$(PYTHON_VENV): | $(LOCALBIN)
|
|
python3 -m venv $(PYTHON_VENV)
|
|
$(PYTHON_BIN)/pip install --upgrade pip
|
|
|
|
$(UV): $(PYTHON_VENV) $(DEPS_ENV)
|
|
$(PYTHON_BIN)/pip install uv==$(UV_VERSION)
|
|
|
|
$(RUFF): $(PYTHON_VENV) $(DEPS_ENV)
|
|
$(PYTHON_BIN)/pip install ruff==$(RUFF_VERSION)
|
|
|
|
# go-install-tool will 'go install' any package with custom target and name of binary, if it doesn't exist
|
|
# $1 - target path with name of binary
|
|
# $2 - package url which can be installed
|
|
# $3 - specific version of package
|
|
define go-install-tool
|
|
@[ -f "$(1)-$(3)" ] || { \
|
|
set -e; \
|
|
package=$(2)@$(3) ;\
|
|
echo "Downloading $${package}" ;\
|
|
rm -f $(1) || true ;\
|
|
GOBIN=$(LOCALBIN) go install $${package} ;\
|
|
go mod tidy ;\
|
|
mv $(1) $(1)-$(3) ;\
|
|
} ;\
|
|
ln -sf $(1)-$(3) $(1)
|
|
endef
|