2016-11-03 2 views
1

In meinem Jenkins-Pipeline-Code, versuche ich Test, ob eine Website verfügbar ist oder nicht.Jenkins Pipeline-Skript zum Überprüfen der Website ist

withEnv([ 
         "ipaddrs=$FINAL_IP", 
         "appuri=http://$FINAL_IP:8080" 
       ]){ 
        timeout(time: 15, unit: 'MINUTES') { 
         waitUntil { 
          try {   

sh "curl -s --head --request GET $appuri/gameoflife | grep '200 OK'" 
           return true 
          } catch (Exception e) { 
           return false 
          } 

Aber auch wenn die Webseite nach oben ist, ist Jenkins Pipeline, das gleiche zu verstehen, nicht in der Lage und es bis 15 Minuten auf Lauf halten und timeing aus

Ich habe manuell lief curl von Jenkins Knoten und ich bin in der Lage, die Antwort zurück zu erhalten, wenn die Website auftaucht. Irgendeine Idee, was könnte die Angelegenheit sein?

Antwort

1

Vielleicht würde es funktionieren, wenn Sie URL statt Shell verwenden würden?

try {   
    new URL("$appuri/gameoflife").getText() 
    return true 
} catch (Exception e) { 
    return false 
} 
+0

Danke für die Antwort. Nein, es wird immer noch nach 15 Minuten Timeout. Aber die Website ist up und ich kann die Antwort zurück vom Browser bekommen. – Joy

+1

Das Problem ist mit meiner Proxy-Umgebungsvariablen. Du hast recht, es funktioniert gut. Auch die Curl-Shell-Schritte funktionieren nach der Behebung des Proxy-Problems einwandfrei. – Joy

Verwandte Themen