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 作业。我尝试过上述方法,但它对我不起作用。
为什么要试图避免在这里扩展变量?
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')])
它做几乎相同的事情,除了它不会改变每次运行的预定时间,它选择随机时间,之后就不会改变。