jenkins - 多个参数的 Jenkins 参数化项目
问题描述
我有 Jenkins Pipeline,它触发了不同的项目。然而,所有管道的唯一区别只是名称。所以我在 jenkins 的参数中添加了一个参数 ${project} 并为其分配了项目名称的值。
我们有很多项目,我正在努力寻找更好的方法来实现这一目标。
我在想我们如何才能使所有项目的参数使用不同的参数运行,而无需在 jenkins 下实际创建不同的项目。
我正在粘贴一些屏幕截图,让您了解我到底想要实现什么。
正如这里提到的,这是一个无线电服务器项目,有一个管道,其中包含 ${project}。
如何从单个詹金斯工作中为该 {project} 赋予多个值?如果您有任何疑问,请给我留言或添加评论。
你可以看到我创建的那两个项目,它的所有内容都是一样的,只是参数化的值不同,我在想如何给那个参数赋予不同的值。
如您所见,这 2 个图像的默认值为 radioserver,nrcuup。我怎样才能将它们结合起来,让它们无缝运行?
解决方案
我希望这将有所帮助。让我知道答案是否需要任何更改。
您可以在 Jenkins 中使用条件。根据 ${PROJECT} 的值,您可以执行特定阶段。
这是一个简单的管道示例,其中我提供了选择参数值的选项,PROJECT
即 test1、test2 和 test3。
因此,无论何时选择 test1,jenkins 作业都会执行基于test1
示例管道代码
pipeline {
agent any
parameters {
choice(
choices: ['test1' , 'test2', 'test3'],
description: 'PROJECT NAME',
name: 'PROJECT')
}
stages {
stage ('PROJECT 1 RUN') {
when {
expression { params.PROJECT == 'test1' }
}
steps {
echo "Hello, test1"
}
}
stage ('PROJECT 2 RUN') {
when {
expression { params.PROJECT == 'test2' }
}
steps {
echo "Hello, test2"
}
}
}
}
输出:
- 何时
test1
被选中
- 何时
test2
被选中
更新的答案
是的,可以使用 Jenkins 插件Parameterized Scheduler使用特定参数值定期触发作业
用一些参数(如上面提到的管道代码)保存项目后,再次回到Configure
和下Build Trigger
,您可以看到选项Build periodically with parameters
例子:
我将在这里PROJECT=test1
每隔偶数分钟和PROJECT=test2
每隔一分钟运行一次工作。所以,下面是配置
*/2 * * * * %PROJECT=test1
1-59/2 * * * * %PROJECT=test2
请根据需要更改 crontab 值
输出:
推荐阅读
- javascript - 禁用特殊字符(引号)
- django - 在注册表单中输入错误时,Django 表单错误未返回 HttpResponse 对象
- python - 输入:原始值或容器
- r - 无法安装心理包
- qt - Qt 可以将动态生成的内容注入到加载的帮助集合中吗?
- mysql - MySQL:使用查询返回最高月销量产品
- regex - Notepad++ 正则表达式搜索和替换忽略我的结果组
- php - 在回显 < 符号后替换,但 var_dump 显示正确的长度
- java - 是否可以在 JavaFX 中获得移位字符?
- javascript - 引导下拉菜单不起作用 asp.net mvc BundleConfig.cs