diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 8b938a9..edf0c42 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -1,5 +1,5 @@ -name: Epic Go Build & Deploy -run-name: ${{ gitea.actor }} 正在构建 Epic Go 项目 🚀 +name: Epic UI Build & Deploy +run-name: ${{ gitea.actor }} 正在构建 Epic UI 前端项目 🚀 on: push: branches: [ main, master, develop ] @@ -48,27 +48,25 @@ jobs: echo "✅ 代码检出成功,分支和提交校验通过" ls -la - - name: 安装Go环境 + - name: 安装Node.js环境 shell: bash run: | - echo "🔧 安装Go 1.22环境..." - if [ -x /usr/local/go/bin/go ]; then - echo "✅ Go已安装: $(/usr/local/go/bin/go version)" - export PATH=$PATH:/usr/local/go/bin + echo "🔧 安装Node.js环境..." + if command -v node &> /dev/null; then + echo "✅ Node.js已安装: $(node --version)" + echo "✅ npm已安装: $(npm --version)" else - echo "📥 下载并安装Go..." - GO_VERSION="1.22.0" - GO_ARCH="linux-amd64" + echo "📥 下载并安装Node.js..." + NODE_VERSION="18.19.0" + NODE_ARCH="linux-x64" MIRRORS=( - "https://mirrors.aliyun.com/golang/go${GO_VERSION}.${GO_ARCH}.tar.gz" - "https://mirrors.huaweicloud.com/golang/go${GO_VERSION}.${GO_ARCH}.tar.gz" - "https://mirrors.tencent.com/go/go${GO_VERSION}.${GO_ARCH}.tar.gz" - "https://go.dev/dl/go${GO_VERSION}.${GO_ARCH}.tar.gz" + "https://mirrors.aliyun.com/nodejs-release/v${NODE_VERSION}/node-v${NODE_VERSION}-${NODE_ARCH}.tar.xz" + "https://nodejs.org/dist/v${NODE_VERSION}/node-v${NODE_VERSION}-${NODE_ARCH}.tar.xz" ) DOWNLOAD_SUCCESS=false for mirror in "${MIRRORS[@]}"; do echo "尝试从镜像下载: $mirror" - if wget -q --timeout=30 --tries=3 "$mirror" -O go.tar.gz; then + if wget -q --timeout=30 --tries=3 "$mirror" -O node.tar.xz; then echo "✅ 下载成功: $mirror" DOWNLOAD_SUCCESS=true break @@ -81,81 +79,95 @@ jobs: echo "❌ 所有镜像源下载失败" exit 1 fi - echo "解压Go到/usr/local..." - tar -C /usr/local -xzf go.tar.gz - export PATH=$PATH:/usr/local/go/bin - export GOROOT=/usr/local/go - export GOPATH=$HOME/go - echo "验证Go安装..." - /usr/local/go/bin/go version - rm go.tar.gz - echo "✅ Go安装完成" + echo "解压Node.js到/usr/local..." + tar -C /usr/local -xJf node.tar.xz --strip-components=1 + export PATH=$PATH:/usr/local/bin + echo "验证Node.js安装..." + node --version + npm --version + rm node.tar.xz + echo "✅ Node.js安装完成" fi - - name: 检查Go环境 + - name: 检查Node.js环境 shell: bash run: | - echo "🔍 检查Go环境..." - export PATH=$PATH:/usr/local/go/bin - go version - go env GOPATH - go env GOROOT + echo "🔍 检查Node.js环境..." + export PATH=$PATH:/usr/local/bin + node --version + npm --version + echo "Node.js路径: $(which node)" + echo "npm路径: $(which npm)" + + - name: 安装pnpm + shell: bash + run: | + echo "📦 安装pnpm包管理器..." + export PATH=$PATH:/usr/local/bin + if command -v pnpm &> /dev/null; then + echo "✅ pnpm已安装: $(pnpm --version)" + else + echo "📥 安装pnpm..." + npm install -g pnpm + echo "✅ pnpm安装完成: $(pnpm --version)" + fi - name: 下载依赖 shell: bash run: | - echo "📦 下载Go模块依赖..." - export PATH=$PATH:/usr/local/go/bin + echo "📦 下载前端项目依赖..." + export PATH=$PATH:/usr/local/bin echo "当前工作目录: $(pwd)" echo "目录内容:" ls -la - if [ -f "go.mod" ]; then - echo "✅ 找到go.mod文件" - cat go.mod | head -5 + if [ -f "package.json" ]; then + echo "✅ 找到package.json文件" + cat package.json | head -10 else - echo "❌ 未找到go.mod文件" + echo "❌ 未找到package.json文件" exit 1 fi - export GO111MODULE=on - export GOPROXY=https://goproxy.cn,direct - echo "Go环境变量:" - echo "GOPROXY: $GOPROXY" - echo "GO111MODULE: $GO111MODULE" - go mod download - echo "✅ 依赖下载完成" - echo "已下载的模块:" - go list -m all | head -10 + echo "使用pnpm安装依赖..." + pnpm install + echo "✅ 依赖安装完成" - name: 验证依赖 shell: bash run: | - echo "🔍 验证Go模块..." - export PATH=$PATH:/usr/local/go/bin - go mod verify - echo "✅ 模块验证完成" + echo "🔍 验证项目依赖..." + export PATH=$PATH:/usr/local/bin + pnpm list --depth=0 + echo "✅ 依赖验证完成" - name: 构建项目 shell: bash run: | - echo "🔨 开始构建 Epic Go 项目..." - export PATH=$PATH:/usr/local/go/bin - go build -v -o epic-game-service main.go + echo "🔨 开始构建 Epic UI 前端项目..." + export PATH=$PATH:/usr/local/bin + pnpm build echo "✅ 构建完成" - name: 检查构建产物 shell: bash run: | echo "📦 构建产物信息:" - ls -la epic-game-service - echo "文件大小: $(du -h epic-game-service | cut -f1)" + if [ -d "dist" ]; then + echo "✅ 找到dist目录" + ls -la dist/ + echo "dist目录大小: $(du -sh dist | cut -f1)" + else + echo "❌ 未找到dist目录" + exit 1 + fi - name: 显示项目信息 shell: bash run: | echo "📋 项目信息:" - export PATH=$PATH:/usr/local/go/bin - echo "Go 版本: $(go version)" - echo "模块名称: $(go list -m)" + export PATH=$PATH:/usr/local/bin + echo "Node.js 版本: $(node --version)" + echo "npm 版本: $(npm --version)" + echo "pnpm 版本: $(pnpm --version)" echo "构建时间: $(date)" echo "分支: ${{ gitea.ref }}" echo "提交: ${{ gitea.sha }}" @@ -168,22 +180,22 @@ jobs: echo "工作目录: ${{ gitea.workspace }}" echo "任务状态: ${{ job.status }}" mkdir -p deploy - cp epic-game-service deploy/ - cp -r manifest deploy/ + cp -r dist/* deploy/ echo "📦 部署包已准备完成" - - name: 复制构建产物到目标目录并重命名 + - name: 复制构建产物到目标目录 shell: bash run: | - echo "📤 复制构建产物到 /opt/dockeropt/epic-go 并重命名为 main ..." - mkdir -p /opt/dockeropt/epic-go - cp epic-game-service /opt/dockeropt/epic-go/main - echo "✅ 构建产物已复制并重命名为 /opt/dockeropt/epic-go/main" - ls -l /opt/dockeropt/epic-go + echo "📤 复制构建产物到 /opt/dockeropt/epic-ui ..." + mkdir -p /opt/dockeropt/epic-ui + cp -r dist/* /opt/dockeropt/epic-ui/ + echo "✅ 构建产物已复制到 /opt/dockeropt/epic-ui" + ls -la /opt/dockeropt/epic-ui/ + - name: 重启 Docker 容器 shell: bash run: | - echo "♻️ 重启 epic-go 容器..." + echo "♻️ 重启 epic-ui 容器..." if ! command -v docker &> /dev/null; then if command -v apt-get &> /dev/null; then apt-get update && apt-get install -y docker.io @@ -197,5 +209,5 @@ jobs: fi fi docker ps -a - docker restart epic-go - echo "✅ epic-go 容器已重启" \ No newline at end of file + docker restart epic-ui + echo "✅ epic-ui 容器已重启" \ No newline at end of file