33 lines
1.3 KiB
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
|