ci: 添加 Epic UI 构建和部署工作流
- 新增 CI/CD 工作流文件,实现前端项目的自动构建和部署 - 支持 main、master 和 develop 分支的自动构建- 包含代码检出、环境安装、依赖管理、项目构建等步骤 - 实现构建产物的自动部署和 Docker 容器重启
This commit is contained in:
@@ -65,22 +65,16 @@ jobs:
|
|||||||
echo "✅ Node.js安装完成"
|
echo "✅ Node.js安装完成"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
- name: 恢复pnpm缓存
|
- name: 安装pnpm
|
||||||
shell: bash
|
shell: bash
|
||||||
run: |
|
run: |
|
||||||
echo "📦 恢复pnpm缓存..."
|
echo "📦 安装pnpm包管理器..."
|
||||||
export PATH=$PATH:/usr/local/bin
|
export PATH=$PATH:/usr/local/bin
|
||||||
|
|
||||||
# 检查缓存的pnpm
|
if command -v pnpm &> /dev/null; then
|
||||||
PNPM_CACHE_DIR="/opt/hostedtoolcache/pnpm-bin"
|
echo "✅ pnpm已安装: $(pnpm --version)"
|
||||||
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)"
|
|
||||||
else
|
else
|
||||||
echo "📥 未找到缓存的pnpm,将重新安装..."
|
echo "📥 安装pnpm..."
|
||||||
# 直接安装pnpm到全局
|
|
||||||
npm install -g pnpm
|
npm install -g pnpm
|
||||||
echo "✅ pnpm安装完成: $(pnpm --version)"
|
echo "✅ pnpm安装完成: $(pnpm --version)"
|
||||||
fi
|
fi
|
||||||
@@ -91,12 +85,6 @@ jobs:
|
|||||||
echo "📦 配置pnpm缓存..."
|
echo "📦 配置pnpm缓存..."
|
||||||
export PATH=$PATH:/usr/local/bin
|
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缓存目录
|
||||||
PNPM_STORE_DIR="/opt/hostedtoolcache/pnpm-store"
|
PNPM_STORE_DIR="/opt/hostedtoolcache/pnpm-store"
|
||||||
mkdir -p "$PNPM_STORE_DIR"
|
mkdir -p "$PNPM_STORE_DIR"
|
||||||
@@ -113,12 +101,6 @@ jobs:
|
|||||||
echo "📦 检查并恢复依赖缓存..."
|
echo "📦 检查并恢复依赖缓存..."
|
||||||
export PATH=$PATH:/usr/local/bin
|
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)
|
CACHE_KEY=$(md5sum pnpm-lock.yaml | cut -d' ' -f1)
|
||||||
echo "缓存键: $CACHE_KEY"
|
echo "缓存键: $CACHE_KEY"
|
||||||
@@ -150,12 +132,6 @@ jobs:
|
|||||||
echo "📦 安装项目依赖..."
|
echo "📦 安装项目依赖..."
|
||||||
export PATH=$PATH:/usr/local/bin
|
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
|
# 检查是否已有node_modules
|
||||||
if [ -d "node_modules" ] && [ -f "node_modules/.pnpm-debug.log" ]; then
|
if [ -d "node_modules" ] && [ -f "node_modules/.pnpm-debug.log" ]; then
|
||||||
echo "✅ 检测到已存在的依赖,跳过安装"
|
echo "✅ 检测到已存在的依赖,跳过安装"
|
||||||
@@ -171,12 +147,6 @@ jobs:
|
|||||||
echo "💾 保存依赖缓存..."
|
echo "💾 保存依赖缓存..."
|
||||||
export PATH=$PATH:/usr/local/bin
|
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)
|
CACHE_KEY=$(md5sum pnpm-lock.yaml | cut -d' ' -f1)
|
||||||
echo "缓存键: $CACHE_KEY"
|
echo "缓存键: $CACHE_KEY"
|
||||||
@@ -199,30 +169,7 @@ jobs:
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
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: 构建项目
|
- name: 构建项目
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -230,12 +177,6 @@ jobs:
|
|||||||
echo "🔨 构建 Epic UI 前端项目..."
|
echo "🔨 构建 Epic UI 前端项目..."
|
||||||
export PATH=$PATH:/usr/local/bin
|
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
|
pnpm build
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user