【04】Jenkins:基本功能补充说明
写在前面的话
在 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:基本功能补充说明的更多相关文章
- EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充
EBS OAF开发中的Java 实体对象(Entity Object)验证功能补充 (版权声明,本人原创或者翻译的文章如需转载,如转载用于个人学习,请注明出处:否则请与本人联系,违者必究) EO理论上 ...
- 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) ...
- Ubuntu 14.04下安装功能强大的屏幕截图软件 Shutter
[注释]试用了一下,果然很强大,牛逼 一款功能强大的屏幕截图软件——Shutter,Shutter最基本的就是截图功能了,在设计上可以自由选定区域,同时选定之 后依然可以通过上下左右四个地方来改变选区 ...
- FasterRunner (httptunner+django)搭建以及小功能补充
配置 下载地址https://github.com/httprunner/FasterRunner 后端配置https://www.jianshu.com/p/e26ccc21ddf2 前端配置htt ...
- Ubuntu 16.04 开启休眠功能
因为休眠功能在部分计算机无法正常工作,所以Ubuntu默认是不开启休眠功能. 要想开启休眠功能先进行如下测试: 1.先检查是否有交换分区(swap),如果有确认交换分区至少和实际可用内存一样大. 2. ...
- C++ string的那些坑,C++ string功能补充(类型互转,分割,合并,瘦身) ,c++ string的内存本质(简单明了的一个测试)
1. size_type find_first_of( const basic_string &str, size_type index = 0 ); 查找在字符串中第一个与str中的某个字符 ...
- 十、CSR8670的DFU功能[补充]
前一篇转载的博文很清楚,全面的介绍了DFU功能的实现步骤.关于DFU功能,你还需要知道以下信息: 一.image.fs,firmware,loader,psr之间的关系 图1-1 image.fs示意 ...
- 【09】Jenkins:Pipeline 补充
写在前面的话 我们在使用普通的构建任务的时候使用了 Sonar 做代码质量管理,也使用了 Publish Over SSH 插件中更新上线,但是我们在 Pipeline 怎么使用他们呢. 如果你没有查 ...
- 持续集成学习4 jenkins常见功能
一.节点选择 1.yum安装jdk yum install -y java-1.8.0 java-1.8.0-openjdk-devel 2.节点选择有三种方式 a.通过系统自带功能限制任务只能在这个 ...
随机推荐
- 如何使用wce进行hash注入
在内网渗透时,很经常会碰到好不容易提取出了hash,但是无法破解. wce号称内网渗透神器,其中有一个功能就是hash注入. 测试环境: 目标 windows2008 [192.168.200.12 ...
- Jenkins+gradle+git部署
感谢博友分享,这边记录下https://blog.csdn.net/jiankeufo/article/details/78228334 我的密码7789cc2b62114e9da9fb78b0aa3 ...
- js 过滤字符 和检测 特殊字符【转】
// var str1 = str.replace(/\[\\'\\"\\\\\\/\\b\\f\\n\\r\\t\]/g, '');// 去掉转义字符 // var str2= str.r ...
- yum 安装apache php mysql
安装: yum install -y httpd php 查看版本:. rpm -qa httpd php httpd-2.2.15-54.el6.centos.x86_64 php-5.3.3-48 ...
- nodejs简单http日志存储
nodejs实现简单http日志存储 /* 日志存储: 202.189.63.115 - - [31/Aug/2008:15:42:31 +0800] "GET / HTTP/1.1&quo ...
- DVWA之CSRF
CSRF:跨站请求伪造攻击 Security:Low 级别分析 核心代码 输入数据,以便Burp代理获得请求参数 这里可以将第一行拿出来进行构造链接, http://202.100.10 ...
- 201777010217-金云馨《面向对象程序设计(java)》第十六周学习总结
项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...
- 201871010121-王方-《面向对象(java)程序设计对象》第十周学习总结
王方第九周Java实验总结 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.co ...
- 【软件工程1916|W(福州大学)_助教博客】2019年上学期期末问卷调查结果公示
1.调查问卷概况 福州大学2019W班,收集到有效答卷44份 2. 调查问卷情况 Q1:请问你平均每周在课程上花费多少小时? 去除自估水平超过40小时的,平均16.6H Q2.软工实践的各次作业分别花 ...
- python-分割url字符串
url = ' http://images.jupiterimages.com/common/detail/27/68/22986827.jpg' url.strip().split('/')[-1] ...