Jenkinsジョブが定義された時間を待たない

Jenkinsジョブが定義された時間を待たない

シェルを実行するジェンキンスジョブがあり、特定の条件が期待どおりの状態ではない場合は待機したいが、30秒間待機するように要求し、現在の状況が22秒間実行されます。希望の状態に到達できない、または

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

現在はコードを一度だけ実行しているので(計算とにかく3つには達しません。)

何かが「準備された」時期を検出するには、名前付きパイプから読み取る既存の方法を使用し、準備ができたときに別々の(サブ)プロセスを使用してパイプに書き込むよりも悪いことをすることができます。

おすすめ記事