web-dev-qa-db-fra.com

Job de pipeline Jenkins: définir le temps de repos à partir d'un paramètre de chaîne?

Les emplois de Jenkins Pipeline sont nouveaux pour moi et je suis confronté à un problème que je ne peux pas résoudre.

J'ai une étape avec une valeur codée en dur sleep secondes:

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

Mais je voudrais fournir l’argument heure via un paramètre de travail (chaîne) SLEEP_TIME_IN_SECONDS. Mais quoi que j'ai essayé, je ne parviens pas à le faire fonctionner.

Comment convertir un paramètre de chaîne en argument int time?

18

Enfin, j'ai trouvé un moyen d'obtenir ce travail:

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
}
23

petite amélioration pour cette page:

Vous pouvez également utiliser sleep(time:3,unit:"SECONDS") si vous souhaitez spécifier l'unité de temps de votre sommeil.

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

15
Sysanin