zero-ppanel/Makefile
shanshanzhong 9bdc593db4
Some checks failed
Build docker and publish / prepare (20.15.1) (push) Successful in 3s
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.admin image_name:ppanel-admin name:admin]) (push) Failing after 1m37s
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.api image_name:ppanel-api name:api]) (push) Failing after 1m42s
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.node image_name:ppanel-node name:node]) (push) Failing after 1m42s
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.queue image_name:ppanel-queue name:queue]) (push) Failing after 1m34s
Build docker and publish / build (map[dockerfile:deploy/Dockerfile.scheduler image_name:ppanel-scheduler name:scheduler]) (push) Failing after 1m39s
Build docker and publish / deploy (push) Has been skipped
Build docker and publish / notify (push) Successful in 2s
环境变量
2026-02-28 04:02:14 -08:00

117 lines
4.0 KiB
Makefile
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

.PHONY: build-all build-api build-admin build-node build-queue build-scheduler build-rpc-core \
gen-api gen-model docker-up docker-down docker-env-up docker-env-down lint clean \
run-api run-admin run-node run-queue run-scheduler run-rpc-core migrate migrate-up migrate-down migrate-create migrate-version migrate-force migrate-goto
# Environment: dev | test | prod (default: dev)
ENV ?= dev
# Build targets
build-all: build-api build-admin build-node build-queue build-scheduler build-rpc-core
build-api:
CGO_ENABLED=0 go build -trimpath -o bin/ppanel-api ./apps/api/ppanel.go
build-admin:
CGO_ENABLED=0 go build -trimpath -o bin/ppanel-admin ./apps/admin/ppaneladmin.go
build-node:
CGO_ENABLED=0 go build -trimpath -o bin/ppanel-node ./apps/node/ppanelnode.go
build-queue:
CGO_ENABLED=0 go build -trimpath -o bin/ppanel-queue ./apps/queue/queue.go
build-scheduler:
CGO_ENABLED=0 go build -trimpath -o bin/ppanel-scheduler ./apps/scheduler/scheduler.go
build-rpc-core:
CGO_ENABLED=0 go build -trimpath -o bin/ppanel-rpc-core ./apps/rpc/core/core.go
# Run with environment config
run-api:
go run apps/api/ppanel.go -f apps/api/etc/api-$(ENV).yaml
run-admin:
go run apps/admin/ppaneladmin.go -f apps/admin/etc/admin-$(ENV).yaml
run-node:
go run apps/node/ppanelnode.go -f apps/node/etc/node-$(ENV).yaml
run-queue:
go run apps/queue/queue.go -f apps/queue/etc/queue-$(ENV).yaml
run-scheduler:
go run apps/scheduler/scheduler.go -f apps/scheduler/etc/scheduler-$(ENV).yaml
run-rpc-core:
go run apps/rpc/core/core.go -f apps/rpc/core/etc/core-$(ENV).yaml
# Code generation
gen-api:
cd apps/api && goctl api go -api api.api -dir . -style goZero -home ../../goctl_tpl
cd apps/admin && goctl api go -api admin.api -dir . -style goZero -home ../../goctl_tpl
cd apps/node && goctl api go -api node.api -dir . -style goZero -home ../../goctl_tpl
# fix: admin routes.go 中 server 包名与参数名 server(*rest.Server) 冲突
# 1. 若 goctl 生成了 server import 但没加别名,加上别名
sed -i '' 's|"github.com/zero-ppanel/zero-ppanel/apps/admin/internal/handler/server"|serverhandler "github.com/zero-ppanel/zero-ppanel/apps/admin/internal/handler/server"|g' apps/admin/internal/handler/routes.go
# 2. 若 goctl 漏掉了 server import补进去
grep -q 'handler/server' apps/admin/internal/handler/routes.go || sed -i '' 's|"github.com/zero-ppanel/zero-ppanel/apps/admin/internal/svc"|serverhandler "github.com/zero-ppanel/zero-ppanel/apps/admin/internal/handler/server"\n\t"github.com/zero-ppanel/zero-ppanel/apps/admin/internal/svc"|' apps/admin/internal/handler/routes.go
# 3. 替换调用处
sed -i '' 's/Handler: server\./Handler: serverhandler./g' apps/admin/internal/handler/routes.go
gen-model:
@echo "Usage: make gen-model TABLE=user DIR=apps/api/internal/model/user"
goctl model mysql ddl -src sql/001_init.up.sql -dir $(DIR) -table $(TABLE) -c
# Docker
docker-up:
cd deploy && docker-compose up -d
docker-down:
cd deploy && docker-compose down
docker-env-up:
cd deploy && docker-compose -f docker-compose-env.yml up -d
docker-env-down:
cd deploy && docker-compose -f docker-compose-env.yml down
# Quality
lint:
golangci-lint run ./...
clean:
rm -rf bin/
# Database migrations (using go-migrate)
migrate:
@echo "Usage: make migrate <command> [args...]"
@echo "Commands: up, down [version], create <name>, version, force <version>, goto <version>"
migrate-up:
@echo "Running database migration UP..."
go run pkg/migrate/main.go up
migrate-down:
@echo "Running database migration DOWN..."
ifeq ($(ARGS),)
go run pkg/migrate/main.go down
else
go run pkg/migrate/main.go down $(ARGS)
endif
migrate-create:
@echo "Creating new migration files..."
go run pkg/migrate/main.go create $(NAME)
migrate-version:
@echo "Getting current database migration version..."
go run pkg/migrate/main.go version
migrate-force:
@echo "Forcing database migration version..."
go run pkg/migrate/main.go force $(VERSION)
migrate-goto:
@echo "Going to specific database migration version..."
go run pkg/migrate/main.go goto $(VERSION)