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