Jenkins参数化构建详解(This project is parameterized)

本文详细介绍了Jenkins中不同类型的参数化构建方法,包括字符串、选项、多行文本、布尔值和git分支参数的配置,以及如何使用ActiveChoiceParameter实现动态获取参数选项。通过示例展示了传统方法和声明式pipeline的语法

文章目录

    • 1. Jenkins的参数化构建
      • 1.1.如何使项目参数化
        • 1.1.1.打开项目配置‌:
        • 1.1.2.‌启用参数化构建‌:
        • 1.1.3.‌添加参数‌:
        • 1.1.4.‌保存配置‌:
        • 1.1.5.使用参数‌:
        • 1.1.6.‌触发构建时传递参数‌:
      • 1.2.参数化构建的好处
    • 2 .参数配置介绍
      • 2 .1. 通用步骤和语法
        • `传统方法步骤`
        • `脚本式语法`
        • `声明式语法`
      • 2 .2. String Parameter(字符串参数)
        • `传统方法步骤`
        • `脚本式pipeline`
        • `声明式pipeline`
        • `注意事项`
      • 2 .3. Choice Parameter(选项参数)
        • `传统方法步骤`
        • `脚本式pipeline`
        • `声明式pipeline`
      • 2 .4. Multi-line String Parameter(多行文本)
        • `传统方法步骤`
        • `脚本式pipeline`
        • `声明式pipeline`
      • 2 .5. Boolean Parameter(布尔类型参数)
        • `传统方法步骤`
        • `脚本式pipeline`
        • `声明式pipeline`
      • 2 .6. List Git Branches(列出git分支)
        • `传统方法步骤`
        • `脚本式pipeline`
        • `声明式pipeline`
      • 2 .7. extendedChoice复选框
        • `传统方法步骤`
        • `脚本式pipeline`

1. Jenkins的参数化构建

Jenkins的参数化构建是一项非常强大的功能,它允许你在触发构建时动态地传递参数给构建过程。这些参数可以影响构建的行为,比如选择不同的分支进行构建、设置环境变量、指定构建版本等。通过参数化构建,你可以使你的Jenkins构建更加灵活和可配置。

1.1.如何使项目参数化

1.1.1.打开项目配置‌:

在Jenkins的Web界面上,找到你想要参数化的项目,点击它的名称进入项目详情页。
点击左侧的“配置”或“Configure”链接来打开项目配置页面。

1.1.2.‌启用参数化构建‌:

在配置页面的“构建”部分或“General”部分(取决于Jenkins的版本和插件),你会看到一个名为“This project is parameterized”或类似的复选框。勾选这个复选框来启用参数化构建。

1.1.3.‌添加参数‌:
  • 启用参数化构建后,你会看到一个“添加参数”或“Add Parameter”的下拉菜单。从这个菜单中选择你想要添加的参数类型。
  • Jenkins提供了多种参数类型,包括字符串参数(String Parameter)、布尔参数(Boolean Parameter)、选择参数(Choice Parameter)、文件参数(File Parameter)等。根据你的需求选择合适的参数类型。
  • 对于每个参数,你需要设置它的名称(Name)和描述(Description),以及根据参数类型设置其他必要的属性,比如默认值、可选值等。
1.1.4.‌保存配置‌:

设置好所有参数后,点击页面底部的“保存”或“Save”按钮来保存你的配置。

1.1.5.使用参数‌:
  • 在构建脚本或Jenkinsfile中,你可以使用这些参数。对于Freestyle项目,你可以在构建步骤中引用参数,比如使用${PARAM_NAME}来引用名为PARAM_NAME的参数。
  • 对于Pipeline项目,你可以在Jenkinsfile中使用params对象来访问参数,比如params.PARAM_NAME。
1.1.6.‌触发构建时传递参数‌:
  • 当你手动触发构建时(比如点击“立即构建”按钮),Jenkins会提示你输入参数的值。
  • 如果你是通过脚本或API触发构建,你也可以在触发时传递参数的值。

1.2.参数化构建的好处

  • 灵活性‌:通过参数化构建,你可以很容易地改变构建的行为,而不需要修改构建脚本或配置。
  • ‌可重用性‌:你可以为不同的构建场景创建不同的参数集,从而重用同一个构建项目。
    ‌- 可维护性‌:将构建逻辑和参数分离,使得构建逻辑更加清晰和易于维护。
    ‌- 安全性‌:通过参数化构建,你可以更安全地管理敏感信息,比如密码和密钥,因为你可以使用Jenkins的凭据插件来安全地存储和传递这些信息。

2 .参数配置介绍

2 .1. 通用步骤和语法

传统方法步骤

在这里插入图片描述

在这里插入图片描述

脚本式语法
timestamps {
    properties ([
            parameters ([
                    string(name: 'NEW_BRANCH', defaultValue: '' , description:'', trim: true),
                    choice(choices: ['mysql', 'oracle'], description: '''选择数据库类型''', name: 'DATABASE', trim: true),
            ])
    ])
}

timestamps 会在输出日志前面添加时间戳

参数化内容都放入到parameters ([])里面

多行内容用逗号分隔

声明式语法
pipeline {
	parameters {			//参数化构建
      choice choices: ['true', 'false'], description: '测试', name: 'test'
      string name: 'NEW_BRANCH', defaultValue: '', description:'', trim: true
    }
}

多行内容用换行符分隔

声明式语法大部分都可以从Jenkins上获取
在这里插入图片描述
在这里插入图片描述

以字符串参数为例

在这里插入图片描述

在这里插入图片描述

2 .2. String Parameter(字符串参数)

在这里插入图片描述

传统方法步骤

在这里插入图片描述

在这里插入图片描述

参数解释:

Name			定义参数的名字,在脚本中可以通过这个名字获取对应的值
Default Value	默认值,即VERSION的默认值为1.0.0
Description		描述信息
Trim the string	去掉值两边的空格,如果值为' 1.0.0 ',那么最终获取到的值为1.0.0
脚本式pipeline
string(name: 'VERSION', defaultValue: '1.0.0' , description:'版本号', trim: true),

注意:取值的方法有两种

println VERSION或者
println params.VERSION
声明式pipeline
parameters {
  string defaultValue: '1.0.0', description: '版本号', name: 'VERSION', trim: true
}
注意事项
如果没有设置参数名VERSION,那么params.VERSION的值为null

如果设置了参数名VERSION,但没有传入值,则params.VERSION的值为空,params.VERSION.size()的值为0

2 .3. Choice Parameter(选项参数)

在这里插入图片描述

传统方法步骤

在这里插入图片描述

参数解释:

Name			定义参数的名字,在脚本中可以通过这个名字获取对应的值
Choices			可选值,每行代表一项可选值
Description		描述信息
脚本式pipeline
choice(choices: ['mysql', 'oracle'], description: '数据库类型', name: 'DB_TYPE'),
声明式pipeline
parameters {
  choice choices: ['mysql', 'oracle'], description: '数据库类型', name: 'DB_TYPE'
}

2 .4. Multi-line String Parameter(多行文本)

在这里插入图片描述

传统方法步骤

在这里插入图片描述

参数解释:

Name			定义参数的名字,在脚本中可以通过这个名字获取对应的值
Default Value	默认值,即VERSION的默认值为192.168.1.2192.168.1.3
Description		描述信息
脚本式pipeline
text(name: 'K8S_NODE', defaultValue: '192.168.1.2192.168.1.3' , description:'k8s节点IP'),
声明式pipeline
parameters {
  text defaultValue: '192.168.1.2192.168.1.3', description: 'k8s节点IP', name: 'K8S_NODE'
}

2 .5. Boolean Parameter(布尔类型参数)

在这里插入图片描述

传统方法步骤

在这里插入图片描述

脚本式pipeline
booleanParam(defaultValue: true, description: '是否构建,默认为true', name: 'IS_BUILD'),
声明式pipeline
parameters {
  booleanParam defaultValue: true, description: '是否构建,默认为true', name: 'IS_BUILD'
}

2 .6. List Git Branches(列出git分支)

依赖插件:List Git Branches Parameter

在这里插入图片描述

在这里插入图片描述

传统方法步骤

在这里插入图片描述

在这里插入图片描述

参数解释:

Name			定义参数的名字,在脚本中可以通过这个名字获取对应的值
Repository URL	git仓库地址
Credentials		凭据(通常为账号密码),可以点击右边的Add进行配置
Parameter Type	可以选分支或Tag,也可以都选
Tag Filter		过滤tag号
Branch Filter	添加过滤规则;只显示dev和hotfix分支。支持扩展正则.*/y?featureY?-.*、.*/hotfix-DEVOPS.V2.*release$、*/DEVOPS.V[1-2]{1}[0-1]{1}*release
Quick Filter	添加搜索功能
脚本式pipeline
listGitBranches(branchFilter: '.*/dev||.*/hotfix.*', credentialsId: 'a2b624d4-567d-4ff2',
                                 defaultValue: '', name: 'BRANCH', quickFilterEnabled: true, remoteURL: 'https://gitee.com/liuhaomin/springcloud.git', selectedValue: 'NONE',
                                 sortMode: 'DESCENDING_SMART', tagFilter: '*', type: 'PT_BRANCH')

credentialsId,每配置一个凭据就会生成对应的credentialsId,可以到凭据管理处查看

声明式pipeline
parameters {
  listGitBranches branchFilter: '.*/dev||.*/hotfix.*', credentialsId: 'a2b624d4-567d-4ff2', defaultValue: '', name: 'BRANCH', quickFilterEnabled: true, remoteURL: 'https://gitee.com/liuhaomin/springcloud.git', selectedValue: 'NONE', sortMode: 'NONE', tagFilter: '*', type: 'PT_BRANCH'
}

2 .7. extendedChoice复选框

参考文章:Jenkins 参数化构建(Extended Choice Parameter)
依赖插件:Extended Choice Parameter

在这里插入图片描述

传统方法步骤

在这里插入图片描述

在这里插入图片描述

脚本式pipeline
properties([
            parameters([
                    extendedChoice(description: '跳过指定的git工程', multiSelectDelimiter: ',', 
                    name: 'SKIP_GIT_PRODUCT', quoteValue: false, saveJSONParameterToFile: false,
                    type: 'PT_CHECKBOX', value: 'web,backend,db',
                    defaultValue: 'web',visibleItemCount: 3),
            ]),
    ])

解释:

multiSelectDelimiter	指定分隔符,这里指定的是逗号
type为PT_CHECKBOX		表示复选框
defaultValue			设置默认值
visibleItemCount		界面展示选项行数,默认为5

jenkins harbor安装
Jenkins参数化构建详解(This project is parameterized)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/935358.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Tablesaw封装Plot.ly实现数据可视化

上文介绍tablesaw的数据处理功能,本文向你展示其数据可视化功能,并通过几个常用图表示例进行说明。 Plot.ly包装 可视化是数据分析的重要组成部分,无论你只是“查看”新数据集还是验证机器学习算法的结果。Tablesaw是一个开源、高性能的Java…

物流行业新突破:数字孪生的核心作用解析

在现代物流行业,效率和精准度是企业竞争的关键。随着数字化技术的发展,数字孪生作为一种新兴技术,正在智慧物流领域崭露头角。通过构建真实物流系统的虚拟映射,数字孪生帮助企业实现全方位的管理优化,为智慧物流带来了…

手机租赁系统开发全流程解析与实用指南

内容概要 在如今快速发展的科技时代,手机租赁系统已经成为一种新兴的商业模式,非常符合当下市场需求。那么,在开发这样一个系统的时候,首先要从需求分析和市场调研开始。在这一阶段,你需要了解用户需要什么&#xff0…

ViewModel

ViewMode是MVVM架构模式中VM层对应的类,它的作用是存储界面数据,并和界面发生数据交互。ViewModel能感知生命周期,并且在界面由于配置问题发生重建时候,可以保持当前的数据不变。生命周期如下: ViewMode由ViewModePr…

Android -- [SelfView] 自定义弹窗式颜色选择器

Android – [SelfView] 自定义弹窗式颜色选择器 PS: 1. 弹框式显示; 2. 支持透明度设置; 3. 支持拖动控件选择颜色; 4. 支持 ARGB | HEX 数值填写预览颜色并返回; 5. 输出支持Hex 和 Int 两种格式;效果 使用方法&…

open cv学习之图片矫正

一,实验原理 图像矫正的原理是透视变换 图像畸变主要有两类:径向畸变和切向畸变。径向畸变通常会导致图像的四个角向外或向内弯曲;切向畸变则是由于相机与图像平面不完全平行引起的。而OpenCV 提供了一个相机标定的工具,能够自动…

微信开发工具卡优化

微信开发者工具优化 设置-通用设置-不勾选 使用GPU加速模式 设置-通用设置-内存限制 1024调整为2048 详情-本地设置-不勾选 启用多核心编译 详情-本地设置-勾选 自动压缩脚本和样式 app.json “lazyCodeLoading”: “requiredComponents”

低空物流配送路径优化的探索

✅作者简介:2022年博客新星 第八。热爱国学的Java后端开发者,修心和技术同步精进。 🍎个人主页:Java Fans的博客 🍊个人信条:不迁怒,不贰过。小知识,大智慧。 💞当前专栏…

vue3 通过变量的值,来动态的进行class的赋值

1、需求:不同的设备因为宽度不一样,所以要做一些调整,但是通过tailwindcss的设置并不能满足我们的条件: 现在手机的屏幕大小也很大,设置了xl,发现电脑动,手机也在动,一样的效果。 2…

【开源】基于SpringBoot框架的在线视频教育平台 (计算机毕业设计)+万字毕业论文 T027

系统合集跳转 源码获取链接 一、系统环境 运行环境: 最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 IDE环境: Eclipse,Myeclipse,IDEA或者Spring Tool Suite都可以 tomcat环境: Tomcat 7.x,8.x,9.x版本均可 操作系统…

导游现场面试需要注意的问题

今天给大家带来一些导游现场面试需要注意的问题,大部分的城市导游考试已经考完了,但是还有一些城市的十二月份才考,有需要的朋友们赶紧来看,有备无患。 01、做好充足准备 认真准备做好每个景点的讲解介绍,不要抱有侥幸…

牛客刷题(总结)

目录 <1> <2> 思路 <1> 给你 4 个整数 a,b,c,d&#xff0c;你需要回答 是奇数还是偶数。 #include<stdio.h> #define int long long int f(int a) {if(a%20){return 0;}else{return 1;}} signed main() {int a,b,c,d;scanf("%lld %lld %lld %ll…

AI智算-k8s部署大语言模型管理工具Ollama

文章目录 简介k8s部署OllamaOpen WebUI访问Open-WebUI 简介 Github&#xff1a;https://github.com/ollama/ollama 官网&#xff1a;https://ollama.com/ API&#xff1a;https://github.com/ollama/ollama/blob/main/docs/api.md Ollama 是一个基于 Go 语言开发的可以本地运…

Arduino: Arduino IDE安装

目录 1.1 Arduino软件下载与安装 1.2 esp32_arduino的开发库安装 1.3 手动安装板支持包 1.1 Arduino软件下载与安装 Arduino官网下载地址&#xff1a;https://www.arduino.cc/en/software。 1.2 esp32_arduino的开发库安装 接下来安装esp32_arduino的开发库。 1.2.1 在线安…

《Hadoop大数据技术应用综合训练》----以NBA冠军球队计数为例

一、综合训练要求 案例中需要处理的文件为nba.csv,该文件记录了NBA历年总冠军的详细情况,文件的字段从左到右依次为比赛年份、具体日期、冠军、比分、亚军和当年MVP(联盟MVP是Most Valuable Player缩写,即最有价值球员),每个字段以半角逗号“,”进行分割,如图1所示。 图…

智能人体安全防护:3D 视觉技术原理、系统架构与代码实现剖析

随着工业化程度的提高&#xff0c;生产安全已成为企业关注的重点。尤其是在一些存在禁区的工业厂区和车间&#xff0c;人员误入或违规进入将带来严重的安全隐患。为了解决这一问题&#xff0c;迈尔微视推出了智能人体安全检测解决方案&#xff0c;为企业提供全方位的人员安全监…

使用html 和javascript 实现微信界面功能2

1.功能说明&#xff1a; 对上一篇的基础上进行了稍稍改造 主要修改点&#xff1a; 搜索功能: 在搜索框后面增加了搜索按钮。 搜索按钮调用performSearch函数来执行搜索操作。 表单形式的功能: 上传文件: 修改为表单形式&#xff0c;允许用户通过文件输入控件选择文件并上传。 …

vulhub复现CVE-2021-44228log4j漏洞

目录 一&#xff1a;漏洞概述 二&#xff1a;漏洞原理 三&#xff1a;漏洞利用 lookup功能&#xff1a; JNDI解析器&#xff1a; ldap服务&#xff1a; RMI&#xff1a; 四&#xff1a;漏洞复现 4.1靶场 4.2dnslog测试 4.3部署jndi-injection-exploit 4.4打开监听端口 4.5触发请…

数据库中的运算符

1.算术运算符 算术运算符主要用于数学运算&#xff0c;其可以连接运算符前后的两个数值或表达式&#xff0c;对数值或表达式进行加&#xff08;&#xff09;、减&#xff08;-&#xff09;、乘&#xff08;*&#xff09;、除&#xff08;/&#xff09;和取模&#xff08;%&…

Java项目实战II基于Java+Spring Boot+MySQL的社区帮扶对象管理系统的设计与实现(开发文档+数据库+源码)

目录 一、前言 二、技术介绍 三、系统实现 四、核心代码 五、源码获取 全栈码农以及毕业设计实战开发&#xff0c;CSDN平台Java领域新星创作者&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。获取源码联系方式请查看文末 一、前言 在当前社会&#xff0c;随…