Jenkins之持续构建
Jenkins持续构建
安装Script Security Plugin(这个不安装会有脚本漏洞)
安装Role-based Authorization Strategy
环境
Win10 64bit
jenkins 2.99
git 2.15.1
Maven 3.5
Sonarqube6.7.1
在windows安装git
下载地址https://github.com/waylau/git-for-win
下载后直接安装
配置环境变量PATH
Path=安装目录/bin
配置dipoly keys
1.生成**(公钥和私钥)
$ ssh-****** -t rsa -C "githubname" (注:githubname为github上的用户名)
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/think/.ssh/id_rsa):
Created directory '/c/Users/think/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/think/.ssh/id_rsa.
Your public key has been saved in /c/Users/think/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:NnCG2U5zjkjAOyH9ZmLrXmEFO4dv8wJB/xVC+sVCqb0 [email protected]
The key's randomart image is:
+---[RSA 2048]----+
| o. o .+.. |
| . +o O o.o . |
| . +X @oo + |
| =.+&.B.+ |
| . *= S +. |
| .. = +E |
| . . . . |
| .. . |
| .. |
+----[SHA256]-----+
注意:passphrase 要设置,并要牢记,之后会有用。
2. 复制公钥
$cat .ssh/id_rsa.pub (或是用编辑器打开c:/Users/think/.ssh/id_rsa.pub)
然后复制里面的所有内容。
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDZqS0OOS6TEDamoZ6S4hhokbVldsXMPFZnNR4dC+/zQ0ffpVkxPTGIkNDVuLeQmntmoBEbScCgAkRZAah4yAqDsuT/PBOf6cBmLTCVpqv/Kk0EkO+1Nn97uePIfWnszFENsvut5sq07lkmE3NHx6y2MzdabZYLsts3nq+Y6NnA4RNQbfAsBYdwSEfmgXMJumdYd50q4291d3cy0znYLB25N0MEzTeMF/ircBqJ7+12KoK+IOwipeJ+sF08U3fFgC/rPUkQ5lZYTrMf68DwUn3xtrMpy1TPDqeIiEHliH4+uJnaziSrBL0vIeJFpA/L8hmr0ARL/bOA0a70/r0il8iB think
3.设置dipoly keys
登入github,settings->dipoly keys->add dipoly keys,输入上面复制的公钥,title可以随便填。
4.生成的dipoly keys
到这dipoly keys配置完成了。
5.检测配置
$ssh -T [email protected]
Enter passphrase for key '/c/Users/think/.ssh/id_rsa':输入passphrase
Hi swy1314/game-of-life! You've successfully authenticated, but GitHub does not provide shell access.
如果出现You've successfully authenticated,表示配置是成功的。
6.关于Clone地址
配置了dipoly keys的githubname用户,Clone URL不能用https的地址,要用SSH的地址。
Https的地址:https://github.com/githubname/game-of-life.git
SSH的地址:[email protected]:githubname/game-of-life.git
Use HTTPS或Use SSH切换两种地址
安装Jenkins
安装插件
安装Git plugin
git源代码管理插件
安装Script Security Plugin(这个不安装会有脚本漏洞)
安装Role-based Authorization Strategy
角色权限管理插件,如果设置安全策略时不用角色授权策略,可以不用安装这个插件。
安装后,到全局安全配置中开启Role-Based Strategy
然后就有了Manage and Assign Roles这个系统管理项,到这里面去配置角色和分配权限
安装Audit Trail
跟踪用户行为插件,相当于用户的操作日志
然后在系统设置里配置
安装Job Config History
记录任务作业和系统配置的全部变更有历史的插件
然后在系统设置里配置
查看任务配置历史
系统设置
发送通知邮箱设置
全局工具配置
打开 系统配置->全局工具配置
配置GIT工具
如果是有linux环境,path地址为 安装目录/bin/git
配置JDK工具
配置MAVEN工具
Credentials
按图上说明配置。
配置任务作业
创建任务
配置任务
Git_ssh_private_key就是增加git资源管理凭证章节配置的
配置任务(项目)之间的依赖关系
配置上一个任务(项目)
配置下一个任务
配置邮箱通知
(1) 普通邮箱通知
普通邮箱通知,即在构建出现不稳定的时候,通知Recipents。通知内容格式已经由系统生成。Recipents配置的是要通知人员的邮箱,以逗号分隔开。
如果不选“每次不稳定的构建都发送邮件通知”,则只会在上个构建成功后的第一个不稳定构建发通知,之后连续出现的不稳定都不再发通知。
如果选择“单独发送邮件给构建造成不良影响的责任人”,则会通知对此次构建有修改的开发人员。目前些选项配置并不成功,不会通知责任人。有两个问题没搞清楚:如何知道责任人是谁?怎么知道责任人的邮箱?
(2) 定制邮箱通知
定制通知,会有很多触发器,不同的触发器根据需要可以通知不同的人。而且标题和内容等都是可以自己定义的。通过Jenkins内置的变更,提取需要的配置和作业信息。
系统设置
任务作业配置
代码质量检查和报告
配置sonarqube做代码质量检查报告。本文例子用的sonarqube是6.7.1版本。
安装插件
系统设置
Server authentication token由sonarqube服务器生成,步骤如下图:
全局工具配置
任务作业配置
任务作业配置有两种方法。
方法一:
(1) 打开sonar服务器上的SCM开关
(2) 任务作业配置SonarQube
Analysis properties配置:
# Required metadata
#可以随便取,但不能与sonar服务里项目重复
sonar.projectKey=game-of-life-default
#可以随便取,但不能与sonar服务里项目重复
sonar.projectName=game-of-life-default
sonar.projectVersion=1.0
# Comma-separated paths to directories with sources (required)
#源代码所在的目录,以逗号隔开,必须是/不能是\
sonar.sources=gameoflife-build/src,gameoflife-core/src/main/java,gameoflife-web/src/main/java
#编译后的文件目录,以逗号隔开,必须是/不能是\
sonar.java.binaries=gameoflife-build/target/classes,gameoflife-web/target/classes
# Language
sonar.language=java
# Encoding of the source files
sonar.sourceEncoding=UTF-8
方法二:
(1) 修改MAVEN的settings.xml配置:
<pluginGroups>
<pluginGroup>org.sonarsource.scanner.maven</pluginGroup>
</pluginGroups>
<profiles>
<profile>
<id>sonar</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<sonar.jdbc.url>
jdbc:mysql://localhost:3306/sonar?useUnicode=trueamp;characterEncoding=utf8
</sonar.jdbc.url>
<sonar.jdbc.driver>com.mysql.jdbc.Driver</sonar.jdbc.driver>
<sonar.jdbc.username>root</sonar.jdbc.username>
<sonar.jdbc.password>root</sonar.jdbc.password>
<sonar.host.url>http://localhost:9000</sonar.host.url>
</properties>
</profile>
</profiles>
<activeProfiles>
<activeProfile>sonar</activeProfile>
</activeProfiles>
(2) 任务作业配置MAVEVN的Goals