From 0db0f40ce39cd99134c56576f4892d70576bca05 Mon Sep 17 00:00:00 2001 From: shanshanzhong Date: Thu, 25 Sep 2025 02:37:59 -0700 Subject: [PATCH] ci --- Makefile | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 Makefile diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..d87a633 --- /dev/null +++ b/Makefile @@ -0,0 +1,75 @@ +# Makefile for panel-web + +# Docker Registry +REGISTRY_URL=registry.kxsw.us + +# Image names +ADMIN_IMAGE_NAME=ppanel/ppanel-admin-web +USER_IMAGE_NAME=ppanel/ppanel-user-web + +# Full image names with registry +ADMIN_IMAGE=${REGISTRY_URL}/${ADMIN_IMAGE_NAME} +USER_IMAGE=${REGISTRY_URL}/${USER_IMAGE_NAME} + +# Version from package.json. Requires jq to be installed. +VERSION=$(shell jq -r .version package.json) + +.PHONY: all +all: build ## Default target + +# ============================================================================== +# Build Targets +# ============================================================================== + +.PHONY: build +build: build-admin build-user ## Build both admin and user docker images + +.PHONY: build-admin +build-admin: ## Build the admin docker image + @echo "Building admin image with tags ${ADMIN_IMAGE}:${VERSION} and ${ADMIN_IMAGE}:latest..." + docker build -f ./docker/ppanel-admin-web/Dockerfile -t ${ADMIN_IMAGE}:${VERSION} -t ${ADMIN_IMAGE}:latest . + @echo "Successfully built admin image." + +.PHONY: build-user +build-user: ## Build the user docker image + @echo "Building user image with tags ${USER_IMAGE}:${VERSION} and ${USER_IMAGE}:latest..." + docker build -f ./docker/ppanel-user-web/Dockerfile -t ${USER_IMAGE}:${VERSION} -t ${USER_IMAGE}:latest . + @echo "Successfully built user image." + + +# ============================================================================== +# Publish Targets +# ============================================================================== + +.PHONY: push +push: push-admin push-user ## Push both admin and user images to the registry + +.PHONY: push-admin +push-admin: ## Push the admin image to the registry + @echo "Pushing admin image..." + docker push ${ADMIN_IMAGE}:${VERSION} + docker push ${ADMIN_IMAGE}:latest + @echo "Successfully pushed admin image." + +.PHONY: push-user +push-user: ## Push the user image to the registry + @echo "Pushing user image..." + docker push ${USER_IMAGE}:${VERSION} + docker push ${USER_IMAGE}:latest + @echo "Successfully pushed user image." + + +# ============================================================================== +# Other Targets +# ============================================================================== + +.PHONY: login +login: ## Login to the Docker registry + docker login ${REGISTRY_URL} + +.PHONY: help +help: ## Show this help message + @echo "Usage: make [target]" + @echo "" + @echo "Targets:" + @grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}' \ No newline at end of file