Files
docker-registry/.drone.yml
danial 6f274a3e2e chore(ci): 优化基础镜像构建脚本并移除冗余文件
- 在 CI 脚本中增加对必需构建文件的校验,避免缺失文件导致构建失败
- 添加构建成功后镜像验证步骤,并输出镜像详情
- 移除 `kami-spider-monorepo` 目录下的 Dockerfile、Makefile、README.md 和入口脚本,简化项目结构
- 调整基础镜像构建脚本 `build-base-image.sh`,指定正确的 Dockerfile 文件名
- 更新 README 使其内容更加精简,聚焦于基础镜像构建和使用说明
2025-11-09 15:11:42 +08:00

124 lines
3.5 KiB
YAML

---
kind: pipeline
type: ssh
name: spider-base-image-builder
server:
host: 38.38.251.113:34156
user: root
password:
from_secret: www_password
clone:
depth: 50
steps:
- name: check-spider-changes
commands:
- echo "🔍 Checking for changes in kami-spider-monorepo directory..."
- |
BUILD_REQUIRED=false
SPIDER_DIR="kami-spider-monorepo"
echo "Build event: $DRONE_BUILD_EVENT"
echo "Branch: $DRONE_COMMIT_BRANCH"
if [ "$DRONE_BUILD_EVENT" = "push" ]; then
if git rev-parse --verify HEAD~1 >/dev/null 2>&1; then
CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD)
echo "Changed files:"
echo "$CHANGED_FILES"
SPIDER_CHANGED=$(echo "$CHANGED_FILES" | grep -E "^${SPIDER_DIR}/" || true)
if [ -n "$SPIDER_CHANGED" ]; then
echo "✅ Changes detected in ${SPIDER_DIR}:"
echo "$SPIDER_CHANGED"
BUILD_REQUIRED=true
else
echo "❌ No changes in ${SPIDER_DIR}"
fi
else
echo "First commit detected, building..."
BUILD_REQUIRED=true
fi
else
echo "Non-push event, building..."
BUILD_REQUIRED=true
fi
echo "$BUILD_REQUIRED" > /tmp/build_status
echo "Build required: $BUILD_REQUIRED"
- name: build-spider-base-image
commands:
- |
if [ -f /tmp/build_status ] && [ "$(cat /tmp/build_status)" = "true" ]; then
echo "🏗️ Building spider base image..."
if [ -d "kami-spider-monorepo" ]; then
cd kami-spider-monorepo
echo "Changed to: $(pwd)"
ls -la
# 检查所有必需的构建文件
REQUIRED_FILES=("build-base-image.sh" "Dockerfile.base" "pyproject.toml" "uv.lock")
ALL_FILES_EXIST=true
for file in "${REQUIRED_FILES[@]}"; do
if [ ! -f "$file" ]; then
echo "❌ Required file not found: $file"
ALL_FILES_EXIST=false
fi
done
if [ "$ALL_FILES_EXIST" = "true" ]; then
echo "✅ All required build files found"
chmod +x build-base-image.sh
# 设置环境变量并构建
export DOCKER_REGISTRY="git.oceanpay.cc/danial"
export VERSION="latest"
docker login git.oceanpay.cc -u $DOCKER_LOGIN -p $DOCKER_TOKEN
./build-base-image.sh
# 验证镜像构建成功
if docker images | grep "kami-spider-base" | grep "latest"; then
echo "✅ Spider base image built successfully"
echo "📊 Image details:"
docker images | grep kami-spider-base
else
echo "❌ Base image build failed - image not found"
exit 1
fi
docker logout git.oceanpay.cc
else
echo "❌ Missing required build files!"
echo "Current directory contents:"
ls -la
exit 1
fi
else
echo "❌ kami-spider-monorepo directory not found!"
fi
else
echo "⏭️ Skipping build - no spider changes"
fi
environment:
DOCKER_LOGIN:
from_secret: docker_login
DOCKER_TOKEN:
from_secret: docker_token
trigger:
branch:
- main
- master
- develop
- production
when:
event:
- push