ci: 添加 Epic UI 构建和部署工作流

- 新增 CI/CD 工作流文件,实现前端项目的自动构建和部署
- 支持 main、master 和 develop 分支的自动构建- 包含代码检出、环境安装、依赖管理、项目构建等步骤
- 实现构建产物的自动部署和 Docker 容器重启
This commit is contained in:
hu xiaotong
2025-07-08 12:30:32 +08:00
parent c0b3f7a84a
commit c85fedef75

View File

@@ -65,22 +65,16 @@ jobs:
echo "✅ Node.js安装完成"
fi
- name: 恢复pnpm缓存
- name: 安装pnpm
shell: bash
run: |
echo "📦 恢复pnpm缓存..."
echo "📦 安装pnpm包管理器..."
export PATH=$PATH:/usr/local/bin
# 检查缓存的pnpm
PNPM_CACHE_DIR="/opt/hostedtoolcache/pnpm-bin"
if [ -d "$PNPM_CACHE_DIR" ] && [ -f "$PNPM_CACHE_DIR/pnpm" ]; then
echo "✅ 找到缓存的pnpm: $PNPM_CACHE_DIR/pnpm"
# 将缓存的pnpm添加到PATH
export PATH="$PNPM_CACHE_DIR:$PATH"
echo "✅ pnpm已恢复: $(pnpm --version)"
if command -v pnpm &> /dev/null; then
echo "✅ pnpm已安装: $(pnpm --version)"
else
echo "📥 未找到缓存的pnpm将重新安装..."
# 直接安装pnpm到全局
echo "📥 安装pnpm..."
npm install -g pnpm
echo "✅ pnpm安装完成: $(pnpm --version)"
fi
@@ -91,12 +85,6 @@ jobs:
echo "📦 配置pnpm缓存..."
export PATH=$PATH:/usr/local/bin
# 设置pnpm路径
PNPM_CACHE_DIR="/opt/hostedtoolcache/pnpm-bin"
if [ -f "$PNPM_CACHE_DIR/pnpm" ]; then
export PATH="$PNPM_CACHE_DIR:$PATH"
fi
# 配置pnpm缓存目录
PNPM_STORE_DIR="/opt/hostedtoolcache/pnpm-store"
mkdir -p "$PNPM_STORE_DIR"
@@ -113,12 +101,6 @@ jobs:
echo "📦 检查并恢复依赖缓存..."
export PATH=$PATH:/usr/local/bin
# 设置pnpm路径
PNPM_CACHE_DIR="/opt/hostedtoolcache/pnpm-bin"
if [ -f "$PNPM_CACHE_DIR/pnpm" ]; then
export PATH="$PNPM_CACHE_DIR:$PATH"
fi
# 生成缓存键
CACHE_KEY=$(md5sum pnpm-lock.yaml | cut -d' ' -f1)
echo "缓存键: $CACHE_KEY"
@@ -150,12 +132,6 @@ jobs:
echo "📦 安装项目依赖..."
export PATH=$PATH:/usr/local/bin
# 设置pnpm路径
PNPM_CACHE_DIR="/opt/hostedtoolcache/pnpm-bin"
if [ -f "$PNPM_CACHE_DIR/pnpm" ]; then
export PATH="$PNPM_CACHE_DIR:$PATH"
fi
# 检查是否已有node_modules
if [ -d "node_modules" ] && [ -f "node_modules/.pnpm-debug.log" ]; then
echo "✅ 检测到已存在的依赖,跳过安装"
@@ -171,12 +147,6 @@ jobs:
echo "💾 保存依赖缓存..."
export PATH=$PATH:/usr/local/bin
# 设置pnpm路径
PNPM_CACHE_DIR="/opt/hostedtoolcache/pnpm-bin"
if [ -f "$PNPM_CACHE_DIR/pnpm" ]; then
export PATH="$PNPM_CACHE_DIR:$PATH"
fi
# 生成缓存键
CACHE_KEY=$(md5sum pnpm-lock.yaml | cut -d' ' -f1)
echo "缓存键: $CACHE_KEY"
@@ -199,30 +169,7 @@ jobs:
exit 1
fi
- name: 保存pnpm缓存
shell: bash
run: |
echo "💾 保存pnpm缓存..."
export PATH=$PATH:/usr/local/bin
# 保存pnpm完整安装目录
PNPM_CACHE_DIR="/opt/hostedtoolcache/pnpm-bin"
if [ -d "$PNPM_CACHE_DIR" ]; then
echo "✅ pnpm已缓存"
else
echo "📥 复制pnpm到缓存目录..."
# 找到pnpm的安装目录
PNPM_PATH=$(which pnpm 2>/dev/null || echo "")
if [ -n "$PNPM_PATH" ] && [ -f "$PNPM_PATH" ]; then
# 获取pnpm的安装目录
PNPM_DIR=$(dirname "$PNPM_PATH")
# 复制整个目录
cp -r "$PNPM_DIR" "$PNPM_CACHE_DIR"
echo "✅ pnpm已保存到缓存: $PNPM_CACHE_DIR"
else
echo "⚠️ 无法找到pnpm跳过保存"
fi
fi
- name: 构建项目
shell: bash
@@ -230,12 +177,6 @@ jobs:
echo "🔨 构建 Epic UI 前端项目..."
export PATH=$PATH:/usr/local/bin
# 设置pnpm路径
PNPM_CACHE_DIR="/opt/hostedtoolcache/pnpm-bin"
if [ -f "$PNPM_CACHE_DIR/pnpm" ]; then
export PATH="$PNPM_CACHE_DIR:$PATH"
fi
# 执行构建
pnpm build