diff --git a/.gitea/workflows/build-push.yml b/.gitea/workflows/build-push.yml index 2a02206..67514fe 100644 --- a/.gitea/workflows/build-push.yml +++ b/.gitea/workflows/build-push.yml @@ -3,71 +3,65 @@ name: Build and Push Edge Proxy Image on: create: tags: - - 'v*.*.*' # 1. 触发器已改回 Tag 模式 + - 'v*.*.*' # 1. 触发器:在创建 Tag 时运行 jobs: build-and-push: - runs-on: arm64 + runs-on: arm-builder # 确保这仍然是您新 Runner 的标签 steps: - # 步骤 1: 手动检出代码 (使用硬编码变量) - name: Manual Checkout run: | - set -e # 任何命令失败立即退出 + set -e - echo "正在手动检出代码... (使用硬编码路径)" + echo "正在手动检出代码... (生产 Tag 模式)" REPO_DIR="repo" rm -rf $REPO_DIR mkdir $REPO_DIR - # --- 变量硬编码 --- - # 您的 Runner 未提供 $GITEA_REPOSITORY_URL 和 $GITEA_REF_NAME - # 我们在此处手动定义它们 HARDCODED_REPO_URL="http://192.168.0.75:3000/guanyuankai/bonus-edge-proxy" - HARDCODED_BRANCH="cicd-testing" - # -------------------- + + # 2. (关键) 检查 $GITEA_REF_NAME (这应该是您的 Tag 名称, e.g., "v1.1.2") + echo "检查 Gitea 环境变量 (GITEA_REF_NAME)..." + if [ -z "$GITEA_REF_NAME" ]; then + echo "::error::GITEA_REF_NAME 环境变量未设置!" + echo "::error::此工作流应由一个 Tag 触发。" + exit 1 + fi + echo "Tag 名称 (GITEA_REF_NAME) = $GITEA_REF_NAME" - # 构造认证 URL - # 我们仍然假设 ${{ gitea.actor }} 和 ${{ secrets.cicd }} 会被 Runner 正确注入 REPO_URL_AUTH=$(echo "$HARDCODED_REPO_URL" | sed "s|://|://${{ gitea.actor }}:${{ secrets.cicd }}@|") REPO_URL_WITH_CREDS="${REPO_URL_AUTH}.git" - echo "开始克隆分支 $HARDCODED_BRANCH 到 $REPO_DIR 目录..." - git clone --quiet --branch $HARDCODED_BRANCH $REPO_URL_WITH_CREDS $REPO_DIR + # 3. (关键) 检出 $GITEA_REF_NAME (您的 Tag) + echo "开始克隆 Tag: $GITEA_REF_NAME 到 $REPO_DIR 目录..." + git clone --quiet --branch $GITEA_REF_NAME $REPO_URL_WITH_CREDS $REPO_DIR - echo "代码检出成功。检查 './repo' 目录内容:" - ls -la $REPO_DIR - echo "---" - echo "确认 'docker' 目录存在于 './repo' 内部:" - ls -la $REPO_DIR/docker - echo "---" + echo "代码检出成功。" - # 步骤 2: 登录 Gitea 容器注册表 - name: Login to Gitea Container Registry run: | echo ${{ secrets.cicd }} | docker login http://192.168.0.75:3000 -u ${{ gitea.actor }} --password-stdin - # 步骤 3: 构建并推送镜像 (使用硬编码版本) - name: Build and Push Image run: | - set -e # 任何命令失败立即退出 + set -e - echo "切换工作目录到 ./repo" cd repo - echo "已成功切换目录。当前工作目录 (pwd):" - pwd - - # --- 变量硬编码 --- - # 您的 Runner 未提供 $GITEA_REF_NAME,因此我们也必须硬编码版本 - VERSION="cicd-testing" - # -------------------- + # 4. (关键) 从 $GITEA_REF_NAME 动态生成版本号 + VERSION=$(echo $GITEA_REF_NAME | sed 's/v//') + if [ -z "$VERSION" ]; then + echo "::error::无法从 GITEA_REF_NAME ($GITEA_REF_NAME) 提取版本号" + exit 1 + fi IMAGE_PATH="192.168.0.75:3000/guanyuankai/bonus-edge-proxy:${VERSION}" LATEST_PATH="192.168.0.75:3000/guanyuankai/bonus-edge-proxy:latest" echo "Building and pushing $IMAGE_PATH..." + echo "Also pushing $LATEST_PATH..." docker buildx build \ --platform linux/arm64 \