ci: 添加 Epic UI 构建和部署工作流
- 新增 CI/CD 工作流文件,实现前端项目的自动构建和部署 - 支持 main、master 和 develop 分支的自动构建- 包含代码检出、环境安装、依赖管理、项目构建等步骤 - 实现构建产物的自动部署和 Docker 容器重启
This commit is contained in:
@@ -111,130 +111,17 @@ jobs:
|
|||||||
npm install -g pnpm
|
npm install -g pnpm
|
||||||
echo "✅ pnpm安装完成: $(pnpm --version)"
|
echo "✅ pnpm安装完成: $(pnpm --version)"
|
||||||
fi
|
fi
|
||||||
- name: Cache node modules
|
|
||||||
uses: actions/cache@v3
|
|
||||||
with:
|
|
||||||
path: node_modules
|
|
||||||
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
|
|
||||||
restore-keys: |
|
|
||||||
${{ runner.os }}-node-
|
|
||||||
|
|
||||||
- name: 设置 pnpm 缓存目录
|
- name: 安装依赖
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
echo "📦 设置 pnpm 缓存目录..."
|
echo "📦 开始安装依赖..."
|
||||||
export PATH=$PATH:/usr/local/bin
|
export PATH=$PATH:/usr/local/bin
|
||||||
|
|
||||||
# 检查挂载点
|
|
||||||
echo "🔍 检查挂载点状态..."
|
|
||||||
CACHE_DIR="/shared/pnpm-cache"
|
|
||||||
echo "检查目录: $CACHE_DIR"
|
|
||||||
|
|
||||||
# 强制创建目录(如果挂载存在但目录为空)
|
|
||||||
mkdir -p "$CACHE_DIR"
|
|
||||||
|
|
||||||
if [ -d "$CACHE_DIR" ]; then
|
|
||||||
echo " ✅ 目录存在"
|
|
||||||
ls -la "$CACHE_DIR" | head -5
|
|
||||||
if [ -w "$CACHE_DIR" ]; then
|
|
||||||
echo " ✅ 目录可写"
|
|
||||||
else
|
|
||||||
echo " ❌ 目录不可写,尝试修复权限"
|
|
||||||
chmod 777 "$CACHE_DIR" 2>/dev/null || echo " 无法修复权限"
|
|
||||||
if [ -w "$CACHE_DIR" ]; then
|
|
||||||
echo " ✅ 权限修复成功"
|
|
||||||
else
|
|
||||||
echo " ❌ 权限修复失败"
|
|
||||||
CACHE_DIR=""
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo " ❌ 目录不存在"
|
|
||||||
CACHE_DIR=""
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$CACHE_DIR" ]; then
|
|
||||||
echo "⚠️ 未找到外部缓存目录,使用临时目录"
|
|
||||||
CACHE_DIR="/tmp/pnpm-cache"
|
|
||||||
mkdir -p "$CACHE_DIR"
|
|
||||||
else
|
|
||||||
echo "✅ 使用外部缓存目录: $CACHE_DIR"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 强制设置缓存目录,覆盖 .npmrc 中的配置
|
|
||||||
pnpm config set store-dir "$CACHE_DIR" --global
|
|
||||||
pnpm config set cache-dir "$CACHE_DIR" --global
|
|
||||||
echo "配置的缓存目录: $CACHE_DIR"
|
|
||||||
echo "pnpm 实际缓存目录: $(pnpm store path)"
|
|
||||||
|
|
||||||
# 验证配置是否生效
|
|
||||||
echo "验证 pnpm 配置:"
|
|
||||||
echo "store-dir: $(pnpm config get store-dir)"
|
|
||||||
echo "cache-dir: $(pnpm config get cache-dir)"
|
|
||||||
|
|
||||||
# 测试挂载是否工作
|
|
||||||
echo "🧪 测试挂载功能..."
|
|
||||||
TEST_FILE="$CACHE_DIR/test-mount.txt"
|
|
||||||
echo "测试时间: $(date)" > "$TEST_FILE"
|
|
||||||
if [ -f "$TEST_FILE" ]; then
|
|
||||||
echo "✅ 挂载测试成功,文件写入正常"
|
|
||||||
rm "$TEST_FILE"
|
|
||||||
else
|
|
||||||
echo "❌ 挂载测试失败,无法写入文件"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# 检查缓存状态
|
|
||||||
if [ -d "$CACHE_DIR/v10" ]; then
|
|
||||||
echo "✅ 找到外部缓存"
|
|
||||||
du -sh "$CACHE_DIR"
|
|
||||||
echo "缓存文件数量: $(find "$CACHE_DIR" -type f | wc -l)"
|
|
||||||
else
|
|
||||||
echo "📥 首次运行,无缓存"
|
|
||||||
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 缓存目录内容
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
echo "📂 输出 pnpm 缓存目录内容..."
|
|
||||||
CACHE_DIR="/shared/pnpm-cache"
|
|
||||||
if [ -d "$CACHE_DIR" ]; then
|
|
||||||
echo "--- $CACHE_DIR 内容 ---"
|
|
||||||
ls -lAh "$CACHE_DIR"
|
|
||||||
if [ -d "$CACHE_DIR/v10" ]; then
|
|
||||||
echo "--- $CACHE_DIR/v10 内容 ---"
|
|
||||||
ls -lAh "$CACHE_DIR/v10"
|
|
||||||
else
|
|
||||||
echo "$CACHE_DIR/v10 不存在"
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
echo "$CACHE_DIR 不存在"
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: 缓存依赖
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
echo "📦 检查并恢复依赖缓存..."
|
|
||||||
export PATH=$PATH:/usr/local/bin
|
|
||||||
# 使用外部缓存时的优化
|
|
||||||
echo "📦 使用外部缓存优化..."
|
|
||||||
pnpm config set prefer-offline true
|
|
||||||
echo "开始时间: $(date)"
|
echo "开始时间: $(date)"
|
||||||
pnpm install --frozen-lockfile
|
pnpm install --frozen-lockfile
|
||||||
echo "✅ 依赖安装完成"
|
echo "✅ 依赖安装完成"
|
||||||
|
echo "📦 node_modules 目录大小:"
|
||||||
|
du -sh node_modules || echo "node_modules 目录不存在"
|
||||||
|
|
||||||
- name: 验证依赖
|
- name: 验证依赖
|
||||||
shell: bash
|
shell: bash
|
||||||
|
|||||||
Reference in New Issue
Block a user