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
117 lines
4.0 KiB
Makefile
117 lines
4.0 KiB
Makefile
.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)
|