mirror of
https://github.com/whit3rabbit/anyllm-proxy.git
synced 2026-09-21 16:00:49 +00:00
Add per-feature build/test targets (all-features, otel, qdrant, redis, optimizer) and UI targets to the Makefile help output. Document in CLAUDE.md that admin-ui/dist/index.html is git-tracked and embedded via include_str!, so it must be regenerated with `make ui-build` rather than restored from git. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
110 lines
3.5 KiB
Makefile
110 lines
3.5 KiB
Makefile
VERSION := $(shell grep '^version' Cargo.toml | head -1 | sed 's/version = "\(.*\)"/\1/')
|
|
ARCH := $(shell uname -m)
|
|
|
|
.PHONY: help build release deb package clean test test-all-features lint fmt audit run run-webui \
|
|
build-all-features build-otel build-qdrant build-redis build-optimizer \
|
|
ui-install ui-build ui-dev ui-test ui-lint
|
|
|
|
help:
|
|
@printf "%-22s %s\n" "build" "debug build of proxy with default features"
|
|
@printf "%-22s %s\n" "build-all-features" "debug build of proxy with all features enabled"
|
|
@printf "%-22s %s\n" "build-otel" "debug build of proxy with OpenTelemetry feature"
|
|
@printf "%-22s %s\n" "build-qdrant" "debug build of proxy with Qdrant feature"
|
|
@printf "%-22s %s\n" "build-redis" "debug build of proxy with Redis feature"
|
|
@printf "%-22s %s\n" "build-optimizer" "debug build of proxy with optimizer-onnx feature"
|
|
@printf "%-22s %s\n" "release" "release build (current platform, default features)"
|
|
@printf "%-22s %s\n" "release-all-features" "release build (current platform, all features)"
|
|
@printf "%-22s %s\n" "test" "run all workspace tests with default features"
|
|
@printf "%-22s %s\n" "test-all-features" "run all workspace tests with all features"
|
|
@printf "%-22s %s\n" "lint" "run clippy and check formatting on workspace"
|
|
@printf "%-22s %s\n" "fmt" "format all Rust source code"
|
|
@printf "%-22s %s\n" "audit" "run security audit on dependencies"
|
|
@printf "%-22s %s\n" "run" "run proxy locally (without UI)"
|
|
@printf "%-22s %s\n" "run-webui" "run proxy locally with admin web UI enabled"
|
|
@printf "%-22s %s\n" "ui-install" "install admin UI dependencies (npm)"
|
|
@printf "%-22s %s\n" "ui-build" "build admin UI (generates dist/)"
|
|
@printf "%-22s %s\n" "ui-dev" "run admin UI dev server"
|
|
@printf "%-22s %s\n" "ui-test" "run admin UI behavior tests"
|
|
@printf "%-22s %s\n" "ui-lint" "lint and typecheck admin UI"
|
|
@printf "%-22s %s\n" "deb" "build .deb package (Linux only, requires cargo-deb)"
|
|
@printf "%-22s %s\n" "package" "create macOS tarball for Homebrew (macOS only)"
|
|
@printf "%-22s %s\n" "clean" "remove build and dist artifacts"
|
|
@printf "\nversion: $(VERSION)\n"
|
|
|
|
build:
|
|
cargo build -p anyllm_proxy
|
|
|
|
build-all-features:
|
|
cargo build -p anyllm_proxy --all-features
|
|
|
|
build-otel:
|
|
cargo build -p anyllm_proxy --features otel
|
|
|
|
build-qdrant:
|
|
cargo build -p anyllm_proxy --features qdrant
|
|
|
|
build-redis:
|
|
cargo build -p anyllm_proxy --features redis
|
|
|
|
build-optimizer:
|
|
cargo build -p anyllm_proxy --features optimizer-onnx
|
|
|
|
release:
|
|
cargo build --release -p anyllm_proxy
|
|
|
|
release-all-features:
|
|
cargo build --release -p anyllm_proxy --all-features
|
|
|
|
test:
|
|
cargo test
|
|
|
|
test-all-features:
|
|
cargo test --all-features
|
|
|
|
lint:
|
|
cargo clippy --workspace --all-targets --all-features -- -D warnings
|
|
cargo fmt --check
|
|
|
|
fmt:
|
|
cargo fmt
|
|
|
|
audit:
|
|
cargo audit
|
|
|
|
run:
|
|
PROXY_OPEN_RELAY=true cargo run -p anyllm_proxy
|
|
|
|
run-webui:
|
|
PROXY_OPEN_RELAY=true cargo run -p anyllm_proxy -- --webui
|
|
|
|
ui-install:
|
|
cd crates/proxy/admin-ui && npm ci --legacy-peer-deps
|
|
|
|
ui-build:
|
|
cd crates/proxy/admin-ui && npm run build
|
|
|
|
ui-dev:
|
|
cd crates/proxy/admin-ui && npm run dev
|
|
|
|
ui-test:
|
|
cd crates/proxy/admin-ui && npm run test
|
|
|
|
ui-lint:
|
|
cd crates/proxy/admin-ui && npm run lint && npm run typecheck
|
|
|
|
deb: release
|
|
cargo deb -p anyllm_proxy --no-build --no-strip
|
|
|
|
package: release
|
|
@mkdir -p dist
|
|
@cp target/release/anyllm_proxy dist/anyllm-proxy
|
|
@tar -czf dist/anyllm-proxy-$(VERSION)-macos-$(ARCH).tar.gz -C dist anyllm-proxy
|
|
@rm dist/anyllm-proxy
|
|
@echo "dist/anyllm-proxy-$(VERSION)-macos-$(ARCH).tar.gz"
|
|
|
|
clean:
|
|
cargo clean
|
|
rm -rf dist/
|
|
rm -rf crates/proxy/admin-ui/dist/
|
|
|