From 77d582f13a1b02cb4b2f4762fe7534e28dde9875 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Sat, 29 Aug 2026 14:18:42 +0800 Subject: [PATCH] =?UTF-8?q?fix(ci):=20ensure=5Fpersistent=5Fbuilder=20?= =?UTF-8?q?=E5=B9=B6=E5=8F=91=E5=AE=89=E5=85=A8=20-=20create=20=E5=A4=B1?= =?UTF-8?q?=E8=B4=A5=E6=97=B6=E8=8B=A5=E5=B7=B2=E8=A2=AB=E5=B9=B6=E5=8F=91?= =?UTF-8?q?=20job=20=E5=88=9B=E5=BB=BA=E5=88=99=E5=A4=8D=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/ci/ensure_persistent_builder.sh | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/scripts/ci/ensure_persistent_builder.sh b/scripts/ci/ensure_persistent_builder.sh index 928dcbadf..0f3c45bdc 100755 --- a/scripts/ci/ensure_persistent_builder.sh +++ b/scripts/ci/ensure_persistent_builder.sh @@ -11,10 +11,21 @@ BUILDER="ci-builder-persist" if ! docker buildx inspect "$BUILDER" >/dev/null 2>&1; then echo "=== 创建持久 buildx builder: $BUILDER ===" - docker buildx create --name "$BUILDER" --driver docker-container \ - --driver-opt network=host \ - --buildkitd-flags "--allow-insecure-entitlement network.host" \ - --platform linux/amd64 + # 并发安全:matrix 多个 job 可能同时检测到 builder 不存在,只有一个 create 成功; + # 其余 job 的 create 会因 "builder already exists" 失败(set -e 下会退出)。 + # 用 create || inspect 兜底:create 失败时若 builder 实际已被别的 job 创建,直接复用。 + if ! docker buildx create --name "$BUILDER" --driver docker-container \ + --driver-opt network=host \ + --buildkitd-flags "--allow-insecure-entitlement network.host" \ + --platform linux/amd64 2>/tmp/_buildx_create.err; then + if docker buildx inspect "$BUILDER" >/dev/null 2>&1; then + echo "=== builder 已被并发任务创建,复用: $BUILDER ===" + else + echo "❌ builder 创建失败且不存在:" + cat /tmp/_buildx_create.err + exit 1 + fi + fi else echo "=== 复用持久 buildx builder: $BUILDER ===" fi