写在前面的话

在 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. 大白话说GIT常用操作,常用指令git操作大全

    列一下在开发中用的比较多的git指令 git clone https://github.com/chineseLiao/Small-career // 克隆远程仓库到本地 git add . // 把 ...

  2. Struts2 常量配置

    除了action的配置,struts还有其他的一些配置,比如编码方式. 这些配置用键值对来表示,键是固定的,是常量,所以也叫做常量配置. 常量配置有5种方式,Struts会按以下顺序依次搜索加载常量( ...

  3. tcp_tw_recycle参数引发的数据库连接异常

    [问题描述] 开发反馈有个应用在后端数据库某次计划性重启后经常会出现数据库连接异常问题,通过监控系统的埋点数据,发现应用连接数据库异常有两类表现:   其一:连接超时   131148.00ms To ...

  4. jquery实现checkbox列表的全选不选

    html代码 <th><input type="checkbox" onclick="selectAll(this);" />全选/取消 ...

  5. 201871010111-刘佳华《面向对象程序设计(java)》第二周学习总结

    201871010111-刘佳华<面向对象程序设计(java)>第二周学习总结 项目 内容 这个作业属于哪个课程 <https://www.cnblogs.com/nwnu-daiz ...

  6. Ubuntu下apache2安装配置(内含数字证书配置)

    Ubuntu下apache2安装配置(内含数字证书配置)安装命令:sudo apt-get updatesudo apt-get install apache2 配置1.查看apache2安装目录命令 ...

  7. ubuntu16.04安装docker图形管理界面portainer

    下载镜像 docker pull portainer/portainer 单机版运行 docker run -d --name portainer \ -p 9000:9000 \ --restart ...

  8. Maven仓库与坐标(五)

    一.Maven仓库 存放依赖的一个位置/文件夹/仓库,分为以下几种: 本地仓库 中央仓库 远程仓库 1. 本地仓库 第一次执行maven命令时被创建,maven运行时需要的构件都从本地仓库获取,本地仓 ...

  9. InfoQ一波文章:AdaSearch/JAX/TF_Serving/leon.bottou.org/Neural_ODE/NeurIPS_2018最佳论文

    和 Nested Partition 有相通之处? 伯克利提出 AdaSearch:一种用于自适应搜索的逐步消除方法 在机器学习领域的诸多任务当中,我们通常希望能够立足预先给定的固定数据集找出问题的答 ...

  10. JDOJ 3055: Nearest Common Ancestors

    JDOJ 3055: Nearest Common Ancestors JDOJ传送门 Description 给定N个节点的一棵树,有K次查询,每次查询a和b的最近公共祖先. 样例中的16和7的公共 ...