Jenkins: Jenkins Nested / ListView-Ansichten programmatisch erstellen

9

Ich versuche, jenkins Ansichten (ListView) unter einer bestimmten übergeordneten Ansicht zu erstellen. Ich kann die Ansicht auf der obersten Ebene erstellen, finde jedoch keine Möglichkeit, eine Ansicht unter einer bestimmten übergeordneten Ansicht zu erstellen. Ich benutze groovy, um dies zu erreichen. Unten ist der Anwendungsfall: 1. Ich verwende das Nested View-Plugin, um die Jobs zu organisieren. 2. Leaf-Level-Ansichten sind die Jenkins-ListView und alle Jobs werden unter Blattebenenansichten platziert.

Um den Ansichtserstellungsprozess zu automatisieren, muss ich Ansichten auf einer bestimmten Ebene (oder unter einer bestimmten übergeordneten Ansicht) in einer Ansichtshierarchie erstellen können. Ich bin in der Lage, die Ansichten zu erstellen, aber es wird immer als oberste Ebene erstellt. Unten ist das Skript, an dem ich gerade arbeite. Mit diesem Skript, auch wenn ich die Elternansicht übergebe, wird es auf der obersten Ebene erstellt. Bitte helfen:

%Vor%

Hier ist die weitere Analyse gemacht. Am Ansichtserstellungsprozess sind zwei Hauptklassen beteiligt: ​​hudson.model.ViewGroupMixIn und jenkins.model.Jenkins. Jenkins.addView (View view) -Methode muss aufgerufen werden, um die Ansicht zu erstellen. Diese Methode ruft die addView () -Methode der ViewGroupMixIn-Klasse auf.

addView von der Jenkins-Klasse

%Vor%

addView von ViewGroupMixIn

%Vor%

Beachten Sie, dass der Besitzer der Ansicht von der addView-Methode überschrieben wird. Selbst wenn wir den Besitzer der Ansicht übergeben, wird der Standardwert verwendet. viewGroupMixIn-Instanz wird in der Jenkins-Klasse als final deklariert. Hier ist die Deklaration für viewGroupMixIn:

%Vor%

Konstruktor für ViewGroupMixIn:

%Vor%

Es gibt keine Möglichkeit, den Besitzer zu ändern, ohne die Jenkins-Klasse zu ändern. Der obige Auszug stammt aus der Klasse jenkins.model.Jenkins. Beachten Sie, dass beim Erstellen des ViewGroupMixIn-Objekts "diese" Referenz übergeben wird, die das Jenkins-Objekt darstellt. Dies bedeutet, dass die verschachtelten Sichten nicht programmatisch erstellt werden können. Es muss nur über die Benutzeroberfläche erstellt werden. Abgesehen davon unterstützt die NestedView-Klasse des NestedView-Plugins nicht die Übergabe des Eigentümers an den Konstruktor. Sieht nicht so aus, als könnten Ansichten auf diese Weise erstellt werden. Ich bin mir nicht sicher, ob es einen anderen Weg gibt.

    
aseem mishra 05.08.2013, 21:46
quelle

4 Antworten

0

Es gibt ein großartiges job-dsl-Plugin , um einen Job- und Job-Prozess zu automatisieren Ansichtserstellung Checkout Beispiel für eine verschachtelte Ansicht dsl.

Wir haben es für Continuous Delivery verwendet, und es funktioniert ziemlich gut! Sie können hier starten.

>     
Vitalii Elenhaupt 26.05.2015 15:09
quelle
0

Wenn Sie einen neuen ListView aufrufen, können Sie ihn direkt übergeben, rufen Sie getOwner nicht auf

%Vor%     
Stanislaw Wozniak 04.06.2015 08:01
quelle
0

Um Ansichten in verschachtelten Ansichten zu erstellen, sollten Sie die Methode des NestedView-Objekts anstelle von Jenkins.instance.addView verwenden.

%Vor%     
epishan 13.06.2016 13:11
quelle
0

Ich würde vorschlagen, Job DSL Plugin zu verwenden, das sehr einfach ist, die Sachen auf Jobs zu organisieren und zu kontrollieren.

Sie können so etwas mit Hilfe von Groovy verwenden:

%Vor%     
KeepSmiling 17.02.2016 22:22
quelle

Tags und Links