詹金斯工作不等待定义的时间

詹金斯工作不等待定义的时间

我有一个正在执行 shell 的 jenkins 作业,如果特定条件不符合预期状态,我希望它等待,但该作业执行 22 秒,正如我要求它等待 30 秒一样当前情况未达到所需状态,

#!/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      

答案1

看起来你想要这样做:

#!/bin/bash

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

因为目前您只会执行该代码一次(因此数数无论如何,永远不会达到三)。

如果您想检测某些内容何时“准备好”,您可能会做得比使用从命名管道读取的旧技巧更糟糕,并在准备好时使用单独的(子)进程写入管道。

相关内容