webentwicklung-frage-antwort-db.com.de

Jenkins-Pipeline: Rückgabewert des Build-Schritts

In dieser Integrations-Pipeline in Jenkins starte ich verschiedene Builds parallel mit dem Build-Schritt wie folgt:

stage('trigger all builds')
{
  parallel
  {
    stage('componentA')
    {
      steps
      {
        script 
        {
          def myjob=build job: 'componentA', propagate: true, wait: true
        }
      }
    }
    stage('componentB')
    {
      steps 
      {
        script
        {
          def myjob=build job: 'componentB', propagate: true, wait: true
        }
      }
    }
  }
}

Ich möchte auf den Rückgabewert des Schritts build zugreifen, damit ich in meinen Groovy-Skripten weiß, welcher Jobname und welche Nummer ausgelöst wurden.

Ich habe in den Beispielen festgestellt, dass das zurückgegebene Objekt Getter wie getProjectName() oder getNumber() enthält, die ich dafür verwenden kann.

Aber woher weiß ich die genaue Klasse des zurückgegebenen Objekts und die Liste der Methoden, mit denen ich es aufrufen kann? Dies scheint in der Pipeline-Dokumentation zu fehlen. Ich frage speziell nach diesem Fall, aber im Allgemeinen, wie kann ich die Klasse des zurückgegebenen Objekts und seine Dokumentation kennen?

13

Die Schrittdokumentation wird basierend auf einigen Dateien generiert, die mit dem Plug-In gebündelt sind, was manchmal nicht ausreicht. Eine einfache Möglichkeit wäre, einfach das class des Ergebnisobjekts auszudrucken, indem Sie getClass aufrufen:

def myjob=build job: 'componentB', propagate: true, wait: true
echo "${myjob.getClass()}"

Diese Ausgabe würde Ihnen sagen, dass das Ergebnis (in diesem Fall) ein org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper Ist, der Javadoc veröffentlicht hat.

In anderen Fällen muss ich normalerweise in den Jenkins-Quellcode eintauchen. Hier ist meine allgemeine Strategie:

25
mkobit