美文网首页
Jenkins系列(三)——关于通用配置(General模块)的

Jenkins系列(三)——关于通用配置(General模块)的

作者: moutory | 来源:发表于2024-07-23 20:56 被阅读0次

    前言

    本篇文章是jenkins系列文章的第三篇文章,本篇文章将针对jenkins的通用配置(即General模块)的配置进行介绍,更多jenkins的文章可以通过下面连接进行查看。

    Jenkins系列(二)——触发点和构建环境的介绍

    一、描述

    描述这部分一般是填写这个任务的作用以及注意事项的,正常情况下建议不要留空白,根据实际情况来填写。保存后后续可以在任务的主页上面看到对应的内容了。


    image.png
    展示样例

    二、旧构建记录处理(Discard old builds)

    jenkins每次完成任务的构建后,都会留下构建的日志,如果配置了产物归档的话,那么产物也会随着构建记录一起保存下来,长期以往可能会对服务器的磁盘带来一定的压力,所以一般情况下,我们会选择使用Discard old builds这个模块的配置来帮助我们解决构建历史的空间占用问题。
    下面来讲一下具体配置的含义

    关于构建日志
    • 保持构建的天数(Build age)
      如果设置的值是7,那么七天前的历史构建记录将在构建新的任务时被被自动清除
    • 保持构建的最大个数(Build count)
      当已经存在一定数量的构建时,丢弃最旧的构建。

    这两个选项可以同时激活,因此您可以将构建保存14天,但最多只能保存50个构建。 如果超过任何一个限制,那么超出该限制的任何构建都将被丢弃。

    关于发布包的保留策略

    需要注意的是,如果没有配置产物的归档的话,默认情况下产物都是不会进行归档的,也就是说jenkins不会保留发布包。因此只有在配置产物归档的前提下,设置发布包保留策略才有意义。


    image.png
    • 发布包保留天数
      比如此处的值为5,5天前的发布包将被删除,但构建的日志、操作历史、报告等将被保留(具体的保留策略看前面构建天数/个数的配置)

    • 发布包最大保留#个构建
      如果非空,最多此数目大构建将保留他们的发布包

    请注意,当这个配置被更新时,或者当任何配置值被超过时,Jenkins不会立即丢弃项; 每次完成该项目的构建时,才会根据这些规则进行应废弃构建包的删除。

    三、是否支持并发构建

    image.png

    默认情况下,一次只执行一个项目的构建—任何其他开始构建该项目的请求将保留在构建队列中,直到第一个构建完成。
    这是一个安全的默认设置,因为项目通常需要对某些资源(如数据库或硬件)进行独占访问。

    不支持并发构建的情况
    勾选上这个选项之后,任务就可以支持并发构建了。不过正如官方文档说明一样,这个选项一般适用于做一些测试用例,我们有几组构建的参数同时需要执行,这个时候并发构建任务就可以提升我们的验证效率。不过如果是打包部署的话,一般考虑到资源的独占性的话,建议是不要选择并发构建。

    四、构建参数的传递

    jenkins支持我们在执行任务的时候根据需要传递不同的值进行构建,这样可以很大程度上让任务的构建变得更加灵活。

    (一)boolean类型的参数

    名称为后续展示在页面上以及脚本可以引用的变量名,勾选Set by Default表示默认值为true(需要注意,这里是字符串的true),描述的话根据实际情况写一下变量的作用就行。

    image.png
    我们可以使用例如下面的判断来进行变量的使用
    if [ $needInstall == 'true' ];then
        echo "选择了needInstall"
    else
        echo "未选择needInstall"
    fi
    
    image.png
    (二)下拉框类型的参数

    名称和描述和boolean类型的配置差不多,选项的话每行写一个选项


    image.png image.png

    我们可以用类似下面的判断来进行变量的使用

    if [ $timeZone == '伦敦时区' ];then
        echo "选择了伦敦时区"
    elif [ $timeZone == '北京时区' ];then
        echo "选择了北京时区"
    else
        echo "选择了华盛顿时区"
    fi
    
    (三)凭证类型的参数

    我们在使用jenkins的过程中,肯定是难免需要配置各种凭证,对于这些凭证数据,jenkins也支持我们作为参数进行传递,这种参数类型比较少会使用到,但是在进行账号权限测试这类场景的话,凭证类型的参数就比较实用了。

    image.png
    此处需要注意,任务配置完成后,用户选择的凭证并不能由变量直接使用,事实上变量拿到的只是凭证的ID,需要结合其他配置和函数来使用,具体可以看下面这篇文章:Jenkins凭据管理
    (四)文件类型参数

    这种数据类型比较适合入参是文件的任务,像我们跑一下任务的数据来源是固定格式的文件,我们就可以利用这类参数来实现上传文件到服务器后再启动应用来进行解析。此处有3个细节需要注意:

    • 默认情况下,用户上传的文件是放在当前的工作空间下面的,且jenkins这里的路径支持我们配置多层级的目录结构
    • jenkins虽然支持我们获取上传的文件名,但如果文件路径本身存在目录的话,那么就无法使用${文件路径}来直接读取到文件名了
    • 若用户构建时没有上传文件,原先已存在的文件不会被覆盖


      image.png
    image.png

    我们可以在脚本中使用用户上传的文件名

    echo ${temFile}
    
    (五)字符串类型的参数

    字符串类型也是一个比较常使用的参数,如果变量的值是有限且可预见的,一般更推荐使用choice parameter即下拉框类型的参数,但如果参数的值很多样化,无法在构建之前就预设好,那么字符串类型的参数就是很好的替代方案。

    image.png image.png

    我们一样可以通过 ${变量名} 的方式来使用我们传递的参数值

    (六)多行文本类型参数

    这种参数类型支持我们输入多行的参数,也算比较好理解,但个人觉得没有太多使用的场景,如果是不确定入参的数量,希望通过输入多行数据交由后面的脚本进行分割处理的话,就可以考虑用这类参数。


    image.png
    image.png

    相关文章

      网友评论

          本文标题:Jenkins系列(三)——关于通用配置(General模块)的

          本文链接:https://www.haomeiwen.com/subject/knulhjtx.html