Files
xiaoxia-saas/scripts/ci/docker_build_only.sh
T
xiaoxia 3032177027
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 25s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 52s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 48s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 36s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Failing after 28s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Has been skipped
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 2m46s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 30s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m14s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 1m47s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 38s
AI Code Review / AI Code Review (pull_request) Successful in 2m49s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 3m6s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m36s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been cancelled
fix(ci): buildx失败自动回退docker build + main加diff-cover依赖
2026-07-24 09:34:36 +08:00

83 lines
1.9 KiB
Bash
Executable File
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
# PR构建专用:只构建不输出,验证Dockerfile能否正常构建
# 优先用buildx + 远程缓存,失败自动回退到普通docker buildDooD模式下buildx builder偶发崩溃)
set -eu
NO_CACHE_FLAG=""
if [ "$1" = "--no-cache" ]; then
NO_CACHE_FLAG="--no-cache"
shift
fi
DOCKERFILE="$1"
IMAGE_TAG="$2"
CACHE_REF="$3"
shift 3
BUILD_ARGS=""
for arg in "$@"; do
BUILD_ARGS="$BUILD_ARGS --build-arg $arg"
done
BUILDER_NAME="ci-pr-builder-${GITHUB_RUN_ID:-local}"
echo "=== PR Build: buildx + remote cache (attempt 1) ==="
echo "Dockerfile: ${DOCKERFILE}"
echo "Image tag: ${IMAGE_TAG}"
echo ""
# --- 尝试 buildx docker-container driver ---
if ! docker buildx inspect "$BUILDER_NAME" > /dev/null 2>&1; then
docker buildx create --use --name "$BUILDER_NAME" --driver docker-container 2>/dev/null || true
else
docker buildx use "$BUILDER_NAME" 2>/dev/null || true
fi
docker buildx inspect --bootstrap > /dev/null 2>&1 || true
set +e
docker buildx build \
$NO_CACHE_FLAG \
$BUILD_ARGS \
--cache-from "type=registry,ref=${CACHE_REF}" \
-f "${DOCKERFILE}" \
-t "${IMAGE_TAG}" \
--load \
.
BUILDX_EXIT=$?
set -e
if [ $BUILDX_EXIT -eq 0 ]; then
echo ""
echo "PR build OK (buildx): ${IMAGE_TAG}"
exit 0
fi
echo ""
echo "⚠️ buildx build失败,回退到普通docker build"
echo " 原因:buildx builder在DooD模式下偶发不稳定(graceful_stop / buildkitd.sock"
echo ""
# 清理 buildx builder
docker buildx rm "$BUILDER_NAME" 2>/dev/null || true
# --- 回退:普通 docker build ---
# 注意:普通docker build不支持远程缓存,但更稳定
set +e
docker build \
$NO_CACHE_FLAG \
$BUILD_ARGS \
-f "${DOCKERFILE}" \
-t "${IMAGE_TAG}" \
.
DOCKER_EXIT=$?
set -e
if [ $DOCKER_EXIT -eq 0 ]; then
echo ""
echo "PR build OK (fallback docker build): ${IMAGE_TAG}"
exit 0
fi
echo ""
echo "❌ PR build failed (both buildx and docker build)"
exit 1