写在前面的话

在 Jenkins 中有那么一些功能,可能你几乎不会怎么用到,但是某些时候又能够帮助你解决一些很麻烦的事情。我这里单独的把这些小配置抽离出来作为一个单独章节。很多配置不需要记得,但是要知道,知道 Jenkins 本身是有提供给我们这个功能的。

定时构建

关于定时构建,可以举个简单的例子,比如我们某些特别的项目,我们需要每过一段时间就去更新它。有可能这类服务是随时都在修改的,但是我们又不能每次修改都去更新,那样会导致更新过于频繁,所以我们希望每隔一段时间更新一次。

这样的功能在 Jenkins 创建的任务中是有提供给我们的:

在创建的任务中的构建触发器这一栏存在该功能。下面简单的该配置的写法进行说明:

这里的写法类似于 Linux 的 Cron 定时任务:* * * * *,分(0–59) 时(0-23) 日(1-31) 月(1-12) 周(1-7)

加入我们希望他每周一早上 8 点 50 自动执行一次构建,可以这样写:

50 8 * * 1

或者每五分钟执行一次:

*/5 * * * *

当然,在 Jenkins 中为我们提供了更加灵活的调度,使用 H 来替代:

H 的作用在于它能够根据我们目前机器的使用情况灵活执行,我们只需要知道有这个东西即可!

参数化构建

参数化构建是我们非常常用的功能,我目前在用的所有构建都依赖于参数化构建,通过传参实现不同的构建配置需求。

我们可以一开始添加自己想配置的参数,并在接下来的配置中通过变量引用的方式使用它:

比如我们这里随便配置了两个变量,一个是普通的字符变量,一个选项变量。我们在后面引用它。

比如在构建的时候引用:

引用方法就和 Shell 中的变量一样。此时我们执行构建:

可以看到此时构建时候多了一步,就是传参,之前我们设置的相当于默认参数,这里还可以继续进行修改。开始构建

打开控制台输出可以明确的看到,我们执行的两个 echo:

当然,Jenkins 本身也自己提供了很多内部的变量可以提供给我们调用,在这类可以填写变量地方一般都会有链接提示,比如:

触发构建

触发构建可以分为几种:

1. 执行该构建完成后,去触发执行其它某个构建。

2. 该构建监听其他构建,其他构建执行后触发该构建。

3. 通过其他服务变更触发本构建(这个后面单独讲解)。

对于第一种,在构建后操作的地方可以配置:

我们可以在这里配置想要触发的构建:

对于第二种,在配置的一开始就有个 其他工程构建触发 选项,可以配置其他任务的名字,只要那个任务构建,就可以根据配置的规则执行当前的任务:

任务管理

对于一个公司而言,可能会出现很多项目都集中在一个 Jenkins 上面,这样就会导致我们首页打开如果显示所有,就会项目特别多,特别不好管理。Jenkins 为我们提供了两种方式,一种是视图(view),一种是文件夹(folder)。

1. 对于视图方式,很简单:

点击这里就可以添加视图,可以选择类型:

我们可以往该视图中添加任务,一种是直接勾选,另外一种给就是正则表达式匹配,因为一开始我们的名字改的有意义,所以我一般用正则。

此时可以看到测试视图:

我们可以通过侧边菜单再度进行该视图的编辑:

2. 另外一种就是 folder 的方式,这其实是一种比视图更好的一种管理方式,我们把同类型的项目放到指定文件夹,也便于我们进行权限管理。

在新建任务的时候可以:

此时首页就可以看到文件夹:

我们可以在该文件夹里面按照和之前一样的方式进行视图创建,任务创建:

复制项目

一个公司的项目往往在构建的时候配置大同小异,如果我们每添加一个都去手动配置一遍,那太麻烦了。好在 Jenkins 为我们提供了复制功能。

输入复制后的任务名称,填写需要复制的任务名称,创建就可以了。

我们再做做简单的修改,就是另外一个项目的构建配置了。

Jenkins 主从

对于 Jenkins 主从,我这里只是一个简单的进行说明, 因为只有一台机器,所以就不做配置了。

Jenkins 提供了分布式管理方式,这意味着我们通过在 Master 配置构建任务,执行构建任务的时候能够被分配到另外一台机器去执行。

这种情况适用于公司业务比较大,项目多,可能同时需要很多构建的情况。

打开:系统管理 --> 节点管理

我们可以在这里添加 Slave 节点,具体操作网上有很多,可以去参考。

执行脚本

在 Jenkins 构建的时候,我们可以执行 Shell,这意味着,我们可以通过 Shell 来执行服务器本地的脚本。

我们新建 /tmp/test.sh 作为测试:

#!/bin/sh

echo 'Hello World'
echo $1

修改构建:

可以顺便给脚本传值,执行查看:

小结

本节的内容大多都是一些小功能,算是对于我们执行任务或者管理 Jenkins 的一些优化。当然其他的肯定不止这些。后面会针对某些比较重要的功能进行具体的讲解。

【04】Jenkins:基本功能补充说明的更多相关文章

  1. EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充

    EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) EO理论上 ...

  2. ubuntu 16.04 jenkins pipline的实现 最终docker启动服务

    准备工作:两台虚拟机A:192.168.1.60 B:192.168.1.61 C:一个存放代码的代码库(github)A:jenkins git docker openssh-server(ssh) ...

  3. Ubuntu 14.04下安装功能强大的屏幕截图软件 Shutter

    [注释]试用了一下,果然很强大,牛逼 一款功能强大的屏幕截图软件——Shutter,Shutter最基本的就是截图功能了,在设计上可以自由选定区域,同时选定之 后依然可以通过上下左右四个地方来改变选区 ...

  4. FasterRunner (httptunner+django)搭建以及小功能补充

    配置 下载地址https://github.com/httprunner/FasterRunner 后端配置https://www.jianshu.com/p/e26ccc21ddf2 前端配置htt ...

  5. Ubuntu 16.04 开启休眠功能

    因为休眠功能在部分计算机无法正常工作,所以Ubuntu默认是不开启休眠功能. 要想开启休眠功能先进行如下测试: 1.先检查是否有交换分区(swap),如果有确认交换分区至少和实际可用内存一样大. 2. ...

  6. C++ string的那些坑,C++ string功能补充(类型互转,分割,合并,瘦身) ,c++ string的内存本质(简单明了的一个测试)

    1. size_type find_first_of( const basic_string &str, size_type index = 0 ); 查找在字符串中第一个与str中的某个字符 ...

  7. 十、CSR8670的DFU功能[补充]

    前一篇转载的博文很清楚,全面的介绍了DFU功能的实现步骤.关于DFU功能,你还需要知道以下信息: 一.image.fs,firmware,loader,psr之间的关系 图1-1 image.fs示意 ...

  8. 【09】Jenkins:Pipeline 补充

    写在前面的话 我们在使用普通的构建任务的时候使用了 Sonar 做代码质量管理,也使用了 Publish Over SSH 插件中更新上线,但是我们在 Pipeline 怎么使用他们呢. 如果你没有查 ...

  9. 持续集成学习4 jenkins常见功能

    一.节点选择 1.yum安装jdk yum install -y java-1.8.0 java-1.8.0-openjdk-devel 2.节点选择有三种方式 a.通过系统自带功能限制任务只能在这个 ...

随机推荐

  1. SAP MM 公司间STO里外向交货单与内向交货单里序列号对应关系

    SAP MM 公司间STO里外向交货单与内向交货单里序列号对应关系 笔者所在的A项目,后勤模块里有启用HU管理,序列号管理,批次管理等功能,以实现各个业务场景下的追溯. 公司间转储订单流程里,如果是整 ...

  2. 给普通用户赋予sudo权限后报错,提示/etc/sudoers文件权限拒绝

    在Ubuntu 16.04系统里给普通用户赋予sudo权限,编辑vi /etc/sudoers 文件内容后发现执行sudo命令报错. 当我运行命令检查sudo权限的时候 sudo -i 输出错误提示: ...

  3. 白话SCRUM之一:SCRUM 的三个角色

    在SCRUM方法中将项目的利益相关者分成两大类:Pigs角色与chickens角色,pigs即为项目组的实际参与人员,chickens为项目组的外部人员,包括经理.最终用户等等.Pigs在scrum中 ...

  4. c# 根据一个给定经纬度的点和距离,搜索附近5公里范围的地点

    功能需求:需要查询一个站点(已知该站点经纬度)5公里范围内的其它站点. 方 法 一 :对每条记录,去进行遍历,跟数据库中的每一个点进行距离计算,当距离小于5公里时,认为匹配(效率极其低下,耗时长). ...

  5. BitTorrent协议与MagNet协议原理【转】

    转自:https://blog.csdn.net/u012785382/article/details/70674875 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog ...

  6. infinity新标签页失效

    安装infinity新标签页后,无法生效,或者infinity新标签页突然失效了. 驱动精灵的问题 驱动精灵安装后,还会安装其它的软件,在卸载后,安装的软件还存在. 解决办法 光卸载驱动精灵还不够,还 ...

  7. 微信公众号token验证失败

    我用的是python3+,而官网给的例子是python2的写法.问题就在python版本不同. 下面是截取官方的实例代码的一部分 list = [token, timestamp, nonce] li ...

  8. JS高阶---回调函数

    1.什么函数是回调函数? 此时两者的执行并没有先后顺序 两个都是回调函数 满足三个特点就是回调 .定义了函数 .没有主动调用 .最后执行了 2.常见的回调函数有哪些? .DOM事件回调函数 .定时器回 ...

  9. 201871010121-王方-《面向对象程序设计java》第十六周实验总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p/ ...

  10. win7系统中右键新建没有写字板

    问题描述: win7系统中右键新建没有写字板 解决方案: 1. 按下Win+R后输入regedit打开注册表. (可以使用组合键ALT+ 键盘上的左键, 对展开的注册表项进行折叠方可查看) 2.定位到 ...