Files
java-template/test-build.sh
T
bruno 8c3881bf89 🚀 feat: 企业级CI/CD基础设施完整部署方案
✨ 新功能:
- 一键自动化部署脚本 (build-infra.sh)
- 统一端口配置 (3开头端口,避免冲突)
- 多平台Docker构建支持 (AMD64 + ARM64)
- Jenkins Configuration as Code (零手动配置)
- 完整的服务验证和健康检查

🏗️ 核心组件:
- Jenkins LTS + JDK21 (端口38080)
- Gitea 1.21 (端口33000, SSH: 32222)
- Docker Registry + UI (端口35001/35002)
- 统一cicd-network网络

📋 管理工具:
- 自动化部署和验证脚本
- 健康检查和日志管理工具
- 完整的文档和故障排查指南

🎯 已验证功能:
- 所有服务正常启动和运行
- API和Web界面完全可访问
- 多平台构建环境就绪
- 完整的CI/CD流水线支持

适用环境: Mac Studio M2 + Docker Desktop
2025-08-23 22:11:50 +08:00

90 lines
2.2 KiB
Bash
Executable File

#!/bin/bash
# 测试构建脚本 - 不实际部署,只检查配置
echo "🧪 测试构建脚本配置..."
BASE_DIR="/Users/brunogao/work/infra"
cd "$BASE_DIR"
# 测试1: 配置文件加载
echo "1. 测试配置文件加载..."
if source configs/global.env 2>/dev/null; then
echo "✅ 配置文件加载成功"
echo " - Gitea端口: $GITEA_PORT"
echo " - Jenkins端口: $JENKINS_PORT"
echo " - Registry端口: $REGISTRY_PORT"
else
echo "❌ 配置文件加载失败"
exit 1
fi
# 测试2: Docker Compose文件语法检查
echo ""
echo "2. 测试Docker Compose文件..."
compose_files=(
"docker/compose/gitea-compose.yml"
"docker/compose/jenkins-simple.yml"
"docker/compose/registry.yml"
)
for file in "${compose_files[@]}"; do
if docker-compose -f "$file" config >/dev/null 2>&1; then
echo "✅ $file 语法正确"
else
echo "❌ $file 语法错误"
docker-compose -f "$file" config 2>&1 | head -5
fi
done
# 测试3: 端口配置检查
echo ""
echo "3. 检查端口配置..."
expected_ports=("33000:3000" "32222:22" "38080:8080" "35000:50000" "35001:5000" "35002:80")
for port_mapping in "${expected_ports[@]}"; do
if grep -r "$port_mapping" docker/compose/ >/dev/null 2>&1; then
echo "✅ 端口映射 $port_mapping 已配置"
else
echo "⚠️ 端口映射 $port_mapping 未找到"
fi
done
# 测试4: 必要目录检查
echo ""
echo "4. 检查目录结构..."
required_dirs=(
"configs"
"docker/compose"
"docker/registry/auth"
"scripts/maintenance"
"scripts/utils"
)
for dir in "${required_dirs[@]}"; do
if [[ -d "$dir" ]]; then
echo "✅ 目录 $dir 存在"
else
echo "❌ 目录 $dir 不存在"
fi
done
# 测试5: 关键文件检查
echo ""
echo "5. 检查关键文件..."
required_files=(
"build-infra.sh"
"configs/global.env"
"docker/compose/jenkins/casc/jenkins.yaml"
"docker/registry/config.yml"
)
for file in "${required_files[@]}"; do
if [[ -f "$file" ]]; then
echo "✅ 文件 $file 存在"
else
echo "❌ 文件 $file 不存在"
fi
done
echo ""
echo "🎉 配置测试完成!您现在可以运行:"
echo " ./build-infra.sh --full-auto"