bonus-edge-proxy/.gitea/workflows/build-push.yml
Workflow config file is invalid. Please check your config file: yaml: unmarshal errors: line 2: cannot unmarshal !!seq into model.Workflow

66 lines
2.6 KiB
YAML

# 步骤 1: 手动检出代码 (更新为克隆到 'repo' 子目录)
- name: Manual Checkout
run: |
echo "正在手动检出代码..."
# 1. 创建一个干净的目录
# 我们不再尝试清理 '..',而是克隆到一个新的子目录
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
# 2. 构造认证 URL
REPO_URL_AUTH=$(echo "$GITEA_REPOSITORY_URL" | sed "s|://|://${GITEA_ACTOR}:${{ secrets.cicd }}@|")
REPO_URL_WITH_CREDS="${REPO_URL_AUTH}.git"
# 3. 执行 Git Clone (克隆到 './repo' 目录)
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: 构建并推送镜像 (更新:增加了 cd repo)
- name: Build and Push Image
run: |
# ----------------------------------------------------
# 关键修复:进入我们检出代码的 'repo' 目录
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..."
# 这里的路径 -f docker/Dockerfile.prod .
# 现在是相对于 './repo' 目录的,这是正确的
docker buildx build \
--platform linux/arm64 \
-t $IMAGE_PATH \
-t $LATEST_PATH \
-f docker/Dockerfile.prod . \
--push