VERSION := $(shell git describe --tags | sed -e 's/^v//g' | awk -F "-" '{print $$1}') ITERATION := $(shell git describe --tags --long | awk -F "-" '{print $$2}') TESTFOLDERS := $(shell go list ./... | grep -v /misc/) all: test test: go test -count=1 -v $(TESTFOLDERS) -cover -race test-integration: go test -count=1 -v $(TESTFOLDERS) -cover -race --tags=integration generate: bash misc/scripts/generate.sh go generate ./... web: ./misc/scripts/update_web.sh swagger-web: make generate ./misc/scripts/update_swagger_web.sh package: ./misc/scripts/package.sh $(VERSION) $(ITERATION) sync-websocket: rsync -av --exclude '*/' ../centrifuge/internal/websocket/ internal/websocket/ packagecloud: make packagecloud-deb make packagecloud-rpm packagecloud-deb: # PACKAGECLOUD_TOKEN env must be set package_cloud push FZambia/centrifugo/debian/buster PACKAGES/*.deb package_cloud push FZambia/centrifugo/debian/bullseye PACKAGES/*.deb package_cloud push FZambia/centrifugo/debian/bookworm PACKAGES/*.deb package_cloud push FZambia/centrifugo/ubuntu/focal PACKAGES/*.deb package_cloud push FZambia/centrifugo/ubuntu/jammy PACKAGES/*.deb package_cloud push FZambia/centrifugo/ubuntu/noble PACKAGES/*.deb packagecloud-rpm: # PACKAGECLOUD_TOKEN env must be set package_cloud push FZambia/centrifugo/el/7 PACKAGES/*.rpm update-deps: ./misc/scripts/update-deps.sh deps: go mod tidy local-deps: go mod tidy go mod download go mod vendor GOLANGCI_LINT_VERSION := $(shell cat .golangci-lint-version) lint: @if ! command -v golangci-lint >/dev/null 2>&1; then \ echo "golangci-lint not found. Run 'make install-lint' to install $(GOLANGCI_LINT_VERSION)."; \ exit 1; \ fi @INSTALLED=$$(golangci-lint version --short 2>/dev/null); \ EXPECTED=$$(echo $(GOLANGCI_LINT_VERSION) | sed 's/^v//'); \ if [ "$${INSTALLED%%.*}" != "$${EXPECTED%%.*}" ] || [ "$${INSTALLED#*.}" != "$${EXPECTED#*.}" ]; then \ echo "golangci-lint version mismatch: installed $${INSTALLED}, expected $${EXPECTED}. Run 'make install-lint'."; \ exit 1; \ fi golangci-lint run --timeout 10m0s --verbose install-lint: go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@$(GOLANGCI_LINT_VERSION) vuln: @if ! command -v govulncheck >/dev/null 2>&1; then \ echo "govulncheck not found, installing..."; \ go install golang.org/x/vuln/cmd/govulncheck@latest; \ fi govulncheck ./... build: CGO_ENABLED=0 go build