diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml deleted file mode 100644 index 8b938a9..0000000 --- a/.gitea/workflows/ci.yaml +++ /dev/null @@ -1,201 +0,0 @@ -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 - container: - image: gitea-ci-bash:latest - steps: - - name: 检出代码 - shell: bash - run: | - echo "📥 检出代码到工作目录..." - echo "当前目录: $(pwd)" - echo "仓库: ${{ gitea.repository }}" - echo "分支: ${{ gitea.ref }}" - echo "提交: ${{ gitea.sha }}" - - # 解析分支名 - BRANCH_NAME=$(echo "${{ gitea.ref }}" | sed 's#refs/heads/##') - - # 拉取代码(使用token鉴权) - git clone --depth=1 -b "$BRANCH_NAME" "http://1c18ee1ab9a9cb291506d0c5c016a33be7d59e8c:x-oauth-basic@gitea.htoop.cn/${{ gitea.repository }}.git" . - if [ $? -ne 0 ]; then - echo "❌ 代码检出失败" - exit 1 - fi - - # 校验分支 - CURRENT_BRANCH=$(git rev-parse --abbrev-ref HEAD) - if [ "$CURRENT_BRANCH" != "$BRANCH_NAME" ]; then - echo "❌ 检出分支与预期不符: $CURRENT_BRANCH != $BRANCH_NAME" - exit 1 - fi - - # 校验提交 - CURRENT_COMMIT=$(git rev-parse HEAD) - if [ -n "${{ gitea.sha }}" ] && [ "$CURRENT_COMMIT" != "${{ gitea.sha }}" ]; then - echo "❌ 检出提交与预期不符: $CURRENT_COMMIT != ${{ gitea.sha }}" - exit 1 - fi - - echo "✅ 代码检出成功,分支和提交校验通过" - ls -la - - - name: 安装Go环境 - 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 - else - echo "📥 下载并安装Go..." - GO_VERSION="1.22.0" - GO_ARCH="linux-amd64" - 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" - ) - DOWNLOAD_SUCCESS=false - for mirror in "${MIRRORS[@]}"; do - echo "尝试从镜像下载: $mirror" - if wget -q --timeout=30 --tries=3 "$mirror" -O go.tar.gz; then - echo "✅ 下载成功: $mirror" - DOWNLOAD_SUCCESS=true - break - else - echo "❌ 下载失败: $mirror" - continue - fi - done - if [ "$DOWNLOAD_SUCCESS" = false ]; then - 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安装完成" - fi - - - name: 检查Go环境 - shell: bash - run: | - echo "🔍 检查Go环境..." - export PATH=$PATH:/usr/local/go/bin - go version - go env GOPATH - go env GOROOT - - - name: 下载依赖 - shell: bash - run: | - echo "📦 下载Go模块依赖..." - export PATH=$PATH:/usr/local/go/bin - echo "当前工作目录: $(pwd)" - echo "目录内容:" - ls -la - if [ -f "go.mod" ]; then - echo "✅ 找到go.mod文件" - cat go.mod | head -5 - else - echo "❌ 未找到go.mod文件" - 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 - - - name: 验证依赖 - shell: bash - run: | - echo "🔍 验证Go模块..." - export PATH=$PATH:/usr/local/go/bin - go mod verify - 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 "✅ 构建完成" - - - name: 检查构建产物 - shell: bash - run: | - echo "📦 构建产物信息:" - ls -la epic-game-service - echo "文件大小: $(du -h epic-game-service | cut -f1)" - - - name: 显示项目信息 - shell: bash - 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: 准备部署 - shell: bash - run: | - echo "🚀 准备部署..." - echo "运行器操作系统: ${{ runner.os }}" - echo "工作目录: ${{ gitea.workspace }}" - echo "任务状态: ${{ job.status }}" - mkdir -p deploy - cp epic-game-service deploy/ - cp -r manifest deploy/ - echo "📦 部署包已准备完成" - - - 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 - - name: 重启 Docker 容器 - shell: bash - run: | - 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 - elif command -v apk &> /dev/null; then - echo "http://mirrors.aliyun.com/alpine/v3.20/main" > /etc/apk/repositories - echo "http://mirrors.aliyun.com/alpine/v3.20/community" >> /etc/apk/repositories - apk update - apk add --no-cache docker-cli - elif command -v yum &> /dev/null; then - yum install -y docker - fi - fi - docker ps -a - docker restart epic-go - echo "✅ epic-go 容器已重启" \ No newline at end of file