[TOC]
## 配置开始
首先我们进入Jenkins页面中,如下
我们构建一个自由风格的项目,这也是相中用的比较多的
![](https://img.kancloud.cn/c4/1a/c41a7c790cdcf81be0b4bc84d16298dd_1197x926.png)
<br>
<br>
## 源码管理
![](https://img.kancloud.cn/41/cd/41cdd466b505bcd56502ed0d78370d4b_907x829.png)
这里默认是不使用任何原码管理,但是可以使用git或svn来进行原码管理,这里我使用git,操作如下
![](https://img.kancloud.cn/e2/e1/e2e1efccbe576f4f4c19aea1aafd8790_393x326.png)
首先将github上面的代码路径copy下来然后放入,Repositories URL
Repositories URL:存放项目路径
Credentials:如图下,按照自己的实际情况填写
选择Add按钮,添加github账户密码等信息
![](https://img.kancloud.cn/25/03/2503fdb39496c0aca667cbfab954b213_1438x757.png)
分支默认全在master分支下
<br>
<br>
## 触发器说明
![](https://img.kancloud.cn/ec/ed/eced640b9edff19cdea7ab06c4a43eca_1037x256.png)
build whenever a snapshot dependency is built,当job依赖的快照版本被build时,执行本job。
<br>
<br>
### 1:触发远程构建 (例如,使用脚本):
这里使用于自动化构建,拼接url后写入代码中可以实现在脚本或者工具执行构建
![](https://img.kancloud.cn/98/31/98317f1e46bac55325c3cbffde60f3d0_1391x367.png)
<br>
<br>
### 2:build after other projects are built,
当本job依赖的job被build时,执行本job
![](https://img.kancloud.cn/fd/11/fd1175e04b1d0ca7d49df0f3ba816a8e_1424x266.png)
* Trigger only if build is stable:只有在构建稳定时才触发
* Trigger even if the build is unstable:即使构建不稳定,也要触发
* Trigger even if the build fails:即使构建失败,也要触发
<br>
<br>
### 3:Build periodically:
定时执行构建任务,不管远程代码分支上的代码是否发生变化,都执行一次构建。
日程表的参数
第一个参数代表的是分钟 minute,取值 0~59;
第二个参数代表的是小时 hour,取值 0~23;
第三个参数代表的是天 day,取值 1~31;
第四个参数代表的是月 month,取值 1~12;
最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。
例如:H 2 \* \* \* 表示每天两点定时执行构建。
![](https://img.kancloud.cn/61/aa/61aa47eb73eab2c7c1f1b192070fb325_1415x200.png)
<br>
<br>
### 4:Build when a change is pushed to GitHub:
这个是github项目的触发规则
<br>
<br>
### 5:Poll SCM:
设置定时检查代码仓库是否有变更,有变更则构建
例如:H/5 \* \* \* \* 表示每隔五分钟去检查一遍代码仓库,如果代码发生变化则执行构建,否则不构建
![](https://img.kancloud.cn/1e/d8/1ed8c4fd5dd1b01f6d6f41ff876ea0a8_1407x244.png)
### 6:定时构建语法
~~~
* * * * *
~~~
第一个\*表示分钟,取值0~59
第二个\*表示小时,取值0~23
第三个\*表示一个月的第几天,取值1~31
第四个\*表示第几月,取值1~12
第五个\*表示一周中的第几天,取值0~7,其中0和7代表的都是周日
每隔5分钟构建一次
~~~
H/5 * * * *
~~~
每两小时构建一次
~~~
H H/2 * * *
~~~
每天中午下班前定时构建一次
~~~
0 12 * * *
~~~
每天下午下班前定时构建一次
~~~
0 18 * * *
~~~
每15分钟构建一次:H/15 \* \* \* \* 或\*/5 \* \* \* \*
每天8点构建一次:0 8 \* \* \*
每天8点~17点,两小时构建一次:0 8-17/2 \* \* \*
周一到周五,8点~17点,两小时构建一次:0 8-17/2 \* \* 1-5
每月1号、15号各构建一次,除12月:H H 1,15 1-11 \*
\*/5 \* \* \* \* (每5分钟检查一次源码变化)
0 2 \* \* \* (每天2:00 必须build一次源码)
<br>
<br>
## 构建环境
构建环境就是构建之前的一些准备工作,如指定构建工具(在这里我使用ant)。
![](https://img.kancloud.cn/85/e0/85e0704c05b64dca3be83d3df09b772f_1189x568.png)
**With Ant**:选择这个工具,并指定ant版本和jdk版本。这两个工具的版本我都事先在服务器上安装,并且在jenkins全局工具中配置好了。
<br>
<br>
## 构建
![](https://img.kancloud.cn/de/68/de68e20c4a074ca9e546956925eaebf7_382x250.png)
可以选择的项很多。这里就介绍"Invoke Ant" 和"Execute shell".
**Eexcute shell**: 执行shell命令,该工具是针对linux环境的,windows环境也有对应的工 具"Execute Windows batch command"。 在构建之前,可能我们需要执行一些命令,比如压缩包的解压之类的。为了演示,我就简单的执行 "echo $RANDOM" 这样的linux shell下生产随机数命令。
这里我选择使用Eecute shell
<br>
<br>
## **构建后操作**
![](https://img.kancloud.cn/81/b5/81b5c47115bdef14d891e01d782c6fcd_394x323.png)
构建后操作,就是对project构建完成后的一些后续操作,比如生成相应的代码测试报告。
![](https://img.kancloud.cn/69/43/694306d3b1faa10bbd7162a733ca56b0_1474x345.png)
**Publish Clover PHP Coverage Report**:发布代码覆盖率xml格式的文件报告。路径会在"build.xml"文件中定义
**Publish HTML reports**:发布代码覆盖率的HTML报告。
**Report Crap:** 发布crap报告
**E-mail Notification:** 邮件通知,构建完成后发邮件到指定的邮箱。
**以上配置完成后,点击保存。**