Files
WeKnora/Makefile
wizardchen 56eb2bce33 init commit
2025-08-05 15:08:07 +08:00

95 lines
1.7 KiB
Makefile

.PHONY: build run test clean docker-build docker-run migrate-up migrate-down docker-restart docker-stop start-all stop-all start-ollama stop-ollama
# Go related variables
BINARY_NAME=WeKnora
MAIN_PATH=./cmd/server
# Docker related variables
DOCKER_IMAGE=WeKnora
DOCKER_TAG=latest
# Build the application
build:
go build -o $(BINARY_NAME) $(MAIN_PATH)
# Run the application
run: build
./$(BINARY_NAME)
# Run tests
test:
go test -v ./...
# Clean build artifacts
clean:
go clean
rm -f $(BINARY_NAME)
# Build Docker image
docker-build:
docker build -t $(DOCKER_IMAGE):$(DOCKER_TAG) .
# Run Docker container (传统方式)
docker-run:
docker-compose up
# 使用新脚本启动所有服务
start-all:
./scripts/start_all.sh
# 使用新脚本仅启动Ollama服务
start-ollama:
./scripts/start_all.sh --ollama
# 使用新脚本仅启动Docker容器
start-docker:
./scripts/start_all.sh --docker
# 使用新脚本停止所有服务
stop-all:
./scripts/start_all.sh --stop
# Stop Docker container (传统方式)
docker-stop:
docker-compose down
# Restart Docker container (stop, rebuild, start)
docker-restart:
docker-compose stop -t 60
docker-compose up --build
# Database migrations
migrate-up:
./scripts/migrate.sh up
migrate-down:
./scripts/migrate.sh down
# Generate API documentation
docs:
swag init -g $(MAIN_PATH)/main.go -o ./docs
# Format code
fmt:
go fmt ./...
# Lint code
lint:
golangci-lint run
# Install dependencies
deps:
go mod download
# Build for production
build-prod:
GOOS=linux go build -a -installsuffix cgo -ldflags="-w -s" -o $(BINARY_NAME) $(MAIN_PATH)
clean-db:
@echo "Cleaning database..."
@if [ $$(docker volume ls -q -f name=weknora_postgres-data) ]; then \
docker volume rm weknora_postgres-data; \
fi