Initial commit: Go webhook server for Quartz site rebuild
This commit is contained in:
102
Makefile
Normal file
102
Makefile
Normal file
@@ -0,0 +1,102 @@
|
||||
.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
|
||||
|
||||
# Помощь
|
||||
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) main.go
|
||||
@echo "Сборка завершена: $(BINARY_NAME)"
|
||||
|
||||
# Запуск
|
||||
run: build ## Запустить сервис локально
|
||||
@echo "Запуск $(BINARY_NAME)..."
|
||||
./$(BINARY_NAME)
|
||||
|
||||
# Тестирование
|
||||
test: install-deps ## Запустить тесты
|
||||
@echo "Запуск тестов..."
|
||||
go test -v ./...
|
||||
|
||||
# Очистка
|
||||
clean: ## Очистить собранные файлы
|
||||
@echo "Очистка..."
|
||||
rm -f $(BINARY_NAME)
|
||||
@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 ""
|
||||
|
||||
# Полная пересборка
|
||||
rebuild: clean build ## Полная пересборка проекта
|
||||
|
||||
# Разработка
|
||||
dev: ## Запуск в режиме разработки с автоперезагрузкой
|
||||
@echo "Запуск в режиме разработки..."
|
||||
@if command -v air > /dev/null; then \
|
||||
air; \
|
||||
else \
|
||||
echo "Air не установлен. Установите: go install github.com/cosmtrek/air@latest"; \
|
||||
go run main.go; \
|
||||
fi
|
||||
Reference in New Issue
Block a user