织梦dedecms教育培训网站模板,国外做科研的网站,自己做购物网站,怎么躲避wordpress审核评论本文详细介绍了Jenkins中不同类型的参数化构建方法#xff0c;包括字符串、选项、多行文本、布尔值和git分支参数的配置#xff0c;以及如何使用ActiveChoiceParameter实现动态获取参数选项。通过示例展示了传统方法和声明式pipeline的语法 文章目录 1. Jenkins的参数化构建1… 本文详细介绍了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: teststring 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()的值为02 .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 界面展示选项行数默认为5jenkins harbor安装 Jenkins参数化构建详解(This project is parameterized)