From 4072d33bed3743b64d88e26e1c13096c05eba0d4 Mon Sep 17 00:00:00 2001 From: GuanYuankai Date: Tue, 11 Nov 2025 13:23:03 +0800 Subject: [PATCH] manual checkout source code --- .gitea/workflows/build-push.yml | 48 ++++++++++++++++++++++++++++----- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/build-push.yml b/.gitea/workflows/build-push.yml index 0a5f1aa..6481750 100644 --- a/.gitea/workflows/build-push.yml +++ b/.gitea/workflows/build-push.yml @@ -1,30 +1,66 @@ name: Build and Push Edge Proxy Image on: - # create: - # tags: - # - 'v*.*.*' - branches: - - cicd-testing + push: + branches: + - cicd-testing # 保持在测试分支触发 jobs: build-and-push: runs-on: arm64 steps: + # 步骤 1: 手动检出代码 + # 替代 "uses: actions/checkout@v3" + # 适用于 Runner 无法访问外网,但可以访问 Gitea 实例的场景 + - name: Manual Checkout + run: | + echo "正在手动检出代码..." + echo "当前工作目录 (pwd):" + pwd + + # 1. 清理 Runner 的工作目录 (以防万一) + # '|| true' 确保在目录为空时命令不会失败 + 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 + + # 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 "代码检出成功。当前目录内容:" + ls -la + echo "---" + echo "确认 'docker' 目录存在:" + ls -la docker + 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: | + # 注意:您的 VERSION 变量现在是分支名 "cicd-testing" + # 这在测试阶段是OK的。 VERSION=$(echo ${{ gitea.ref_name }} | sed 's/v//') - 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..." + # 这里的路径 -f docker/Dockerfile.prod . 现在是正确的 docker buildx build \ --platform linux/arm64 \ -t $IMAGE_PATH \