Jenkins管道作业:从字符串参数设置休眠时间?

时间:2017-05-11 10:27:02

标签: jenkins groovy jenkins-pipeline

我是詹金斯管道工作的新手,我遇到了一个我无法解决的问题。

我有一个带有硬编码sleep秒值的舞台:

stage ("wait_prior_starting_smoke_testing") {
  echo 'Waiting 5 minutes for deployment to complete prior starting smoke testing'
  sleep 300 // seconds
}

但我想通过作业(字符串)参数SLEEP_TIME_IN_SECONDS提供时间参数。但无论我尝试过什么,我都无法让它发挥作用。

如何将字符串参数转换为int时间参数?

3 个答案:

答案 0 :(得分:20)

最后我找到了一种方法来完成这项工作:

stage ("wait_prior_starting_smoke_testing") {
    def time = params.SLEEP_TIME_IN_SECONDS
    echo "Waiting ${SLEEP_TIME_IN_SECONDS} seconds for deployment to complete prior starting smoke testing"
    sleep time.toInteger() // seconds
}

答案 1 :(得分:7)

此页面的小改进:

如果您有兴趣指定睡眠时间单位,也可以使用sleep(time:3,unit:"SECONDS")

https://jenkins.io/doc/pipeline/steps/workflow-basic-steps/#sleep-sleep

答案 2 :(得分:3)

尝试一下。它对我有用。

stage ("wait_for_testing")
{
   sh 'sleep 300'
}

使用“ sh”启动具有shell的虚拟终端。如果需要在一个终端中写其他命令,请写;后命令。 例如:

sh 'pwd; sleep 300; echo "Hello World"'