CI服务器

CI服务器,持续集成服务器,通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。本文搭建基于 Docker+Jenkis+Sonar+Nexus 的CI服务器。

环境准备

Docker环境准备(略),确信docker服务已安装并且docker命令可执行。
sudo docker

Nexus安装

1.安装

  1. sudo docker search nexus <br />找到sonatype/nexus<br /> sonatype/nexus Sonatype Nexus 51 [OK] <br />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登录。
image.pnghttp://nexus:8081

Jenkins安装

1.安装

sudo docker search jenkins <br />找到官方image<br />    jenkins                               Official Jenkins Docker image                   553       [OK]          <br />sudo docker pull jenkins <br />下载image完成后,启动jenkins<br />    sudo docker run --name jenkins -d -u root -p 8080:8080 -v /app/jenkins_home:/var/jenkins_home jenkins <br />映射容器8080端口和数据存放目录/var/jenkins_home 到宿主机器上。

2.配置

访问 http://jenkins:8080
image.pnghttp://jenkins:8080

Sonar安装

1.安装

sudo docker search sonar <br />找到官方image<br />     sonarqube                    SonarQube is an open source platform for c...   46        [OK]            sudo docker pull sonarqube <br />下载image完成后,启动sonar<br />    sudo docker run -d --name sonarqube -p 9000:9000 -p 9092:9092 sonarqube <br />映射容器9000、9092端口 到宿主机器上。

2.配置

访问 http://sonar:9000 默认管理员账号admin/admin登录
image.pnghttp://sonar:9000

开发部署实例

场景描述:现有多module的Maven项目qts(量化择时系统),使用SVN做代码版本控制,需要通过CI服务器,做自动编译、发布、测试和代码质量检查。最终部署到SIT环境。
1.设置本地Maven的仓库为Nexus私有仓库并添加Sonar配置,需要修改settings.xml,
local_mirror local_mirror http://nexus:8081/content/groups/public/ sonar true http://sonar:9000/ jdbc:h2:tcp://sonar/sonar
2.打开Jenkins管理控制台,进入系统配置->管理插件,安装以下插件:
Maven Integration plugin //Maven集成插件 Publish Over SSH //发布SSH工具 SonarQube Plugin //Sonar插件 Subversion Plug-in //Svn插件
进入系统配置->系统设置 修改 Maven Configuration,并按上步配置settings.xml
image.pnghttp://jenkins:8080
配置 SonarQube Runner
image.pnghttp://jenkins:8080
配置 Publish over SSH,192.168.55.64 为SIT测试环境主机
image.pnghttp://jenkins:8080
3.新建 Qts-sit 项目
image.pnghttp://jenkins:8080
配置 Qts-sit 项目源码管理
image.pnghttp://jenkins:8080
https://192.168.55.61/svn/src_code/qts@HEAD SVN项目地址,@HEAD 表示根据版本HEAD变化检查源码。
配置构建触发器,选择 Poll SCM,定义轮询规则
/5 表示5分钟轮询一次。
image.pnghttp://jenkins:8080
选择构建后操作步骤->SonarQube, 此配置节点通过Sonar Runner自动任务,构建后把代码发布到Sonar做代码质量检查。
image.pnghttp://jenkins:8080
选择构建后操作步骤->Send build artifacts over SSH
配置 Send build artifacts over SSH ,此配置节点通过SSH登录SIT测试服务器,执行Weblogic的redepoly
image.pnghttp://jenkins:8080
4.测试项目
本地开发人员修改代码并提交SVN,5分钟后,Jenkins将会自动构建、测试、并部署到SIT测试环境。在SIT测试环境已经可以查看到最新代码的变化。
image.pnghttp://jenkins:8080
点击SonarQube,跳转到代码质量管理Sonar页面
image.pnghttp://jenkins:8080
5.Sonar 管理
sonar中可以对每个项目自定义代码质量检查规则,可以安装插件以支持多种开发语言,相关配置参考官方文档。