mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-12 12:46:23 +01:00
ff3711eea2
The major change is adding `sort` directive to docs. For those docs which are copied from internal packages `sort` is added via makefile command. For the rest it is added manually since they're updated manually as well. The rest of changes is connected with markdown formatting. For example, changing headers in some files (`##` => `#`) makes navigation on .github.io to look better. This especially useful for `changelog` docs. Table of contents for `vmctl` is dropped, since we already have it autogenerated on .github.io. No link changes expected. The corresponding PR to `cluster` branch will be made in follow-up PR.
174 lines
5.5 KiB
Makefile
174 lines
5.5 KiB
Makefile
PKG_PREFIX := github.com/VictoriaMetrics/VictoriaMetrics
|
|
|
|
BUILDINFO_TAG ?= $(shell echo $$(git describe --long --all | tr '/' '-')$$( \
|
|
git diff-index --quiet HEAD -- || echo '-dirty-'$$(git diff-index -u HEAD | openssl sha1 | cut -c 10-17)))
|
|
|
|
PKG_TAG ?= $(shell git tag -l --points-at HEAD)
|
|
ifeq ($(PKG_TAG),)
|
|
PKG_TAG := $(BUILDINFO_TAG)
|
|
endif
|
|
|
|
GO_BUILDINFO = -X '$(PKG_PREFIX)/lib/buildinfo.Version=$(APP_NAME)-$(shell date -u +'%Y%m%d-%H%M%S')-$(BUILDINFO_TAG)'
|
|
|
|
.PHONY: $(MAKECMDGOALS)
|
|
|
|
all: \
|
|
vminsert \
|
|
vmselect \
|
|
vmstorage
|
|
|
|
all-pure: \
|
|
vminsert-pure \
|
|
vmselect-pure \
|
|
vmstorage-pure
|
|
|
|
include app/*/Makefile
|
|
include deployment/*/Makefile
|
|
|
|
clean:
|
|
rm -rf bin/*
|
|
|
|
publish: \
|
|
publish-vminsert \
|
|
publish-vmselect \
|
|
publish-vmstorage
|
|
|
|
package: \
|
|
package-vminsert \
|
|
package-vmselect \
|
|
package-vmstorage
|
|
|
|
release: \
|
|
release-vmcluster
|
|
|
|
release-vmcluster: \
|
|
release-vmcluster-amd64 \
|
|
release-vmcluster-arm64
|
|
|
|
release-vmcluster-amd64:
|
|
GOARCH=amd64 $(MAKE) release-vmcluster-generic
|
|
|
|
release-vmcluster-arm64:
|
|
GOARCH=arm64 $(MAKE) release-vmcluster-generic
|
|
|
|
release-vmcluster-generic: \
|
|
vminsert-$(GOARCH)-prod \
|
|
vmselect-$(GOARCH)-prod \
|
|
vmstorage-$(GOARCH)-prod
|
|
cd bin && \
|
|
tar --transform="flags=r;s|-$(GOARCH)||" -czf victoria-metrics-$(GOARCH)-$(PKG_TAG).tar.gz \
|
|
vminsert-$(GOARCH)-prod \
|
|
vmselect-$(GOARCH)-prod \
|
|
vmstorage-$(GOARCH)-prod \
|
|
&& sha256sum victoria-metrics-$(GOARCH)-$(PKG_TAG).tar.gz \
|
|
vminsert-$(GOARCH)-prod \
|
|
vmselect-$(GOARCH)-prod \
|
|
vmstorage-$(GOARCH)-prod \
|
|
| sed s/-$(GOARCH)-prod/-prod/ > victoria-metrics-$(GOARCH)-$(PKG_TAG)_checksums.txt
|
|
|
|
pprof-cpu:
|
|
go tool pprof -trim_path=github.com/VictoriaMetrics/VictoriaMetrics@ $(PPROF_FILE)
|
|
|
|
fmt:
|
|
GO111MODULE=on gofmt -l -w -s ./lib
|
|
GO111MODULE=on gofmt -l -w -s ./app
|
|
|
|
vet:
|
|
GO111MODULE=on go vet -mod=vendor ./lib/...
|
|
GO111MODULE=on go vet -mod=vendor ./app/...
|
|
|
|
lint: install-golint
|
|
golint lib/...
|
|
golint app/...
|
|
|
|
install-golint:
|
|
which golint || go install golang.org/x/lint/golint
|
|
|
|
errcheck: install-errcheck
|
|
errcheck -exclude=errcheck_excludes.txt ./lib/...
|
|
errcheck -exclude=errcheck_excludes.txt ./app/vminsert/...
|
|
errcheck -exclude=errcheck_excludes.txt ./app/vmselect/...
|
|
errcheck -exclude=errcheck_excludes.txt ./app/vmstorage/...
|
|
errcheck -exclude=errcheck_excludes.txt ./app/vmagent/...
|
|
errcheck -exclude=errcheck_excludes.txt ./app/vmalert/...
|
|
errcheck -exclude=errcheck_excludes.txt ./app/vmauth/...
|
|
errcheck -exclude=errcheck_excludes.txt ./app/vmbackup/...
|
|
errcheck -exclude=errcheck_excludes.txt ./app/vmrestore/...
|
|
errcheck -exclude=errcheck_excludes.txt ./app/vmctl/...
|
|
|
|
install-errcheck:
|
|
which errcheck || go install github.com/kisielk/errcheck
|
|
|
|
check-all: fmt vet lint errcheck golangci-lint
|
|
|
|
test:
|
|
GO111MODULE=on go test -mod=vendor ./lib/... ./app/...
|
|
|
|
test-race:
|
|
GO111MODULE=on go test -mod=vendor -race ./lib/... ./app/...
|
|
|
|
test-pure:
|
|
GO111MODULE=on CGO_ENABLED=0 go test -mod=vendor ./lib/... ./app/...
|
|
|
|
test-full:
|
|
GO111MODULE=on go test -mod=vendor -coverprofile=coverage.txt -covermode=atomic ./lib/... ./app/...
|
|
|
|
test-full-386:
|
|
GO111MODULE=on GOARCH=386 go test -mod=vendor -coverprofile=coverage.txt -covermode=atomic ./lib/... ./app/...
|
|
|
|
benchmark:
|
|
GO111MODULE=on go test -mod=vendor -bench=. ./lib/...
|
|
GO111MODULE=on go test -mod=vendor -bench=. ./app/...
|
|
|
|
benchmark-pure:
|
|
GO111MODULE=on CGO_ENABLED=0 go test -mod=vendor -bench=. ./lib/...
|
|
GO111MODULE=on CGO_ENABLED=0 go test -mod=vendor -bench=. ./app/...
|
|
|
|
vendor-update:
|
|
GO111MODULE=on go get -u -d ./lib/...
|
|
GO111MODULE=on go get -u -d ./app/...
|
|
GO111MODULE=on go mod tidy
|
|
GO111MODULE=on go mod vendor
|
|
|
|
app-local:
|
|
CGO_ENABLED=1 GO111MODULE=on go build $(RACE) -mod=vendor -ldflags "$(GO_BUILDINFO)" -o bin/$(APP_NAME)$(RACE) $(PKG_PREFIX)/app/$(APP_NAME)
|
|
|
|
app-local-pure:
|
|
CGO_ENABLED=0 GO111MODULE=on go build $(RACE) -mod=vendor -ldflags "$(GO_BUILDINFO)" -o bin/$(APP_NAME)-pure$(RACE) $(PKG_PREFIX)/app/$(APP_NAME)
|
|
|
|
app-local-with-goarch:
|
|
GO111MODULE=on go build $(RACE) -mod=vendor -ldflags "$(GO_BUILDINFO)" -o bin/$(APP_NAME)-$(GOARCH)$(RACE) $(PKG_PREFIX)/app/$(APP_NAME)
|
|
|
|
app-local-windows-with-goarch:
|
|
CGO_ENABLED=0 GO111MODULE=on go build $(RACE) -mod=vendor -ldflags "$(GO_BUILDINFO)" -o bin/$(APP_NAME)-windows-$(GOARCH)$(RACE).exe $(PKG_PREFIX)/app/$(APP_NAME)
|
|
|
|
quicktemplate-gen: install-qtc
|
|
qtc
|
|
|
|
install-qtc:
|
|
which qtc || go install github.com/valyala/quicktemplate/qtc
|
|
|
|
|
|
golangci-lint: install-golangci-lint
|
|
golangci-lint run --exclude '(SA4003|SA1019|SA5011):' -D errcheck -D structcheck --timeout 2m
|
|
|
|
install-golangci-lint:
|
|
which golangci-lint || curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(shell go env GOPATH)/bin v1.29.0
|
|
|
|
copy-docs:
|
|
echo "---\nsort: ${ORDER}\n---\n" > ${DST}
|
|
cat ${SRC} >> ${DST}
|
|
|
|
# Copies docs for all components and adds the order tag.
|
|
# Cluster docs are supposed to be ordered as 9th.
|
|
# For The rest of docs is ordered manually.t
|
|
docs-sync:
|
|
SRC=app/vmagent/README.md DST=docs/vmagent.md ORDER=2 $(MAKE) copy-docs
|
|
SRC=app/vmalert/README.md DST=docs/vmalert.md ORDER=3 $(MAKE) copy-docs
|
|
SRC=app/vmauth/README.md DST=docs/vmauth.md ORDER=4 $(MAKE) copy-docs
|
|
SRC=app/vmbackup/README.md DST=docs/vmbackup.md ORDER=5 $(MAKE) copy-docs
|
|
SRC=app/vmrestore/README.md DST=docs/vmrestore.md ORDER=6 $(MAKE) copy-docs
|
|
SRC=app/vmctl/README.md DST=docs/vmctl.md ORDER=7 $(MAKE) copy-docs
|
|
SRC=app/vmgateway/README.md DST=docs/vmgateway.md ORDER=8 $(MAKE) copy-docs
|
|
SRC=app/vmgateway/README.md DST=docs/Cluster-VictoriaMetrics.md ORDER=9 $(MAKE) copy-docs
|