63 lines
1.7 KiB
Makefile
63 lines
1.7 KiB
Makefile
# One API Makefile
|
|
# 快速构建和部署
|
|
|
|
VERSION := $(shell cat VERSION 2>/dev/null || echo "v0.0.0")
|
|
ifeq ($(VERSION),)
|
|
VERSION := "v0.0.0"
|
|
endif
|
|
|
|
.PHONY: all build frontend backend docker docker-full clean
|
|
|
|
all: build
|
|
|
|
# 完整构建(前端 + 后端)
|
|
build:
|
|
@echo "=== Building One API $(VERSION) ==="
|
|
@echo ""
|
|
@echo "--- Building frontend ---"
|
|
cd web/default && npm install --legacy-peer-deps 2>/dev/null || npm install
|
|
cd web/default && DISABLE_ESLINT_PLUGIN='true' REACT_APP_VERSION="$(VERSION)" npm run build
|
|
@echo ""
|
|
@echo "--- Copying frontend build ---"
|
|
mkdir -p web/build
|
|
cp -r web/default/build/* web/build/ 2>/dev/null || true
|
|
@echo ""
|
|
@echo "--- Building Go backend ---"
|
|
go mod download
|
|
go build -trimpath -ldflags "-s -w -X 'github.com/songquanpeng/one-api/common.Version=$(VERSION)'" -o one-api
|
|
@echo ""
|
|
@echo "=== Build complete! ==="
|
|
@echo "Binary: ./one-api"
|
|
@echo "Frontend: web/build/"
|
|
|
|
# 仅构建前端
|
|
frontend:
|
|
cd web/default && npm install --legacy-peer-deps 2>/dev/null || npm install
|
|
cd web/default && DISABLE_ESLINT_PLUGIN='true' REACT_APP_VERSION="$(VERSION)" npm run build
|
|
mkdir -p web/build
|
|
cp -r web/default/build/* web/build/ 2>/dev/null || true
|
|
|
|
# 仅构建后端
|
|
backend:
|
|
go mod download
|
|
go build -trimpath -ldflags "-s -w -X 'github.com/songquanpeng/one-api/common.Version=$(VERSION)'" -o one-api
|
|
|
|
# 快速 Docker 构建(使用预编译文件)
|
|
docker:
|
|
docker build -t redline-api .
|
|
|
|
# 完整 Docker 构建(从源码编译)
|
|
docker-full:
|
|
docker build -f Dockerfile.full -t redline-api .
|
|
|
|
# 运行
|
|
run:
|
|
./one-api --port 3000 --log-dir ./logs
|
|
|
|
# 清理构建产物
|
|
clean:
|
|
rm -f one-api
|
|
rm -rf web/build
|
|
rm -rf web/default/build
|
|
rm -rf web/air/build
|
|
rm -rf web/berry/build
|