jenkins job não está esperando o tempo definido

1

Eu tenho um trabalho Jenkins que está executando um shell, eu quero que ele espere, se uma condição particular não é conforme o estado desejado, mas o trabalho é executado com 22 seg, onde eu pedi para ele esperar 30 seg, como a condição não está no estado desejado,

#!/bin/bash
container_name=$(helm install "$USER"-0.1.0.tgz | grep -A2  "v1/Pod(related)" | awk 'NR>2' | awk '{ print $1 }')
container_status=$(kubectl get pod "$container_name" | grep "$container_name" | awk '{ print $3 }')
count=0
if  [ "$container_status" != "Running" ]
   then 
      sleep 10
      count+=1
      if  [ $count -eq 3 ]
        then
          break
      fi          
   else 
      echo "Container is Ready!!"
fi      
    
por Mohd 05.02.2018 / 11:39

1 resposta

2

Parece que você quer fazer isso:

#!/bin/bash

while [ "$container_status" != "Running" ] ; do
    ...
done

porque atualmente você só passará por esse código uma vez (e assim a contagem nunca chegará a três de qualquer maneira).

Se você quiser detectar quando algo está "pronto", poderá fazer algo pior do que usar o truque antigo de leitura de um canal nomeado e ter um processo (sub) separado para gravar no canal quando estiver pronto.

    
por 05.02.2018 / 13:58