44 lines
1.0 KiB
Bash
Executable File
44 lines
1.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# PR构建专用:只构建不输出,验证Dockerfile能否正常构建
|
|
# 无本地缓存(12个runner不共享,反而添乱),只用ACR远程缓存
|
|
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}"
|
|
if ! docker buildx inspect "$BUILDER_NAME" > /dev/null 2>&1; then
|
|
docker buildx create --use --name "$BUILDER_NAME" --driver docker-container
|
|
else
|
|
docker buildx use "$BUILDER_NAME"
|
|
fi
|
|
docker buildx inspect --bootstrap
|
|
|
|
echo "=== PR Build: build only, no output, remote cache only ==="
|
|
echo "Dockerfile: ${DOCKERFILE}"
|
|
echo "Image tag: ${IMAGE_TAG}"
|
|
echo ""
|
|
|
|
docker buildx build \
|
|
$NO_CACHE_FLAG \
|
|
$BUILD_ARGS \
|
|
--cache-from "type=registry,ref=${CACHE_REF}" \
|
|
-f "${DOCKERFILE}" \
|
|
-t "${IMAGE_TAG}" \
|
|
.
|
|
|
|
echo ""
|
|
echo "PR build OK (build only, no output): ${IMAGE_TAG}"
|