Jenkins 持续集成
Jenkins 是一个可扩展的持续集成引擎,用于持续、自动地构建/测试/发布软件项目。Jenkins的主要目标是监控软件开发流程,提高开发人员的工作效率。Jenkins通过插件扩展其功能,目前可用插件丰富,基本上可以满足用户个性化的需求。
Jenkins
一、简介
这里介绍持续集成工具Jenkins,Jenkins 是一个可扩展的持续集成引擎,用于持续、自动地构建/测试/发布软件项目。Jenkins的主要目标是监控软件开发流程,提高开发人员的工作效率。Jenkins通过插件扩展其功能,目前可用插件丰富,基本上可以满足用户个性化的需求。正因为如此,jenkins的配置不可能完全讲到,但是大部分的配置都是有说明的,只要点击输入框后面的问号就可以了解使用的方法。
二、安装
Jenkins需要运行在Java 5及以上版本。 Jenkins可以从http://jenkins-ci.org/获取,通过直接运行jenkins.war包或者将war包部署到tomcat中启动,建议后者。 建议在catalina.sh中设置JAVA_OPTS Jenkins建议在tomcat中使用utf-8编码,配置tomcat下conf目录的server.xml文件。找到URIEncoding并设置为”UTF-8”
三、系统设置
- 主目录:Jenkins默认会是用户主目录下的.jenkins文件夹。如要修改,必须先停止jenkins服务。设置环境变量JENKINS_HOME
- 执行者数量:本机可以同时执行的构建数目
- 标记:给本节点加上标记,用于构建时可以人为指定到该节点
- 用法:尽可能的使用这个节点/只允许运行绑定到这台机器的Job
- 生成前等待时间:在一个构件开始前等待的秒数
- SCM签出重试次数:在签出失败时可以重试的次数
- Restrict project naming:命名规范,非必需
- 全局属性-Environment variables:添加环境变量,键值对形式 全局属性-Tool Locations:指定本机上某些工具的位置
- Maven Configuration-Default settings provider:Use default /Settings file
Maven Configuration-Default settings provider:Use default /Global Settings file
分别设置Maven的用户和全局的settings.xml文件位置,默认在${user.dir}/.m2/下和$MAVEN_HOME/conf/下
- JDK/Git/Ant/Maven等安装:按相关描述填写即可
- Maven项目配置-全局MAVEN_OPTS:Maven命令的参数,如-Xms512m -Xmx1g等 Maven项目配置-Local Maven Repository:本地maven仓库,一般默认即可
- Jenkins Location-Jenkins URL:可填写访问jenkins的url,如http://ip:port/jenkins/,为可选项,用于在邮件中生产Jenkins链接 Jenkins Location-系统管理员邮件地址:其实就是jenkins邮件通知的发件人
- 邮件通知-SMTP服务器:如smtp.XXX.com 邮件通知-使用SMTP认证:勾选”使用SMTP认证",输入用户名与密码
- SCM Polling-Max # of concurrent polling:定时检查源码并构件的最大并行数量
四、安全设置
Jenkins平台供许多用户共同使用,所以需要设置相应的权限来保证安全性。默认情况下所有用户都有管理员权限,没有任何限制。目前暂时设置成登录用户拥有任何权限,之后可根据需要做安全性限制。
- 启用安全:勾选”启用安全”,在访问控制的安全域选择”Jenkins专有用户数据库”,并勾选”允许用户注册”,在”授权策略”项选择合适的安全策略。
- 任何用户可以做任何事:没有任何限制,也是默认级别
- 安全矩阵:Jenkins安装以后,会有一个匿名用户,通过该匿名用户进入系统后,创建一个admin用户,分配它系统所有的权限,同时限制匿名用户的权限。
- 登录用户可以做任何事:即注册并登录之后具备任何权限
- 遗留模式:admin用户拥有系统的所有权限,其他所有用户只有只读权限。
- 项目矩阵授权策略:配置于安全矩阵是一模一样的,唯一的区别是项目矩阵授权策略支持在Job的配置页面再次配置授权策略。
五、管理节点
Jenkins支持分布式构建,目前只搭建了一台机器。 对于较大的代码集,可以将资源分摊在多个节点上,从而加速构建。Jenkins也能够让同一套代码在不同的环境中编译、测试等。 进入”新建节点”:
- of executors:最大同时构建数量
- 远程工作目录:节点的工作目录,该新建节点作为在分布式下的一个slave。如果目录不存在,会自动创建
- 标签:可以给slave加上一个或多个标签,通过标签选择slave
- 用法:尽可能的使用这个节点:这是默认和常用的设置。在这种模式下,Jenkins会尽可能的使用这个节点。 只允许运行绑定到这台机器的Job: 这种模式下,Jenkins只会构建分配到这台机器的Job
- 启动方法:Launch slave agents on Unix machines via SSH【推荐】:通过SSH通道连接节点。 Launch slave agents via Java Web Start:通过Java Web Start连接节点
- Availability:Keep this slave on-line as much as possible【推荐】:尽可能保持节点在线 Take this slave on-line according to a schedule:根据时间表在线(类似于Linux的定时任务) Take this slave on-line when in demand and off-line when idle:让Jenkins根据需求自动连接或者离线
六、构建项目
填写名称,这里以”构建一个自由风格的软件项目”为例进行介绍。其它的如maven项目等就更简单了。
- 勾选”丢弃旧的构建”:可以降低master节点的存储和Job的构建历史记录,根据自己需要进行设定
- ”参数化构建过程”:本质是在构建前让你和Job有个交互过程,交互结果以环境变量的方式参与到Job的构建中
- 关闭构建:重新开启构建前不允许进行新的构建,一般用于一些临时情况
- 在必要的时候并发构建:略
- Restrict where this project can be run:指定项目构建在指定的节点,填写节点的标签即可指定
-
如果有多个版本的工具,如jdk版本,此处可选择
高级项目选项: -
安静期:项目级别的在构建之前等待的秒数
-
重试次数:项目级别的签出重试次数
-
使用自定义的工作空间:可以自定义构建的工作目录
源码管理-Git: -
Repository URL:项目地址
-
Credentials:访问凭证,对于私有的项目可以通过ssh或者用户/密码访问
-
Branches to build:构建的分支,可以是,等等
-
Additional Behaviours:一些git相关的额外设置
构建触发器: -
Build whenever a SNAPSHOT dependency is built:当此项目所依赖的项目在jenkins中被构建
-
触发远程构建:通过身份令牌出发构建。可以通过远程附加token来触发构建
-
Build after other projects are built:在某个项目被构建后,构建此项目
-
Build periodically:按照指定的时间间隔进行自动构建,不管代码有没有变更。
-
Poll SCM:按照指定的时间间隔对SCM进行检测,如果代码库有更新则拉取后进行构建
增加构建步骤: -
Execute shell:通过shell命令构建
-
Invoke Ant:Ant脚本
-
Invoke top-level Maven targets:Maven构建,如clean install assembly:assembly
-
sbt:这里可以选择安装的sbt以及需要执行的命令
构建后操作: -
Archive the artifacts:将指定构建后的文件到jenkins的构建仓库中,当前路径为workspace,多项用逗号分隔
-
Build other projects:在本次构建完成之后执行的其它项目
-
邮件通知:这里建议选择Editable Email Notification,并在Triggers中选择触发的情景以及需要发送的对象
更多推荐
所有评论(0)