jenkins-shared-library/vars/waitForRollout.groovy

21 lines
877 B
Groovy

// Deploy ke baad sach me naya version live hua ya nahi - HTTP se check.
// ArgoCD apne aap sync karta hai, isliye thoda intezaar karna padta hai.
def call(String url, String expectedVersion, int tries = 30) {
withEnv(["CHECK_URL=${url}", "EXPECT=${expectedVersion}", "TRIES=${tries}"]) {
sh '''
i=0
while [ $i -lt "$TRIES" ]; do
GOT=$(curl -sf --max-time 5 "$CHECK_URL" 2>/dev/null \
| python3 -c "import sys,json;print(json.load(sys.stdin)['version'])" 2>/dev/null || echo "")
if [ "$GOT" = "$EXPECT" ]; then
echo " live version = $GOT (OK)"
exit 0
fi
i=$((i+1)); sleep 10
done
echo " $CHECK_URL par $EXPECT nahi aaya (aakhri: ${GOT:-kuch nahi})"
exit 1
'''
}
}