chore: track root project files and subrepos

This commit is contained in:
hajimi
2026-05-23 13:22:03 +08:00
parent 1624f023a2
commit 648ed678f3
1035 changed files with 154418 additions and 1 deletions
+69
View File
@@ -0,0 +1,69 @@
#!/usr/bin/env bash
# 一键发布测试:
# 1) admin 目录 npm run build
# 2) uniapp 目录 npm run build:h5
# 3) 提交 server 代码到 git 并推送
#
# 用法:
# bash release.sh # 自动用时间戳作为提交信息
# bash release.sh "fix: short link" # 自定义提交信息
# ./release.sh "msg" # 已 chmod +x 后
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$ROOT_DIR"
MESSAGE="${1:-release: $(date '+%Y-%m-%d %H:%M:%S')}"
# ANSI 颜色(支持 git bash / wsl / linux / macOS
if [ -t 1 ]; then
CYAN=$'\033[36m'
YELLOW=$'\033[33m'
GREEN=$'\033[32m'
GRAY=$'\033[90m'
RESET=$'\033[0m'
else
CYAN=""; YELLOW=""; GREEN=""; GRAY=""; RESET=""
fi
step() { echo; echo "${CYAN}==> $1${RESET}"; }
run() {
local cwd="$1"; shift
echo "${GRAY}[$cwd] $*${RESET}"
(cd "$cwd" && "$@")
}
# 1. 构建 admin
step "构建 admin (npm run build)"
run "$ROOT_DIR/admin" npm run build
# 2. 构建 uniapp H5
step "构建 uniapp H5 (npm run build:h5)"
run "$ROOT_DIR/uniapp" npm run build:h5
# 3. 提交 serverserver 是独立 git 仓库,使用其自身的 .git)
SERVER_DIR="$ROOT_DIR/server"
if [ ! -d "$SERVER_DIR/.git" ]; then
echo "${YELLOW}server/.git 不存在,跳过 git 步骤${RESET}"
else
step "提交 server 代码"
if [ -z "$(git -C "$SERVER_DIR" status --porcelain)" ]; then
echo "${YELLOW}server 仓库无变更,跳过 commit${RESET}"
else
git -C "$SERVER_DIR" add -A
git -C "$SERVER_DIR" commit -m "$MESSAGE"
fi
step "推送到远端"
BRANCH="$(git -C "$SERVER_DIR" rev-parse --abbrev-ref HEAD)"
if git -C "$SERVER_DIR" rev-parse --abbrev-ref --symbolic-full-name "@{u}" >/dev/null 2>&1; then
git -C "$SERVER_DIR" push
else
# 尚未设置上游:默认推到 origin/<当前分支>
git -C "$SERVER_DIR" push -u origin "$BRANCH"
fi
fi
echo
echo "${GREEN}✓ 发布完成${RESET}"