一、进入Jenkins

在浏览器输入网址:http://localhost:8080/jenkins/,进入Jenkins;



二、新建项目

首页左侧点击”新建“,输入项目名称和指定构建什么类型的项目;

其中,

构建一个自由风格的软件项目:Jenkins主要功能,结合任何SCM和任何构建系统构建项目,甚至可以构建软件以外的系统

构建一个maven项目:Jenkins利用指定POM.xml文件,大大减轻构建配置

构建一个多配置项目:如多环境测试、平台指定构建等

监控一个外部的任务:允许记录执行在外部Jenkins的任务,任务甚至运行在远程机器上

复制已存在的job:


这里,选择构建一个自由风格的软件项目;


三、项目配置

点击进入新建的项目,进行配置;

0 基本配置

丢弃旧的构建:可以只保留几天内的构建历史或只保留几个构建历史

参数化构建过程:可以配置参数,每次执行构建时需要给参数赋值

关闭构建:重新开启构建前不允许进行新的构建

在必要时并发构建:

Restrict where this project can be run:当配置slave节点后,通过该选择执行构建的节点,可以是master主机或slave节点


1 高级配置

安静期:一个任务计划中的构建在开始前需要读取开始前的配置信息;不选中则使用系统默认值

重复次数:若从版本库签除代码失败,则Jenkins会按指定次数重试后再放弃

该项目的上游项目正在构建时阻止该项目构建:当项目有依赖关系时,需要勾选

该项目的下游项目正在构建时阻止该项目构建:

使用自定义的工作空间:每个Jenkins任务都会有唯一一个工作空间目录,下载源代码,构建的整个过程都是在这个工作空间中

显示名称:仅供Jenkins Web页面显示


2 源码管理

Jenkins支持多种源码管理服务器;


这里选择Git,因为本文主旨就是搭建Jenkins+Github环境;

其中,

Repository URL是你的Github上代码更新会触发Jenkins的repo的ssh key;

Credentials是权限认证,需要添加,即输入访问该repo的用户名和密码;

源码库浏览器是该repo的URL,是可选的;



3 构建触发器

根据项目需要,选择触发Jenkins的方式;

其中,

Trigger builds remotely (触发远程构建,如使用远程脚本触发自动构建):可通过电子邮件触发项目构建,或通过脚本提交一个构建请求

Build after other projects are built (在其他项目构建完成后执行该构建):可设置多个依赖的jobs,当任意一个依赖的job成功构建后启动此构建,多个依赖的jobs之间用","隔开

Build periodically (定期构建):不管源码是否有更新,周期构建,在”日程表“中定义触发时间

Build when a change is pushed to Github (当源码更新推送到Github后执行该构建):

Poll SCM (定期检查源码是否更新):定时检查源码更新,有更新则执行构建,没有更新就不执行;在”日程表“中定义触发时间

其中,日程表用空格或Tab键分隔5个字段,分别代表"MINUTE(分钟,0~59)", "HOUR(小时,0~23)", "DOM(日,1~31)", "MONTH(月,1~12)", "DOW(星期,0~7)";


这里,选择Poll SCM,参数值为"H/2 * * * *",即设置每2分钟检查Github的指定repo有无源码更新;

(PS:对于Build when a change is pushed to Github,目前还没成功过);


4 构建环境

根据需要进行选择;

Delete workspace before build starts:构建执行前删除工作区

Abort the build if it's stuck:如果构建卡住,中止该构建

Add timestamps to the Console Output:在控制台添加时间戳

Use secret text(s) or file(s):使用密文


这里,选择添加时间戳;


5 构建

Execute Windows batch command:执行Windows命令行,默认当前路径是当前job的workspace

Execute shell:运行shell、python、perl、ruby等脚本

Invoke Ant:调用Ant构建

Ant Version:指定使用的Ant版本,下拉列表中显示系统配置中配置的所有Ant版本,不要选择Defualt

Targets:指定需要执行的Target,不填写时默认执行build脚本中的Default target

Build File:指定需要执行的build脚本文件,可使用绝对路径或相对路径,默认相对路径根目录是当前任务的workspace

Properties:指定Ant变量

Java Options:若需要添加用户自定义的ANT_OPTS,在这里添加,如-Xmx512m

Invoke top-level Maven targets:调用Maven构建

Maven Version:指定所使用的Maven版本

Goals:执行的Maven命令行,不需要加mvn

POM:指定pom.xml文件


这里,构建执行一个python程序;



6 构建后操作

Aggregate downstream test result:整合Downstream测试

Archive the artifacts:将生成的文件存档,如.zip/.jar文件,以备以后下载用

Build other projects:最常用操作,在一个构建任务完成后,可触发另一个构建任务,如部署任务完成后可触发下游任务自动化测试;根据不同场景选择不同的触发方式

Publish JUnit test result report:将JUnit Test报告打印到展示平台

Publish Javadoc:打印Javadoc

Record fingerprints of files to track usage:Jenkins记录一个文件的指纹,用来追踪该jar包是什么时间打的

Deploy war/ear to a container:将包部署到一个容器上,目前支持Tomcat、JBoss、Glassfish

WAR/EAR files:需要部署的war/ear包的文件,需要指定目录

Context path:

Container:选择容器,包括容器的对应版本

Manage user name:管理员的用户名

MAnager password:管理员的密码

Tomcat URL:Tomcat URL地址

Deploy on failure:配置任务失败时是否仍然部署

Email Notification:邮件通知

Editable Email Notification:



四、执行构建

1 手动执行

点击"立即构建(build now)";



执行结果:



2 自动执行

在Github指定repo上有源码更新,必须从本地push到远程主机;

更新到远程主机之后2分钟,Jenkins检测有更新,则自动触发构建执行;

执行结果:



Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐