name: Epic Go Build & Deploy run-name: ${{ gitea.actor }} 正在构建 Epic Go 项目 🚀 on: push: branches: [ main, master, develop ] pull_request: branches: [ main, master ] jobs: build: runs-on: gitea_labels steps: - name: 检出代码 run: | echo "📥 检出代码到工作目录..." echo "当前目录: $(pwd)" echo "工作目录: ${{ gitea.workspace }}" - name: 安装Go环境 run: | echo "🔧 安装Go 1.22环境..." # 检查是否已安装Go if command -v go &> /dev/null; then echo "✅ Go已安装: $(go version)" else echo "📥 下载并安装Go..." # 下载Go 1.22 GO_VERSION="1.22.0" GO_ARCH="linux-amd64" GO_URL="https://go.dev/dl/go${GO_VERSION}.${GO_ARCH}.tar.gz" echo "下载Go ${GO_VERSION}..." wget -q ${GO_URL} -O go.tar.gz # 解压到/usr/local 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: 检查Go环境 run: | echo "🔍 检查Go环境..." export PATH=$PATH:/usr/local/go/bin go version go env GOPATH go env GOROOT - name: 下载依赖 run: | echo "📦 下载Go模块依赖..." export PATH=$PATH:/usr/local/go/bin go mod download echo "✅ 依赖下载完成" - name: 验证依赖 run: | echo "🔍 验证Go模块..." export PATH=$PATH:/usr/local/go/bin go mod verify echo "✅ 模块验证完成" - name: 构建项目 run: | echo "🔨 开始构建 Epic Go 项目..." export PATH=$PATH:/usr/local/go/bin go build -v -o epic-game-service main.go echo "✅ 构建完成" - name: 检查构建产物 run: | echo "📦 构建产物信息:" ls -la epic-game-service file epic-game-service echo "文件大小: $(du -h epic-game-service | cut -f1)" - name: 显示项目信息 run: | echo "📋 项目信息:" export PATH=$PATH:/usr/local/go/bin echo "Go 版本: $(go version)" echo "模块名称: $(go list -m)" echo "构建时间: $(date)" echo "分支: ${{ gitea.ref }}" echo "提交: ${{ gitea.sha }}" - name: 准备部署 run: | echo "🚀 准备部署..." echo "运行器操作系统: ${{ runner.os }}" echo "工作目录: ${{ gitea.workspace }}" echo "任务状态: ${{ job.status }}" # 创建部署包 mkdir -p deploy cp epic-game-service deploy/ cp -r manifest deploy/ echo "📦 部署包已准备完成"