# 企业级Jenkins CI/CD平台配置指南 ## 🎯 平台特性 ### ✅ 企业级功能 - **配置即代码**:使用JCasC实现Jenkins配置自动化 - **多项目类型支持**:Java Maven/Gradle、Node.js、Python、.NET - **通用Pipeline模板**:无需编写复杂Jenkinsfile - **安全扫描集成**:依赖检查、镜像安全扫描 - **多环境部署**:测试、预发布、生产环境自动化部署 - **通知集成**:邮件、Slack、钉钉等多种通知方式 ### ✅ 开发友好 - **简化配置**:项目只需维护 `.ci-config.yml` 文件 - **自动检测**:自动识别项目类型和构建工具 - **并行构建**:支持多阶段并行执行,提升构建速度 - **智能缓存**:Maven仓库、Node模块等智能缓存 ## 🚀 快速部署 ### 1. 一键部署命令 ```bash # 克隆项目 git clone http://116.62.163.84:15006/wangtianqi/java_demo.git cd java_demo/jenkins-docker # 执行部署脚本 chmod +x deploy-enterprise.sh ./deploy-enterprise.sh ``` ### 2. 手动部署步骤 ```bash # 构建镜像 docker-compose build # 启动服务 docker-compose up -d # 查看状态 docker-compose ps ``` ## 🔧 项目接入指南 ### 1. 创建项目配置文件 在项目根目录创建 `.ci-config.yml`: ```yaml project: name: "my-project" type: "java-maven" # 或 java-gradle, nodejs, python build: jdk: "17" # Java项目专用 test: unit_tests: enabled: true coverage: threshold: 80 docker: enabled: true image_name: "my-project" deploy: target: "test" ``` ### 2. 创建简化Jenkinsfile ```groovy // 项目根目录的 Jenkinsfile @Library('ci-cd-shared-library') _ def pipelineTemplate = libraryResource 'templates/universal-pipeline.groovy' evaluate(pipelineTemplate) ``` ### 3. 在Jenkins中创建Pipeline 1. 新建Pipeline项目 2. 配置Git仓库 3. 指定Jenkinsfile路径 4. 保存并构建 ## 📋 支持的项目类型 ### Java Maven项目 ```yaml project: type: "java-maven" build: jdk: "17" maven: goals: ["clean", "compile", "test", "package"] profiles: ["default"] ``` ### Java Gradle项目 ```yaml project: type: "java-gradle" build: jdk: "17" gradle: tasks: ["clean", "build", "test"] ``` ### Node.js项目 ```yaml project: type: "nodejs" build: nodejs: version: "18" package_manager: "npm" build_command: "npm run build" test_command: "npm test" ``` ### Python项目 ```yaml project: type: "python" build: python: version: "3.9" requirements_file: "requirements.txt" test_command: "pytest" ``` ## 🔐 安全配置 ### 1. 凭据管理 平台预配置了以下凭据类型: - Git仓库访问凭据 - SSH部署凭据 - SonarQube访问令牌 - Docker仓库凭据 ### 2. 权限控制 - **管理员**:完整系统权限 - **开发人员**:项目构建和查看权限 - **只读用户**:仅查看权限 ### 3. 安全扫描 - **依赖漏洞扫描**:自动检查第三方依赖安全问题 - **Docker镜像扫描**:检查镜像中的安全漏洞 - **代码质量门禁**:SonarQube质量门禁 ## 🔄 CI/CD流程 ### 标准流程 1. **代码检出**:从Git仓库获取最新代码 2. **环境检测**:自动检测和配置构建环境 3. **并行分析**: - 代码编译 - 代码质量检查 4. **并行测试**: - 单元测试 - 集成测试 5. **SonarQube分析**:代码质量和安全分析 6. **制品构建**: - 应用打包 - Docker镜像构建 7. **安全扫描**: - 依赖安全扫描 - 镜像安全扫描 8. **自动部署**:根据分支策略自动部署 9. **部署验证**:健康检查和功能验证 ### 分支策略 - **main/master**:部署到生产环境(需要人工确认) - **develop**:部署到测试环境 - **feature/***:运行测试,不部署 - **release/***:部署到预发布环境 ## 📊 监控和通知 ### 构建监控 - 构建状态实时显示 - 构建历史和趋势分析 - 测试报告和覆盖率报告 - 代码质量趋势 ### 通知集成 支持多种通知方式: ```yaml notifications: email: enabled: true recipients: ["team@company.com"] slack: enabled: true channel: "#ci-cd" dingtalk: enabled: true webhook_url: "your-webhook-url" ``` ## 🛠️ 日常运维 ### 服务管理 ```bash # 启动服务 ./start.sh # 停止服务 ./stop.sh # 重启服务 ./restart.sh # 查看日志 ./logs.sh # Jenkins日志 ./logs.sh sonar # SonarQube日志 # 备份数据 ./backup.sh ``` ### 系统优化 1. **内存调优**:根据项目数量调整Jenkins内存 2. **并发控制**:配置合适的执行器数量 3. **缓存策略**:启用Maven、npm等缓存 4. **清理策略**:定期清理旧构建和工作空间 ## 🔧 故障排查 ### 常见问题 1. **构建失败**:检查项目配置和依赖 2. **部署失败**:验证SSH凭据和目标服务器 3. **插件问题**:重启Jenkins或重新安装插件 4. **性能问题**:增加内存或优化构建脚本 ### 调试技巧 ```bash # 查看容器状态 docker-compose ps # 查看详细日志 docker-compose logs -f jenkins # 进入容器调试 docker exec -it jenkins-custom bash # 检查网络连接 docker exec jenkins-custom curl -I http://116.62.163.84:15010 ``` ## 🚀 扩展开发 ### 自定义Pipeline模板 1. 修改 `pipeline-templates/universal-pipeline.groovy` 2. 添加新的项目类型支持 3. 扩展部署策略 ### 共享库开发 1. 创建Jenkins共享库项目 2. 实现通用构建方法 3. 在Jenkins中配置共享库 ### 插件集成 1. 在Dockerfile中添加新插件 2. 在JCasC配置中添加插件配置 3. 重新构建Jenkins镜像 这个企业级配置提供了完整的CI/CD解决方案,支持快速接入新项目,无需复杂的Jenkinsfile编写。