是否可以覆盖Jenkins中参数的默认值?

42fyovps  于 2023-03-29  发布在  Jenkins
关注(0)|答案(2)|浏览(197)

我有一个Jenkins作业,它有一个参数,定时器每5分钟触发一次。该参数的默认值最初是手动设置的,我必须在Jenkins内部自动更改它(我想是使用Groovy命令)。我有一个脚本,它使用Build With Parameters触发该作业,该脚本发送的参数必须用于定时器启动的后续构建。
例如,我有一个默认值为100的字符串参数:
My String Parameter
使用带有参数的Build,脚本将200传递给参数:
Build with parameters command
现在,计时器启动的以下构建必须使用脚本给定的值200。
是否可以覆盖该参数的默认值?我尝试使用EnvInject插件,但它不起作用。我还尝试使用我在YouTube教程(https://www.youtube.com/watch?v=k_ga9cXteVE)上找到的Groovy命令,但我总是得到“无法解析类Jenkins”。
Code
Output
任何帮助/建议将非常感谢:)

jdgnovmf

jdgnovmf1#

有两种方法可以使用不同的参数值按时间间隔调用作业:
1.如果你想用不同的静态值调用作业(例如,param值应该在100和200之间交替,你事先知道这是你唯一需要的值),你可以使用parameterized scheduler plugin。你可以给作业添加一个cron触发器,并且为每个输入值配置一个不同的间隔。
1.如果你想评估一个脚本并使用它的输出来运行作业,我建议你创建另一个jenkins作业,最好是一个管道作业,它在计时器上运行,评估脚本,然后使用build jobstep调用参数化作业。
从你的描述中,我认为第二种解决方案更适合你。

y4ekin9u

y4ekin9u2#

[解决]问题是我在jenkins中选择了“执行groovy脚本”而不是“执行系统groovy脚本”。两者之间有很大的区别:

  • 执行groovy脚本:这就像打开cmd并编写“groovy {some command}”
  • 执行系统groovy脚本:它可以访问整个JDK,因此必须用于脚本

也许执行groovy脚本也可以配置为执行脚本,但我是一个初学者,我还不知道如何做到这一点:)

相关问题