1

Ich versuche derzeit ein starkes Skript aus meiner Pipeline als eine meiner Knoten zu laufen, aber ich lief in diesen Fehler:Warum wird Groovy nicht in Jenkins Pipeline laufen?

[CompanyName] Running shell script 
+ ./ideainspect.groovy 
env: groovy: No such file or directory 

Auch habe ich versucht, das Plugin für groovy installieren, aber aus irgendeinem Grunde, wird nicht installiert. Immer wenn ich die Seite für Werkzeuge aktualisiere, geht das Installationsprogramm verloren. Installiere ich groovy falsch? Bitte helfen Sie!

Edit: Relevante Daten

stage 'Static Analysis' 
node { 
    dir("Android/btMobileApp") { 
     sh "./ideainspect.groovy" 
     sh "./gradlew checkstyle lintDebug" 
    } 
} 

Und die ideainspect.groovy-Datei ist eine ausführbare Datei mit dem shebang #!/usr/bin/env groovy, die das Problem sein könnte.

+0

Wie sieht der relevante Teil Ihrer jenkinsfile aus? –

+0

Die obigen Informationen wurden hinzugefügt. – iHowell

Antwort

1

Hat Ihr Benutzer von jenkins einen groovigen Pfad? Wenn so die shebang Graben und versuchen

sh 'groovy ideainspect.groovy'

Wenn es nicht auf dem Weg ist, können Sie

sh versuchen '/ usr/bin/groovy ideainspect.groovy'

(oder wo auch immer groovy installiert ist)

Oder fügen Sie es alternativ zur Pfadumgebungsvariablen hinzu, indem Sie Jenkins verwalten -> Systeme konfigurieren. Dies ist möglicherweise nicht angemessen, wenn Sie viele Projekte mit verschiedenen Versionen von groovy haben

+0

Gibt es eine Möglichkeit zu testen, ob es auf dem Pfad installiert ist? Ich habe es auf der Maschine installiert, ich kann nicht sagen, ob der Benutzer Zugriff hat. – iHowell

+0

Probieren Sie einfach sh 'groovy ideainspect.groovy'. Wenn es etwas wie "Kann nicht groovy finden" sagt, dann ist es nicht auf dem Weg. Oder ssh auf die Box und su auf den Benutzer jenkins, dann versuchen und groovy von dort laufen, beläuft sich auf die gleiche Sache. –

+0

Ok, mit der ersten Methode aus der Skriptkonsole in verwalten jenkins, bekomme ich den Fehler: groovy.lang.MissingMethodException: Keine Signatur der Methode: Script1.sh() ist anwendbar für Argumenttypen: (java.lang.String) Werte : [groovy ideainspector.groovy] Mögliche Lösungen: is (java.lang.Object), benutze ([Ljava.lang.Object;), run(), run(), any(), jeder (groovy.lang.Closure) – iHowell