Files
go-webhook/Makefile
Andrey Epifancev fcc65ea850 cleanup: удаление ненужных файлов и переименование
- Удален старый main.go
- Удален старый Dockerfile
- Удален старый Makefile
- Удален старый README.md
- Удален docker-compose.yml
- Удален .air.toml
- Удалены пустые директории (deployments, docs, scripts, tests)
- Переименованы файлы без суффикса -refactored
- Очищена структура проекта
2025-08-11 19:55:23 +04:00

156 lines
5.6 KiB
Makefile
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.PHONY: help build run test clean docker-build docker-run docker-stop install-deps
# Переменные
BINARY_NAME=go-webhook-server
DOCKER_IMAGE=go-webhook-server
DOCKER_CONTAINER=go-webhook-server
BUILD_DIR=cmd/server
# Помощь
help: ## Показать справку по командам
@echo "Доступные команды:"
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
# Установка зависимостей
install-deps: ## Установить Go зависимости
go mod download
go mod tidy
# Сборка
build: install-deps ## Собрать бинарный файл
@echo "Сборка $(BINARY_NAME)..."
go build -o $(BINARY_NAME) $(BUILD_DIR)/main.go
@echo "Сборка завершена: $(BINARY_NAME)"
# Запуск
run: build ## Запустить сервис локально
@echo "Запуск $(BINARY_NAME)..."
./$(BINARY_NAME)
# Запуск без сборки
run-dev: ## Запустить сервис в режиме разработки
@echo "Запуск в режиме разработки..."
cd $(BUILD_DIR) && go run main.go
# Тестирование
test: install-deps ## Запустить тесты
@echo "Запуск тестов..."
go test -v ./internal/...
go test -v ./pkg/...
# Тестирование с покрытием
test-coverage: install-deps ## Запустить тесты с покрытием
@echo "Запуск тестов с покрытием..."
go test -v -coverprofile=coverage.out ./internal/...
go test -v -coverprofile=pkg-coverage.out ./pkg/...
go tool cover -html=coverage.out -o coverage.html
go tool cover -html=pkg-coverage.out -o pkg-coverage.html
@echo "Отчеты покрытия созданы: coverage.html, pkg-coverage.html"
# Очистка
clean: ## Очистить собранные файлы
@echo "Очистка..."
rm -f $(BINARY_NAME)
rm -f coverage.out pkg-coverage.out
rm -f coverage.html pkg-coverage.html
@echo "Очистка завершена"
# Docker команды
docker-build: ## Собрать Docker образ
@echo "Сборка Docker образа..."
docker build -t $(DOCKER_IMAGE) .
@echo "Docker образ собран: $(DOCKER_IMAGE)"
docker-run: docker-build ## Запустить Docker контейнер
@echo "Запуск Docker контейнера..."
docker run -d \
--name $(DOCKER_CONTAINER) \
-p 3000:3000 \
-v obsidian_repo:/obsidian:ro \
-v quartz_repo:/quartz:ro \
-v public_site:/public \
$(DOCKER_IMAGE)
@echo "Docker контейнер запущен: $(DOCKER_CONTAINER)"
docker-stop: ## Остановить Docker контейнер
@echo "Остановка Docker контейнера..."
docker stop $(DOCKER_CONTAINER) || true
docker rm $(DOCKER_CONTAINER) || true
@echo "Docker контейнер остановлен"
docker-logs: ## Показать логи Docker контейнера
docker logs -f $(DOCKER_CONTAINER)
# Docker Compose команды
compose-up: ## Запустить сервис через Docker Compose
@echo "Запуск через Docker Compose..."
docker-compose up -d
@echo "Сервис запущен"
compose-down: ## Остановить сервис через Docker Compose
@echo "Остановка через Docker Compose..."
docker-compose down
@echo "Сервис остановлен"
compose-logs: ## Показать логи Docker Compose
docker-compose logs -f
# Проверка состояния
status: ## Показать статус сервиса
@echo "Проверка статуса сервиса..."
@curl -s http://localhost:3000/health || echo "Сервис недоступен"
# Webhook тест
test-webhook: ## Отправить тестовый webhook
@echo "Отправка тестового webhook..."
@curl -X POST http://localhost:3000/webhook
@echo ""
# Проверка структуры
lint: ## Проверить код линтером
@echo "Проверка кода..."
@if command -v golangci-lint > /dev/null; then \
golangci-lint run; \
else \
echo "golangci-lint не установлен. Установите: go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest"; \
fi
# Форматирование кода
fmt: ## Отформатировать код
@echo "Форматирование кода..."
go fmt ./...
@echo "Код отформатирован"
# Проверка зависимостей
deps-check: ## Проверить зависимости
@echo "Проверка зависимостей..."
go mod verify
go list -m all
# Полная пересборка
rebuild: clean build ## Полная пересборка проекта
# Разработка
dev: ## Запуск в режиме разработки с автоперезагрузкой
@echo "Запуск в режиме разработки..."
@if command -v air > /dev/null; then \
air; \
else \
echo "Air не установлен. Установите: go install github.com/cosmtrek/air@latest"; \
cd $(BUILD_DIR) && go run main.go; \
fi
# Создание структуры проекта
create-structure: ## Создать структуру директорий
@echo "Создание структуры проекта..."
mkdir -p cmd/server
mkdir -p internal/{config,handlers,services,middleware}
mkdir -p pkg/logger
mkdir -p api
mkdir -p configs
mkdir -p tests/{unit,integration}
mkdir -p scripts
mkdir -p docs
mkdir -p deployments
@echo "Структура проекта создана"