Files
YaeMikoBot/Makefile

33 lines
1.3 KiB
Makefile

export GIT_COMMIT := $(shell git rev-parse --short HEAD 2>/dev/null || echo "unknown")
export BUILD_TIME := $(shell date "+%H:%M:%S %d.%m.%Y")
# Проверка наличия golangci-lint
GO_LINT := $(shell command -v golangci-lint 2>/dev/null)
# Цель: запуск всех проверок кода
check:
@echo "🔍 Running code checks..."
@go mod tidy -v
@go vet ./...
@if [ -n "$(GO_LINT)" ]; then \
echo "✅ golangci-lint found, running..." && \
golangci-lint run --timeout=5m --verbose; \
else \
echo "⚠️ golangci-lint not installed. Install with: curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s -- -b $(go env GOPATH)/bin v1.57.2"; \
fi
@go test -race -v ./... 2>/dev/null || echo "⚠️ Tests skipped or failed (run manually with 'go test -race ./...')"
# Цель: сборка и пуш образа (зависимит от check)
build: check
@echo "🏗️ Building commit $(GIT_COMMIT)"
@echo "⏰ Build time $(BUILD_TIME)"
docker buildx build --build-arg GIT_COMMIT="$(GIT_COMMIT)" --build-arg BUILD_TIME="$(BUILD_TIME)" -t git.nix13.pw/scuroneko/yaemikobot:dev --file ./Dockerfile .
docker push git.nix13.pw/scuroneko/yaemikobot:dev
# Дополнительно: чистка
clean:
@echo "🧹 Cleaning..."
@go clean -modcache -cache -i
.PHONY: check build clean