feat: add standardizer optimize makefile

pull/2159/head
Xinwei Xiong (cubxxw) 2 years ago
parent 727850c85c
commit 00a90003be

@ -19,6 +19,7 @@ VERSION_PACKAGE=github.com/openimsdk/open-im-server/v3/pkg/version
# Includes # Includes
include scripts/make-rules/common.mk # make sure include common.mk at the first include line include scripts/make-rules/common.mk # make sure include common.mk at the first include line
include scripts/make-rules/common-versions.mk
include scripts/make-rules/golang.mk include scripts/make-rules/golang.mk
include scripts/make-rules/image.mk include scripts/make-rules/image.mk
include scripts/make-rules/copyright.mk include scripts/make-rules/copyright.mk

@ -11,7 +11,41 @@
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # limitations under the License.
# ============================================================================== # ==============================================================================
# OpenIM Makefile Versions used # OpenIM Makefile Versions used
# #
# Define the latest version for each tool to ensure consistent versioning across installations
GOLANGCI_LINT_VERSION ?= latest
GOIMPORTS_VERSION ?= latest
ADDLICENSE_VERSION ?= latest
DEEPCOPY_GEN_VERSION ?= latest
CONVERSION_GEN_VERSION ?= latest
GINKGO_VERSION ?= v1.16.2
GO_GITLINT_VERSION ?= latest
GO_JUNIT_REPORT_VERSION ?= latest
GOTESTS_VERSION ?= latest
SWAGGER_VERSION ?= latest
KUBE_SCORE_VERSION ?= latest
KUBECONFORM_VERSION ?= latest
GSEMVER_VERSION ?= latest
GIT_CHGLOG_VERSION ?= latest
KO_VERSION ?= latest
GITHUB_RELEASE_VERSION ?= latest
COSCLI_VERSION ?= v0.19.0-beta
MINIO_VERSION ?= latest
DELVE_VERSION ?= latest
AIR_VERSION ?= latest
GOLINES_VERSION ?= latest
GO_MOD_OUTDATED_VERSION ?= latest
MOCKGEN_VERSION ?= latest
PROTOC_GEN_GO_VERSION ?= latest
CFSSL_VERSION ?= latest
DEPTH_VERSION ?= latest
GO_CALLVIS_VERSION ?= latest
MISSPELL_VERSION ?= latest
GOTHANKS_VERSION ?= latest
RICHGO_VERSION ?= latest
RTS_VERSION ?= latest
TYPECHECK_VERSION ?= latest
COMMENT_LANG_DETECTOR_VERSION ?= latest
STANDARDIZER_VERSION ?= latest

@ -64,47 +64,47 @@ tools.verify.%:
## install.golangci-lint: Install golangci-lint ## install.golangci-lint: Install golangci-lint
.PHONY: install.golangci-lint .PHONY: install.golangci-lint
install.golangci-lint: install.golangci-lint:
@$(GO) install github.com/golangci/golangci-lint/cmd/golangci-lint@latest @$(GO) install github.com/golangci/golangci-lint/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION)
## install.goimports: Install goimports, used to format go source files ## install.goimports: Install goimports, used to format go source files
.PHONY: install.goimports .PHONY: install.goimports
install.goimports: install.goimports:
@$(GO) install golang.org/x/tools/cmd/goimports@latest @$(GO) install golang.org/x/tools/cmd/goimports@$(GOIMPORTS_VERSION)
## install.addlicense: Install addlicense, used to add license header to source files ## install.addlicense: Install addlicense, used to add license header to source files
.PHONY: install.addlicense .PHONY: install.addlicense
install.addlicense: install.addlicense:
@$(GO) install github.com/google/addlicense@latest @$(GO) install github.com/google/addlicense@$(ADDLICENSE_VERSION)
## install.deepcopy-gen: Install deepcopy-gen, used to generate deep copy functions ## install.deepcopy-gen: Install deepcopy-gen, used to generate deep copy functions
.PHONY: install.deepcopy-gen .PHONY: install.deepcopy-gen
install.deepcopy-gen: install.deepcopy-gen:
@$(GO) install k8s.io/code-generator/cmd/deepcopy-gen@latest @$(GO) install k8s.io/code-generator/cmd/deepcopy-gen@$(DEEPCOPY_GEN_VERSION)
## install.conversion-gen: Install conversion-gen, used to generate conversion functions ## install.conversion-gen: Install conversion-gen, used to generate conversion functions
.PHONY: install.conversion-gen .PHONY: install.conversion-gen
install.conversion-gen: install.conversion-gen:
@$(GO) install k8s.io/code-generator/cmd/conversion-gen@latest @$(GO) install k8s.io/code-generator/cmd/conversion-gen@$(CONVERSION_GEN_VERSION)
## install.ginkgo: Install ginkgo to run a single test or set of tests ## install.ginkgo: Install ginkgo to run a single test or set of tests
.PHONY: install.ginkgo .PHONY: install.ginkgo
install.ginkgo: install.ginkgo:
@$(GO) install github.com/onsi/ginkgo/ginkgo@v1.16.2 @$(GO) install github.com/onsi/ginkgo/ginkgo@$(GINKGO_VERSION)
## Install go-gitlint: Install go-gitlint, used to check git commit message ## Install go-gitlint: Install go-gitlint, used to check git commit message
.PHONY: install.go-gitlint .PHONY: install.go-gitlint
install.go-gitlint: install.go-gitlint:
@$(GO) install github.com/marmotedu/go-gitlint/cmd/go-gitlint@latest @$(GO) install github.com/marmotedu/go-gitlint/cmd/go-gitlint@$(GO_GITLINT_VERSION)
## install.go-junit-report: Install go-junit-report, used to convert go test output to junit xml ## install.go-junit-report: Install go-junit-report, used to convert go test output to junit xml
.PHONY: install.go-junit-report .PHONY: install.go-junit-report
install.go-junit-report: install.go-junit-report:
@$(GO) install github.com/jstemmer/go-junit-report@latest @$(GO) install github.com/jstemmer/go-junit-report@$(GO_JUNIT_REPORT_VERSION)
## install.gotests: Install gotests, used to generate go tests ## install.gotests: Install gotests, used to generate go tests
.PHONY: install.swagger .PHONY: install.swagger
install.swagger: install.swagger:
@$(GO) install github.com/go-swagger/go-swagger/cmd/swagger@latest @$(GO) install github.com/go-swagger/go-swagger/cmd/swagger@$(SWAGGER_VERSION)
# ============================================================================== # ==============================================================================
# Tools that might be used include go gvm # Tools that might be used include go gvm
@ -113,32 +113,32 @@ install.swagger:
## install.kube-score: Install kube-score, used to check kubernetes yaml files ## install.kube-score: Install kube-score, used to check kubernetes yaml files
.PHONY: install.kube-score .PHONY: install.kube-score
install.kube-score: install.kube-score:
@$(GO) install github.com/zegl/kube-score/cmd/kube-score@latest @$(GO) install github.com/zegl/kube-score/cmd/kube-score@$(KUBE_SCORE_VERSION)
## install.kubeconform: Install kubeconform, used to check kubernetes yaml files ## install.kubeconform: Install kubeconform, used to check kubernetes yaml files
.PHONY: install.kubeconform .PHONY: install.kubeconform
install.kubeconform: install.kubeconform:
@$(GO) install github.com/yannh/kubeconform/cmd/kubeconform@latest @$(GO) install github.com/yannh/kubeconform/cmd/kubeconform@$(KUBECONFORM_VERSION)
## install.gsemver: Install gsemver, used to generate semver ## install.gsemver: Install gsemver, used to generate semver
.PHONY: install.gsemver .PHONY: install.gsemver
install.gsemver: install.gsemver:
@$(GO) install github.com/arnaud-deprez/gsemver@latest @$(GO) install github.com/arnaud-deprez/gsemver@$(GSEMVER_VERSION)
## install.git-chglog: Install git-chglog, used to generate changelog ## install.git-chglog: Install git-chglog, used to generate changelog
.PHONY: install.git-chglog .PHONY: install.git-chglog
install.git-chglog: install.git-chglog:
@$(GO) install github.com/git-chglog/git-chglog/cmd/git-chglog@latest @$(GO) install github.com/git-chglog/git-chglog/cmd/git-chglog@$(GIT_CHGLOG_VERSION)
## install.ko: Install ko, used to build go program into container images ## install.ko: Install ko, used to build go program into container images
.PHONY: install.ko .PHONY: install.ko
install.ko: install.ko:
@$(GO) install github.com/google/ko@latest @$(GO) install github.com/google/ko@$(KO_VERSION)
## install.github-release: Install github-release, used to create github release ## install.github-release: Install github-release, used to create github release
.PHONY: install.github-release .PHONY: install.github-release
install.github-release: install.github-release:
@$(GO) install github.com/github-release/github-release@latest @$(GO) install github.com/github-release/github-release@$(GITHUB_RELEASE_VERSION)
## install.coscli: Install coscli, used to upload files to cos ## install.coscli: Install coscli, used to upload files to cos
# example: ./coscli cp/sync -r /home/off-line/docker-off-line/ cos://openim-1306374445/openim/image/amd/off-line/off-line/ -e cos.ap-guangzhou.myqcloud.com # example: ./coscli cp/sync -r /home/off-line/docker-off-line/ cos://openim-1306374445/openim/image/amd/off-line/off-line/ -e cos.ap-guangzhou.myqcloud.com
@ -146,7 +146,7 @@ install.github-release:
# amd64 # amd64
.PHONY: install.coscli .PHONY: install.coscli
install.coscli: install.coscli:
@wget -q https://github.com/tencentyun/coscli/releases/download/v0.19.0-beta/coscli-linux -O ${TOOLS_DIR}/coscli @wget -q https://github.com/tencentyun/coscli/releases/download/$(COSCLI_VERSION)/coscli-linux -O ${TOOLS_DIR}/coscli
@chmod +x ${TOOLS_DIR}/coscli @chmod +x ${TOOLS_DIR}/coscli
## install.coscmd: Install coscmd, used to upload files to cos ## install.coscmd: Install coscmd, used to upload files to cos
@ -157,50 +157,44 @@ install.coscmd:
## install.minio: Install minio, used to upload files to minio ## install.minio: Install minio, used to upload files to minio
.PHONY: install.minio .PHONY: install.minio
install.minio: install.minio:
@$(GO) install github.com/minio/minio@latest @$(GO) install github.com/minio/minio@$(MINIO_VERSION)
## install.delve: Install delve, used to debug go program ## install.delve: Install delve, used to debug go program
.PHONY: install.delve .PHONY: install.delve
install.delve: install.delve:
@$(GO) install github.com/go-delve/delve/cmd/dlv@latest @$(GO) install github.com/go-delve/delve/cmd/dlv@$(DELVE_VERSION)
## install.air: Install air, used to hot reload go program ## install.air: Install air, used to hot reload go program
.PHONY: install.air .PHONY: install.air
install.air: install.air:
@$(GO) install github.com/cosmtrek/air@latest @$(GO) install github.com/cosmtrek/air@$(AIR_VERSION)
## install.gvm: Install gvm, gvm is a Go version manager, built on top of the official go tool. ## install.gvm: Install gvm, gvm is a Go version manager, built on top of the official go tool.
# github: https://github.com/moovweb/gvm
.PHONY: install.gvm .PHONY: install.gvm
install.gvm: install.gvm:
@echo "===========> Installing gvm,The default installation path is ~/.gvm/scripts/gvm" @echo "===========> Installing gvm, The default installation path is ~/.gvm/scripts/gvm"
@bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer) @bash < <(curl -s -S -L https://raw.githubusercontent.com/moovweb/gvm/master/binscripts/gvm-installer)
@$(shell source /root/.gvm/scripts/gvm) @source /root/.gvm/scripts/gvm
## install.golines: Install golines, used to format long lines ## install.golines: Install golines, used to format long lines
.PHONY: install.golines .PHONY: install.golines
install.golines: install.golines:
@$(GO) install github.com/segmentio/golines@latest @$(GO) install github.com/segmentio/golines@$(GOLINES_VERSION)
## install.go-mod-outdated: Install go-mod-outdated, used to check outdated dependencies ## install.go-mod-outdated: Install go-mod-outdated, used to check outdated dependencies
.PHONY: install.go-mod-outdated .PHONY: install.go-mod-outdated
install.go-mod-outdated: install.go-mod-outdated:
@$(GO) install github.com/psampaz/go-mod-outdated@latest @$(GO) install github.com/psampaz/go-mod-outdated@$(GO_MOD_OUTDATED_VERSION)
## install.mockgen: Install mockgen, used to generate mock functions ## install.mockgen: Install mockgen, used to generate mock functions
.PHONY: install.mockgen .PHONY: install.mockgen
install.mockgen: install.mockgen:
@$(GO) install github.com/golang/mock/mockgen@latest @$(GO) install github.com/golang/mock/mockgen@$(MOCKGEN_VERSION)
## install.gotests: Install gotests, used to generate test functions
.PHONY: install.gotests
install.gotests:
@$(GO) install github.com/cweill/gotests/gotests@latest
## install.protoc-gen-go: Install protoc-gen-go, used to generate go source files from protobuf files ## install.protoc-gen-go: Install protoc-gen-go, used to generate go source files from protobuf files
.PHONY: install.protoc-gen-go .PHONY: install.protoc-gen-go
install.protoc-gen-go: install.protoc-gen-go:
@$(GO) install github.com/golang/protobuf/protoc-gen-go@latest @$(GO) install github.com/golang/protobuf/protoc-gen-go@$(PROTOC_GEN_GO_VERSION)
## install.cfssl: Install cfssl, used to generate certificates ## install.cfssl: Install cfssl, used to generate certificates
.PHONY: install.cfssl .PHONY: install.cfssl
@ -210,49 +204,49 @@ install.cfssl:
## install.depth: Install depth, used to check dependency tree ## install.depth: Install depth, used to check dependency tree
.PHONY: install.depth .PHONY: install.depth
install.depth: install.depth:
@$(GO) install github.com/KyleBanks/depth/cmd/depth@latest @$(GO) install github.com/KyleBanks/depth/cmd/depth@$(DEPTH_VERSION)
## install.go-callvis: Install go-callvis, used to visualize call graph ## install.go-callvis: Install go-callvis, used to visualize call graph
.PHONY: install.go-callvis .PHONY: install.go-callvis
install.go-callvis: install.go-callvis:
@$(GO) install github.com/ofabry/go-callvis@latest @$(GO) install github.com/ofabry/go-callvis@$(GO_CALLVIS_VERSION)
## install.misspell ## install.misspell: Install misspell
.PHONY: install.misspell .PHONY: install.misspell
install.misspell: install.misspell:
@$(GO) install github.com/client9/misspell/cmd/misspell@latest @$(GO) install github.com/client9/misspell/cmd/misspell@$(MISSPELL_VERSION)
## install.gothanks: Install gothanks, used to thank go dependencies ## install.gothanks: Install gothanks, used to thank go dependencies
.PHONY: install.gothanks .PHONY: install.gothanks
install.gothanks: install.gothanks:
@$(GO) install github.com/psampaz/gothanks@latest @$(GO) install github.com/psampaz/gothanks@$(GOTHANKS_VERSION)
## install.richgo: Install richgo ## install.richgo: Install richgo
.PHONY: install.richgo .PHONY: install.richgo
install.richgo: install.richgo:
@$(GO) install github.com/kyoh86/richgo@latest @$(GO) install github.com/kyoh86/richgo@$(RICHGO_VERSION)
## install.rts: Install rts ## install.rts: Install rts
.PHONY: install.rts .PHONY: install.rts
install.rts: install.rts:
@$(GO) install github.com/galeone/rts/cmd/rts@latest @$(GO) install github.com/galeone/rts/cmd/rts@$(RTS_VERSION)
# ================= kubecub openim tools ========================================= # ================= kubecub openim tools =========================================
# https://github.com/kubecub # https://github.com/kubecub
## install.typecheck: install kubecub typecheck check for go code ## install.typecheck: Install kubecub typecheck, checks for go code
.PHONY: install.typecheck .PHONY: install.typecheck
install.typecheck: install.typecheck:
@$(GO) install github.com/kubecub/typecheck@latest @$(GO) install github.com/kubecub/typecheck@$(TYPECHECK_VERSION)
## install.comment-lang-detector: install kubecub comment-lang-detector check for go code comment language ## install.comment-lang-detector: Install kubecub comment-lang-detector, checks for go code comment language
.PHONY: install.comment-lang-detector .PHONY: install.comment-lang-detector
install.comment-lang-detector: install.comment-lang-detector:
@$(GO) install github.com/kubecub/comment-lang-detector/cmd/cld@latest @$(GO) install github.com/kubecub/comment-lang-detector/cmd/cld@$(COMMENT_LANG_DETECTOR_VERSION)
## install.standardizer: install kubecub standardizer check for go code standardize ## install.standardizer: Install kubecub standardizer, checks for go code standardization
.PHONY: install.standardizer .PHONY: install.standardizer
install.standardizer: install.standardizer:
@$(GO) install github.com/kubecub/standardizer@latest @$(GO) install github.com/kubecub/standardizer@$(STANDARDIZER_VERSION)
## tools.help: Display help information about the tools package ## tools.help: Display help information about the tools package
.PHONY: tools.help .PHONY: tools.help

Loading…
Cancel
Save