jenkins
sonar是一个用于代码质量管理的开放平台,通过插件机制,Sonar可以集成不同的测试工具,代码分析工具,
持续集成工具(Hudson/Jenkins)。
sonar并不是简单的把不同的代码检查结果(FindBugs, PMD)显示在web上,而是通过不同的插件对这些结果进行
再加工处理,通过量化的方式来度量代码质量的变化。
sonar是Codehaus上的一个开源项目,本身是为java设计,也可以通过插件实现对其他编程语言的支持。
Jenkins是一个开源软件项目,是基于java开发的一种持续集成工具,用于监控持续重复的工作,
持续,自动的构建/测试软件项目
CI(持续集成)已经成为当前很多软件开发团队在整个软件开发周期内侧重于保证代码质量的常见做法。
CI中的后起之秀,travis ci,也是一个开源的软件,也有相应的商用软件。
jenkins的官网,http://Jenkins-ci.org/ 下载最新的war文件,
jenkins的两种启动方法,(需要首先安装有JDK,或者JRE环境) (java打包后的程序后缀.jar/.war)
1) java -jar jenkins.war --httpPort=8081,之后在浏览器输入localhost:8081,localhost可以是本机的ip,也可以是计算机名,就可以打开jenkins。
2) 解压tomcat到某个目录下,进入tomcat下的bin目录,启动tomcat,将Jenkins.war文件放入tomcat的webapp目录下,启动tomcat时,会自动
在wenapps目录下建立Jenkins目录,在地址栏输入localhost:8081/jenkins来启动。
Jenkins中的插件安装有两种方式,
1) 插件官网,下载文件,然后把文件copy到Jenkins目录下的plugins文件夹下,
2) 在Jenkins下的插件管理界面,搜索,安装。
Jenkins下的权限管理控制,可以安装Role-based Authoriztion Strategy。也可以选择Jenkins下自带的授权控制。
Access control,一般根据公司IT部署,设置ldap server。
system config,可以设置,build执行的单元(node)个数,使用策略,系统的环境变量。
Jenkins下新建job,涉及到源码的管理,trigger的配置,构建的命令脚本。
源码的管理,如果是svn,需要配置svn repo,credentials。
trigger的配置,一般选择period或者PollSCM,也可以与其他job交织,由其他job trigger。(还有一个远程构建,即通过远程登录等方式来触发)
period,一段时间之后,自动build job。
Poll SCM,一段时间之后,如果代码有更新,在build job。
构建,linux下一般是sh脚本,windows下一般是bat脚本。
Jenkins下新建job的类型有几种,frestyle,pipeline等,重点介绍pipeline,主要是可以通过stage来进行分段的构建。
pipeline的job,可以通过代码库中的一个Jenkinsfile来完成job的部署,Jenkinsfile,有两种书写方式,Declarative Pipeline和Scripted Pipeline。
pipeline中的几个专用词,agent/node-----区分执行节点, stage----区分业务场景,例如比较多的build,test,deploy。step-----具体的代码执行。
pipeline的语法介绍,https://jenkins.io/doc/book/pipeline/syntax/
Declaration Pipeline是Jenkins Pipeline一种比较新的补充,用的较多。还有一些使用的语法选项,post的设置,options的设置。
post是指对build处理之后的返回值的处理。build返回的状态有fail,unstable,aborted等。
options,可以设置一些timeout,retry等。
Declaration Pipeline中也可以定义自己的enc和param。(通过安装Pipeline的插件,可以直接在Job页面中,看到Pipeline Syntax,之间生成响应的脚本)
Pipeline的script 代码可以直接放在业务代码中,通过checkout来实时配置jenkins,通过选项Pipeline script from SCM来实现。
https://blog.csdn.net/u011541946?t=1
https://blog.csdn.net/u011541946/article/category/7175041/1
需要安装的插件,
1) svn,完成代码访问。
2) extendmail,build完成之后,邮件通知开发者,jenkins也有自带mail插件。
采用smtp协议来传输邮件,端口号默认25,
smtp服务机器,IT部署的专门用来转发email的machine。
通过ssh端口映射到smtp server,再进行邮件的发送。
extendmail,内部有很多global env,可以直接在自定义的mail body中使用,来定值自己的邮件内容。
3) blueocean,美化界面。
4) Junit,处理build result。
要求每个build结束,之后,都要生成一个Junit format格式的xml文件,提供给Jenkins。
http://help.catchsoftware.com/display/ET/JUnit+Format
在配置过Jenkins之后,就可以在Jenkins中看到每个test的状态,与xml中的信息相同。
jira与jenkins之间可以相互集成,可以实现,jenkins部署失败的时候,自动往Jira上新增一条问题记录。
jira bug状态改变,自动触发构建事件,来部署相应的jenkins build。
https://blog.csdn.net/boonya/article/details/77885170