Jenkins非常详细的教程四(钩子程序,定时构建实现)

Jenkins教程四

  • 前言
    • Jenkins其余博客地址
    • Tomcat删除Jenkins步骤
  • 钩子程序
    • 远程触发Jenkins构建
    • Linux 的curl 命令
    • SVN钩子程序
      • 步骤:
      • 操作:
      • 测试
      • 补充
  • 定时设置
    • Jenkins定时设置示例
    • 定时设置规则

前言

Jenkins其余博客地址

当前博客为Jenkins终篇,建议看一次之前介绍的内容。对其会有更加深刻的体验,整个Jenkins知识点非常清晰,每一步都有截图内容,方便大家手动操作

Jenkins入门一(简介,安装,初始化)

Jenkins入门二(配置Maven,Svn)

Jenkins入门三(构建,部署项目)


Tomcat删除Jenkins步骤

首先删除Tomcat上部署的Jenkins是因为,我用了其他人给的Jenkins.war包。初始化Jenkins时因为版本原因导致插件安装不成功,后续为了省事直接将之前的额信息全部删除,下载最新的War包重新使用

  1. 关闭tomcat:./shutdown.sh
  2. 删除/webapps/jenkins下所有文件:rm -rf jenkins
  3. 删除配置文件:rm -rf /root/.jenkins/
  4. 把名称为jenkins的文件夹都删除了。find / -iname jenkins | xargs -n 1000 rm -rf
1. ./shutdown.sh
2. cd webapps
3. rm -rf jenkins
4. rm -rf jenkins.war
5. rm -rf /root/.jenkins/
6. find / -iname jenkins | xargs -n 1000 rm -rf

钩子程序

远程触发Jenkins构建

这一块的内容我在上一篇博客中也有讲述,为了整体的连贯性在这里在粘贴了一份,如果看过这块的内容直接看 钩子程序触发构建即可。

首先进入apple项目的页面,进入配置,选择 构建触发器。勾选触发远程构建。
可以看到Jenkins还提供了定时构建等等的策略
Jenkins非常详细的教程四(钩子程序,定时构建实现)_第1张图片
配置结束后,不要忘记点击保存按钮哎
Jenkins非常详细的教程四(钩子程序,定时构建实现)_第2张图片
Jenkins非常详细的教程四(钩子程序,定时构建实现)_第3张图片
Jenkins非常详细的教程四(钩子程序,定时构建实现)_第4张图片
最终的访问路径:http://192.168.20.128:8080/jenkins/job/apple/build?token=zhzhouq 此时就不是我们手动点击构建了,而是通过浏览器访问的url地址触发Jenkins执行构建程序。


Linux 的curl 命令

Linux 的curl 命令用来发送HTTP 请求。
-X 参数:指定请求方式
-v 参数:显示响应结果
-u 参数:携带用户名/密码
-H 参数:携带请求消息头信息

curl -X post -v -u [Jenkins 用户名]:[Jenkins 密码] -H "请求消息头信息" http://[服务器IP 地址]:[服务器端口号]/jenkins/job/[Jenkins 项目名称]/build?token=[身份验证令牌]
# 解析这个命令
curl :固定格式
-X post :post请求方式
-v:显示响应结果
-u:[Jenkins 用户名]:[Jenkins 密码]
-H:[请求头信息]
至于接下来的内容就是我们远程通过浏览器访问触发Jenkins构建的那个地址

而整合起来的这么一串代码,是需要配置在SVN提供的钩子程序文件中的


SVN钩子程序

步骤:

  1. 钩子程序由svn生成的 post-commit.tmpl 文件复制得到,这里注意不要使用任何扩展名。如果按照我们习惯的使用.sh 扩展名则钩子程序无法正常工作。
  2. 使用chmod 命令设置为可执行权限
  3. 把原有内容注释,加入curl 命令

操作:

1. 复制钩子程序
进入SVN服务器上当前项目仓库的位置,进入hooks目录,复制一份post-commit.tmpl 文件,不要携带后缀名:post-commit
Jenkins非常详细的教程四(钩子程序,定时构建实现)_第5张图片


2. 授权
chmod 777 post-commit


3. 编辑复制的文件
按照上述的要求先获取 admin的密码值为:2934fc74122141cc98ef7d24a9a9e6d7

Jenkins非常详细的教程四(钩子程序,定时构建实现)_第6张图片

命令汇总

# 复制钩子程序
cd /var/svn/workspace/jenkins
cd hooks
cp post-commit.tmpl post-commit

# 获取admin用户密码
cd /root/.jenkins/secrets
vi initialAdminPassword

# 编辑post-commit文件
vim post-commit

# 加入以下内容,随着自己设置的不同值进行一个修改
curl -X post -v -u admin:2934fc74122141cc98ef7d24a9a9e6d7 
http://192.168.20.128:8080/jenkins/job/apple/build?token=zhzhouq

测试

进入eclipse,修改文件内容进行提交。会发现此时已经触发了Jenkins进行构建
Jenkins非常详细的教程四(钩子程序,定时构建实现)_第7张图片

通过浏览器,访问项目内容:
Jenkins非常详细的教程四(钩子程序,定时构建实现)_第8张图片
从tomcat上webapps目录下的war包修改时间也能体现出来
Jenkins非常详细的教程四(钩子程序,定时构建实现)_第9张图片


补充

如果Jenkins 服务器从SVN 服务器下载代码不是最新版的情况,(也就是我代码提交之后没有生效,当我再次提交的时候上一次提交的才会生效)遇到这种有时间差,或者代码版本差异的情况下,那么就在SVN服务器的URL 地址后面加上@HEAD 强制要求下载最新版。如图:
Jenkins非常详细的教程四(钩子程序,定时构建实现)_第10张图片


定时设置

Jenkins定时设置示例

进入Jenkins首页,选择我们的apple任务,点击构建触发器,勾选Build periodically
设置定时构建的规则,下图中的意思为 每2分钟执行一次。
Jenkins非常详细的教程四(钩子程序,定时构建实现)_第11张图片

Jenkins非常详细的教程四(钩子程序,定时构建实现)_第12张图片

定时设置规则

Jenkins非常详细的教程四(钩子程序,定时构建实现)_第13张图片

常用规则示例:

每隔5分钟构建一次
H/5 * * * *

每两小时构建一次
H H/2 * * *

每天中午12点定时构建一次
H 12 * * *

每天下午18点定时构建一次
H 18 * * *

在每个小时的前半个小时内的每10分钟
H(0-29)/10 * * * *

每两小时45分钟,从上午9:45开始,每天下午3:45结束
45 9-16/2 * * 1-5

每两小时一次,每个工作日上午9点到下午5点(也许是上午10:38,下午12:38,下午2:38,下午4:38)
H H(9-16)/2 * * 1-5

你可能感兴趣的:(工程工具汇总)