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

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

View File

@@ -185,6 +185,20 @@ jobs:
echo "📥 首次运行,无缓存" echo "📥 首次运行,无缓存"
fi fi
- name: 检测 pnpm 缓存目录是否为持久化挂载
shell: bash
run: |
echo "🔍 检测 $CACHE_DIR 是否为持久化挂载..."
CACHE_DIR="/shared/pnpm-cache"
if mountpoint -q "$CACHE_DIR"; then
echo "✅ $CACHE_DIR 是挂载点(持久化卷)"
else
echo "⚠️ $CACHE_DIR 不是挂载点,可能不是持久化卷"
fi
echo "挂载信息:"
df -h "$CACHE_DIR" || true
mount | grep "$CACHE_DIR" || true
- name: 输出 pnpm 缓存目录内容 - name: 输出 pnpm 缓存目录内容
shell: bash shell: bash
run: | run: |
@@ -208,49 +222,11 @@ jobs:
run: | run: |
echo "📦 检查并恢复依赖缓存..." echo "📦 检查并恢复依赖缓存..."
export PATH=$PATH:/usr/local/bin export PATH=$PATH:/usr/local/bin
# 记录开始时间
START_TIME=$(date +%s)
# 使用外部缓存时的优化 # 使用外部缓存时的优化
echo "📦 使用外部缓存优化..." echo "📦 使用外部缓存优化..."
pnpm config set prefer-offline true pnpm config set prefer-offline true
# 检查 lockfile 是否存在
if [ -f "pnpm-lock.yaml" ]; then
echo "✅ 找到 pnpm-lock.yaml使用离线模式安装..."
echo "开始时间: $(date)" echo "开始时间: $(date)"
pnpm install --frozen-lockfile pnpm install --frozen-lockfile
else
echo "📥 未找到 lockfile重新安装依赖..."
echo "开始时间: $(date)"
pnpm install
fi
# 记录结束时间
END_TIME=$(date +%s)
DURATION=$((END_TIME - START_TIME))
# 保存缓存信息
echo "📊 安装统计:"
echo "总耗时: ${DURATION}秒"
echo "缓存目录: $(pnpm store path)"
echo "缓存大小: $(du -sh $(pnpm store path) 2>/dev/null || echo 'N/A')"
# 检查缓存是否写入到外部目录
echo "🔍 检查外部缓存写入..."
if [ -d "/shared/pnpm-cache/v10" ]; then
echo "✅ 外部缓存写入成功"
du -sh /shared/pnpm-cache
echo "缓存文件数量: $(find /shared/pnpm-cache -type f | wc -l)"
else
echo "❌ 外部缓存写入失败"
echo "检查 pnpm 实际使用的缓存目录:"
pnpm store path
echo "检查外部目录内容:"
ls -la /shared/pnpm-cache/
fi
echo "✅ 依赖安装完成" echo "✅ 依赖安装完成"
- name: 验证依赖 - name: 验证依赖