Wir haben dieses komplexe groovy Skript für jenkins, dass so etwas wieGroovy: Keine solche DSL-Methode ‚ansible‘ unter den Schritten gefunden
def run_pipeline() {
try {
stage('Build') {
sh "docker build . -t ansible"
}
stage('Linux Common Tag') {
def stage_common = [
[tag: 'common', serial: '100%', user: "${env.ANSIBLE_USER}", playbook: 'platform.yml'],
]
run_stages(stage_common, serial)
}
}
def run_stages(stages, serial) {
stages.each { phase ->
def serial_percent=serial.containsKey(phase.tag) ? serial[phase.tag]: phase.serial
ansible(phase.tag, phase.user, phase.password, limit=phase.limit, playbook=phase.playbook, serial=serial_percent)
}
execute_stages()
}
def ansible(tag, user, password, limit='', serial='100%' playbook='platform.yml') {
// stuff in here
}
sieht Was wir bekommen
istjava.lang.NoSuchMethodError: No such DSL method 'ansible' found among steps
Es scheint zu sein, passiert in der run_stages
Funktion
Irgendwelche Eingabe auf, was ich falsch mache? Vielen Dank!
Warum die Zuweisung von Parametern beim Aufruf der Funktion? Und die Reihenfolge erscheint anders als in der Funktion definiert. – ipper
In 'run_stages (stage_common, serial)', woher kommt 'serial'? Dein 'try' fehlt ein' catch'/'finally' und schließende Klammern und es gibt ein fehlendes Komma zwischen' serial = '100%' playbook = 'platform.yml''. – mkobit
das fehlende Komma war es .. Wenn Sie es als Antwort hinzufügen möchten, werde ich es akzeptieren – Mike