jobs: build-and-push: runs-on: arm64 steps: # 步骤 1: 手动检出代码 - name: Manual Checkout run: | set -e echo "正在手动检出代码..." REPO_DIR="repo" rm -rf $REPO_DIR mkdir $REPO_DIR echo "检查 Gitea 环境变量..." if [ -z "$GITEA_REPOSITORY_URL" ] || [ -z "$GITEA_ACTOR" ] || [ -z "$GITEA_REF_NAME" ]; then echo "::error::一个或多个 Gitea 环境变量未设置!" exit 1 fi REPO_URL_AUTH=$(echo "$GITEA_REPOSITORY_URL" | sed "s|://|://${GITEA_ACTOR}:${{ secrets.cicd }}@|") REPO_URL_WITH_CREDS="${REPO_URL_AUTH}.git" echo "开始克隆分支 $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 "---" # 步骤 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 echo "切换工作目录到 ./repo" cd repo echo "已成功切换目录。当前工作目录 (pwd):" pwd echo "当前目录内容 (ls -la):" ls -la 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..." docker buildx build \ --platform linux/arm64 \ -t $IMAGE_PATH \ -t $LATEST_PATH \ -f docker/Dockerfile.prod . \ --push