redline-api/Makefile
wangdong 8f5dad5360
Some checks are pending
Pre-build Binary / build (push) Waiting to run
Add build script, Makefile, simplified Dockerfile, update README
2026-07-28 02:33:55 +08:00

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