mirror of
https://github.com/alibaba/higress.git
synced 2026-05-08 04:17:27 +08:00
feat: add lint/e2e tests support (#126)
Signed-off-by: bitliu <bitliu@tencent.com>
This commit is contained in:
53
tools/tools.mk
Normal file
53
tools/tools.mk
Normal file
@@ -0,0 +1,53 @@
|
||||
tools.bindir = tools/bin
|
||||
tools.srcdir = tools/src
|
||||
|
||||
ifeq ($(origin GOOS), undefined)
|
||||
GOOS := $(shell go env GOOS)
|
||||
endif
|
||||
ifeq ($(origin GOARCH), undefined)
|
||||
GOARCH := $(shell go env GOARCH)
|
||||
endif
|
||||
|
||||
|
||||
# `go get`-able things
|
||||
# ====================
|
||||
#
|
||||
tools/controller-gen = $(tools.bindir)/controller-gen
|
||||
tools/golangci-lint = $(tools.bindir)/golangci-lint
|
||||
tools/kustomize = $(tools.bindir)/kustomize
|
||||
tools/kind = $(tools.bindir)/kind
|
||||
tools/setup-envtest = $(tools.bindir)/setup-envtest
|
||||
$(tools.bindir)/%: $(tools.srcdir)/%/pin.go $(tools.srcdir)/%/go.mod
|
||||
cd $(<D) && GOOS= GOARCH= go build -o $(abspath $@) $$(sed -En 's,^import "(.*)".*,\1,p' pin.go)
|
||||
|
||||
# `pip install`-able things
|
||||
# =========================
|
||||
#
|
||||
tools/codespell = $(tools.bindir)/codespell
|
||||
tools/yamllint = $(tools.bindir)/yamllint
|
||||
$(tools.bindir)/%.d/venv: $(tools.srcdir)/%/requirements.txt
|
||||
mkdir -p $(@D)
|
||||
python3 -m venv $@
|
||||
$@/bin/pip3 install -r $< || (rm -rf $@; exit 1)
|
||||
$(tools.bindir)/%: $(tools.bindir)/%.d/venv
|
||||
ln -sf $*.d/venv/bin/$* $@
|
||||
|
||||
ifneq ($(GOOS),windows)
|
||||
# Shellcheck
|
||||
# ==========
|
||||
#
|
||||
tools/shellcheck = $(tools.bindir)/shellcheck
|
||||
SHELLCHECK_VERSION=0.8.0
|
||||
SHELLCHECK_ARCH=$(shell uname -m)
|
||||
# shellcheck uses the same binary on Intel and Apple Silicon Mac.
|
||||
ifeq ($(GOOS),darwin)
|
||||
SHELLCHECK_ARCH=x86_64
|
||||
endif
|
||||
SHELLCHECK_TXZ = https://github.com/koalaman/shellcheck/releases/download/v$(SHELLCHECK_VERSION)/shellcheck-v$(SHELLCHECK_VERSION).$(GOOS).$(SHELLCHECK_ARCH).tar.xz
|
||||
tools/bin/$(notdir $(SHELLCHECK_TXZ)):
|
||||
mkdir -p $(@D)
|
||||
curl -sfL $(SHELLCHECK_TXZ) -o $@
|
||||
%/bin/shellcheck: %/bin/$(notdir $(SHELLCHECK_TXZ))
|
||||
mkdir -p $(@D)
|
||||
tar -C $(@D) -Jxmf $< --strip-components=1 shellcheck-v$(SHELLCHECK_VERSION)/shellcheck
|
||||
endif
|
||||
Reference in New Issue
Block a user