CI服务器
CI服务器,持续集成服务器,通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。本文搭建基于 Docker+Jenkis+Sonar+Nexus 的CI服务器。
环境准备
Docker环境准备(略),确信docker服务已安装并且docker命令可执行。
sudo docker
Nexus安装
1.安装
sudo docker search nexus
找到sonatype/nexus
sonatype/nexus Sonatype Nexus 51 [OK]
sudo docker pull sonatype/nexus
下载image完成后,启动nexus
sudo docker run -d -p 8081:8081 --name sonatype-nexus -v /app/nexus-data/sonatype-work:/sonatype-work sonatype/nexus:oss
映射容器8081
端口和数据存放目录/sonatype-work
到宿主机器上。
2.配置
访问 http://nexus:8081
默认管理员账号admin/admin123
登录。
Jenkins安装
1.安装
sudo docker search jenkins
找到官方image
jenkins Official Jenkins Docker image 553 [OK]
sudo docker pull jenkins
下载image
完成后,启动jenkins
sudo docker run --name jenkins -d -u root -p 8080:8080 -v /app/jenkins_home:/var/jenkins_home jenkins
映射容器8080
端口和数据存放目录/var/jenkins_home
到宿主机器上。
2.配置
访问 http://jenkins:8080
Sonar安装
1.安装
sudo docker search sonar
找到官方image
sonarqube SonarQube is an open source platform for c... 46 [OK]
sudo docker pull sonarqube
下载image
完成后,启动sonar
sudo docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube
映射容器9000
、9092
端口 到宿主机器上。
2.配置
访问 http://sonar:9000
默认管理员账号admin/admin
登录
开发部署实例
场景描述:现有多
module
的Maven项目qts
(量化择时系统),使用SVN做代码版本控制,需要通过CI服务器,做自动编译、发布、测试和代码质量检查。最终部署到SIT环境。
1.设置本地Maven的仓库为Nexus私有仓库并添加Sonar配置,需要修改settings.xml,
<settings>
<!-- 仓库设置Nexus -->
<mirrors>
<mirror>
<id>local_mirror</id>
<mirrorOf>*</mirrorOf>
<name>local_mirror</name>
<url>http://nexus:8081/content/groups/public/</url>
</mirror>
</mirrors>
<profiles>
<!-- Sonar 配置 -->
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<!-- optional URL to server. Default value is http://localhost:9000 -->
<sonar.host.url>http://sonar:9000/</sonar.host.url>
<sonar.jdbc.url>jdbc:h2:tcp://sonar/sonar</sonar.jdbc.url>
</properties>
</profile>
</profiles>
</settings>
2.打开Jenkins
管理控制台,进入系统配置
->管理插件
,安装以下插件:
*Maven Integration plugin //Maven集成插件
*Publish Over SSH //发布SSH工具
*SonarQube Plugin //Sonar插件
*Subversion Plug-in //Svn插件
进入系统配置
->系统设置
修改 Maven Configuration
,并按上步配置settings.xml
配置 SonarQube Runner
配置 Publish over SSH
,192.168.55.64
为SIT测试环境主机
3.新建 Qts-sit
项目
配置 Qts-sit
项目源码管理
https://192.168.55.61/svn/src_code/qts@HEAD
SVN项目地址,@HEAD
表示根据版本HEAD变化检查源码。
配置构建触发器,选择 Poll SCM
,定义轮询规则*/5 * * * *
表示5分钟轮询一次。
选择构建后操作步骤
->SonarQube
, 此配置节点通过Sonar Runner
自动任务,构建后把代码发布到Sonar做代码质量检查。
选择构建后操作步骤
->Send build artifacts over SSH
配置 Send build artifacts over SSH
,此配置节点通过SSH登录SIT测试服务器,执行Weblogic的redepoly
4.测试项目
本地开发人员修改代码并提交SVN,5分钟后,Jenkins将会自动构建、测试、并部署到SIT测试环境。在SIT测试环境已经可以查看到最新代码的变化。
点击SonarQube
,跳转到代码质量管理Sonar页面
5.Sonar 管理
sonar中可以对每个项目自定义代码质量检查规则,可以安装插件以支持多种开发语言,相关配置参考官方文档。