Ich bin sehr neu im Umgang mit groovy. Besonders wenn es um Jenkins + Groovy + Pipelines geht.Jenkins und Groovy und Regex
Ich habe eine String-Variable, die von Zeit zu Zeit ändern kann und eine Regex anwenden möchte, um die 2 oder 3 möglichen Ergebnisse zu berücksichtigen, die die Zeichenfolge zurückgeben kann.
In meinem groovy Code ich habe:
r = "Some text that will always end in either running, stopped, starting." def regex = ~/(.*)running(.*)/ assert regex.matches(r)
Aber ich erhalte einen Fehler in der Ausgabe jenkins:
hudson.remoting.ProxyException: groovy.lang.MissingMethodException: Keine Unterschrift der Methode: java.util.regex.Pattern.matches() gilt für die Argumenttypen: (java.lang.String)
UPDATE: Ich war in der Lage, eine ziemlich geschickte jenking groovy While-Schleife in einem Pipeline-Job zu erstellen ich auf einen Remote-Prozess mit der Regex-Info hier und einen Tipp in einem anderen Beitrag (do .. while() in Groovy with inputStream?) warten warten.
while({
def r = sh returnStdout: true, script: 'ssh "Insert your remote ssh command that returns text'
println "Process still running. Waiting on Stop"
println "Status returned: $r"
r =~ /running|starting|partial/
}());
ich die ‚assert‘ Linie Entnahme endete und nur tun, ‚r = ~/Laufen | Start | gestoppt /‘ Dank @injecteer – JuanD