2015-12-22 4 views
5

Ich möchte unsere alten FreeStyle-Dev-Builds, in denen wir den Zweignamen als Build-Parameter verwenden, zu Workflow-Builds migrieren. Dies funktioniert soweit gut, das einzige, was wir wirklich vermissen, ist die Fähigkeit, den Parameter zu verwenden, z.B. "branch_name", als der Zweigspezifizierer für das Workflow-Skript aus SCM Abschnitt. Bei einem kostenlosen Style-Build funktioniert das gut. Irgendwelche Ideen, wie dies erreicht werden könnte? Wir wollen nicht, dass ein Entwickler die Konfiguration vor dem Start eines Builds ständig ändert.Jenkins-Workflow-Job: Parameter als Zweigspezifizierer verwenden

Antwort

1

Klingt wie JENKINS-28447:

Wenn für einen Worflow Job des "Groovy CPS DSL von SCM" Option auswählen, der SCM-Plugins erscheinen bauen Parameter nicht zu beheben oder Umgebungsvariablen. Ich bin mit dem git-Plugin, und wenn ich es von anderen Jobs verwenden kann ich einen Build-Parameter angeben, wie „BuildBranch“, und verwenden, wenn welchem ​​Zweig Angabe sollte

Die Abhilfe wäre die Verwendung gebaut werden ein Inline-Bootstrap-Skript, das nach dem Auschecken load aufruft, wie im Tutorial beschrieben.

+0

Danke, das genau mein Problem beschreibt. Ich werde das "Inline-Bootstrap-Skript" -Ansatz versuchen. – MBeck

+0

Für diejenigen, die dies betrachten, scheint es, dass dieses "Problem" wurde im Wesentlichen markiert "wird nicht beheben" (tatsächlich "gelöst", aber der Kommentar schlägt ansonsten o_O) [* Lightweight Checkout durchläuft einen völlig nicht verwandten Code Pfad und derzeit SCMFileSystem-Implementierungen berücksichtigen Variablen nicht (oder verfügen sogar über eine API, mit der sie Variablen IIRC berücksichtigen können). Wäre ein separates Feature *] (https://issues.jenkins-ci.org/browse/JENKINS-28447?focusedCommentId=308351&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment- 308351) – Liam

-1

Alternativ können Sie auch ein Multi-Branch-Workflow-Projekt erstellen, sodass jeder Zweig automatisch mit einem eigenen Verlauf erstellt wird.

+0

Das Multi-Branch-Workflow-Projekt ist eine interessante Idee, die ich testen muss. Da wir manchmal mehr als 100 Devs mit mehreren Feature-Zweigen haben, muss ich einen Weg finden, diese Zweige klar zu organisieren. – MBeck

+0

Dies sollte ein Kommentar sein oder einfach zu Ihrer [bestehenden Antwort] hinzugefügt werden (https://stackoverflow.com/a/34438433/542251) – Liam

0

Ich habe einen Workflow-DSL-Skript hier beschrieben: https://groups.google.com/forum/#!msg/jenkinsci-users/jSKwSKbaXq8/dG2mn6iyDQAJ

In diesem Skript, ich habe einen Build Parameter FREEBSD_SRC_URL genannt, die bis auf den Workflow übergeben wird. Basierend auf verschiedenen Parametern in dieser URL kann ein anderer Zweig ausgecheckt werden.

Wenn Sie Git verwenden, können Sie immer noch die gleiche Technik verwenden, um einen Build-Parameter an das Skript zu übergeben, aber Sie müssten die Dinge ein wenig anders machen. Zum Beispiel könnten Sie einen Parameter branch_name in Ihrem Job definieren und etwas tun, wie dies in Ihrem Workflow-Skript:

String checkout_url = "https://github.com/jenkinsci/jenkins" 
String branch_name = "master" 

if (getBinding().hasVariable("CHECKOUT_URL")) { 
    // override default URL from build parameter 
    checkout_url = CHECKOUT_URL 
} 
if (getBinding().hasVariable("BRANCH_NAME")) { 
    // override default branch from build parameter 
    branch_name = BRANCH_NAME 
} 

node { 
    // Do the git checkout 
    git branch: "${branch_name}", url: "${checkout_url}" 
} 
3

Try "Leichte Kasse" Checkbox zu deaktivieren.

Lightweight checkout screenshot

gefunden, dass in neuesten Kommentare von JENKINS-28447

Verwandte Themen