有没有办法在 jankins CICD 管道代码中将动态时间作为 crone 作业中的参数传递

问题描述 投票:0回答:1
def random = new Random()
def randomHour = 7 + random.nextInt(3) // Generate a random number between 7 and 9
def randomMinute = random.nextInt(60) // Generate a random number between 0 and 59
println "randomHour: ${randomHour}"
println "randomMinute: ${randomMinute}"
jobProps << pipelineTriggers([parameterizedCron('\${randomMinute} \${randomHour} * * * %DEPLOY_TEST_ENVIRONMENT=true')])

我尝试在上午 7:00 到上午 9:00 之间的任意时间运行 crone 作业。我尝试过上述方法,但它对我不起作用。

jenkins cron cicd
1个回答
0
投票

为什么要试图避免在这里扩展变量?

jobProps << pipelineTriggers([parameterizedCron('\${randomMinute} \${randomHour} * * * %DEPLOY_TEST_ENVIRONMENT=true')])

我认为扩展它们应该可以解决你的问题

jobProps << pipelineTriggers([parameterizedCron("${randomMinute} ${randomHour} * * * %DEPLOY_TEST_ENVIRONMENT=true")])

您还可以利用 Jenkins 哈希语法

jobProps << pipelineTriggers([parameterizedCron('H H(7-9) * * * %DEPLOY_TEST_ENVIRONMENT=true')])

它做几乎相同的事情,除了它不会改变每次运行的预定时间,它选择随机时间,之后就不会改变。

© www.soinside.com 2019 - 2024. All rights reserved.