diff --git a/.gitea/workflows/build-push.yml b/.gitea/workflows/build-push.yml index 11dcd09..49bba30 100644 --- a/.gitea/workflows/build-push.yml +++ b/.gitea/workflows/build-push.yml @@ -15,29 +15,44 @@ jobs: # 适用于 Runner 无法访问外网,但可以访问 Gitea 实例的场景 - name: Manual Checkout run: | - echo "正在手动检出代码..." - echo "当前工作目录 (pwd):" - pwd - - # 1. 清理 Runner 的工作目录 (以防万一) - # '|| true' 确保在目录为空时命令不会失败 - echo "清理工作目录..." + echo "清理工作目录..." rm -rf * .gitea .git || true - # 2. 构造带有身份验证的 Git URL - # 我们将使用您用于 Docker 登录的 gitea.actor 和 secrets.cicd - - gitea.repository_url = http://192.168.0.75:3000/guanyuankai/bonus-edge-proxy - - # 转换后 = http://guanyuankai:YOUR_SECRET@192.168.0.75:3000/guanyuankai/bonus-edge-proxy.git - echo "构造 Git URL..." - REPO_URL_WITH_CREDS=$(echo "${{ gitea.repository_url }}" | sed "s|://|://${{ gitea.actor }}:${{ secrets.cicd }}@|").git + # ------------------------------------------------------------------ + # 步骤 2: 构造 Git URL (使用环境变量) + # ------------------------------------------------------------------ + # Gitea Runner 会自动将 gitea.repository_url 等上下文变量 + # 注入为 $GITEA_REPOSITORY_URL 这样的环境变量。 + # 这种方式比使用 ${{ ... }} 表达式更兼容、更健壮。 - # 3. 执行 Git Clone - # gitea.ref_name = "cicd-testing" (即您的分支名) - # --branch 指定分支, '.' 表示克隆到当前目录 - echo "开始克隆分支: ${{ gitea.ref_name }}" - git clone --quiet --branch ${{ gitea.ref_name }} $REPO_URL_WITH_CREDS . + # 打印变量以供调试 + echo "GITEA_REPOSITORY_URL = $GITEA_REPOSITORY_URL" + echo "GITEA_ACTOR = $GITEA_ACTOR" + echo "GITEA_REF_NAME = $GITEA_REF_NAME" + + # 检查关键变量是否已设置 + if [ -z "$GITEA_REPOSITORY_URL" ] || [ -z "$GITEA_ACTOR" ] || [ -z "$GITEA_REF_NAME" ]; then + echo "::error::一个或多个 Gitea 环境变量未设置!" + echo "::error::(GITEA_REPOSITORY_URL, GITEA_ACTOR, GITEA_REF_NAME)" + echo "::error::请检查您的 Gitea Runner 配置。" + exit 1 + fi + + # 构造认证 URL + # 1. 替换协议 (注意: ${{ secrets.cicd }} 是安全的,Runner 会正确处理它) + REPO_URL_AUTH=$(echo "$GITEA_REPOSITORY_URL" | sed "s|://|://${GITEA_ACTOR}:${{ secrets.cicd }}@|") + + # 2. 拼接 .git 后缀 (修复了之前的语法错误) + REPO_URL_WITH_CREDS="${REPO_URL_AUTH}.git" + + echo "构造的克隆 URL (已隐藏密码):" + echo "$GITEA_REPOSITORY_URL" | sed "s|://|://${GITEA_ACTOR}:***@|" + + # ------------------------------------------------------------------ + # 步骤 3: 执行 Git Clone + # ------------------------------------------------------------------ + echo "开始克隆分支: $GITEA_REF_NAME" + git clone --quiet --branch $GITEA_REF_NAME $REPO_URL_WITH_CREDS . echo "代码检出成功。当前目录内容:" ls -la