写在前面的话

在 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. 从webkit内核简单看css样式和css规则优先级(权重)

    目录 webkit中样式相关类及类间关系 样式规则匹配 权重(优先级)计算 权重相同时的覆盖原则 webkit中样式相关类及类间关系 资料来源: <webkit技术内幕> 结构相关类: 1 ...

  2. 二、HDFS(架构、读写、NN)

    一.HDFS定义 HDFS (Hadooop Distributed File System),它是一个文件系统,用于存储文件,通过目录树来定位文件:其次,它是分布式的,由很多服务器联合走来实现其功能 ...

  3. elasticsearch 单节点出现unassigned_shards

    查看单节点Elasticsearch健康状态 使用head插件查看集群状态 从上面截图可以看出存在5个unassigned的分片,新建索引blog5的时候,分片数为5,副本数为1,新建之后集群状态成为 ...

  4. [TCP/IP] HTTPS的工作原理

    一.首先HTTP请求服务端生成证书,客户端对证书的有效期.合法性.域名是否与请求的域名一致.证书的公钥(RSA加密)等进行校验: 二.客户端如果校验通过后,就根据证书的公钥的有效, 生成随机数,随机数 ...

  5. [TCP/IP] TCP的重发机制是怎么实现的

    1)滑动窗口机制,确立收发的边界,能让发送方知道已经发送了多少(已确认).尚未确认的字节数.尚待发送的字节数:让接收方知道(已经确认收到的字节数) 2) 超时重传,tcp每发送一个报文段,就设置一次计 ...

  6. springcloud学习之路: (五) springcloud集成SpringCloudConfig分布式配置中心

    SpringCloud全家桶中的分布式配置中心SpringCloudConfig, 它使用git来管理配置文件, 在修改配置文件后只需要调用一个接口就可以让新配置生效, 非常方便. SpringClo ...

  7. typeof运算对于null会返回“Object"

    您也许会问,为什么 typeof 运算符对于 null 值会返回 "Object".这实际上是 JavaScript 最初实现中的一个错误,然后被 ECMAScript 沿用了.现 ...

  8. LOJ 546: 「LibreOJ β Round #7」网格图

    题目传送门:LOJ #546. 题意简述: 题目说的很清楚了. 题解: 将不包含起点或障碍物的连续的行或列缩成一行或一列,不会影响答案. 处理过后,新的网格图的行数和列数最多为 \(2k + 3\). ...

  9. E05 【餐厅】What kind of coffee or tea would you like?

    核心句型 What  kind  of  coffee or tea would you like? 你想喝什么咖啡或者茶? What  would  you like? 你喜欢什么?/你想要什么? ...

  10. MP支持的主键策略

    MP 支持多种主键策略 默认是推特的“” 雪花算法“” ,也可以设置其他策略下面我演示主键策略使用 MP的主键定义在一个一个枚举类中 源码如下 public enum IdType { AUTO(0) ...