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
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.
Alternativ können Sie auch ein Multi-Branch-Workflow-Projekt erstellen, sodass jeder Zweig automatisch mit einem eigenen Verlauf erstellt wird.
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
Dies sollte ein Kommentar sein oder einfach zu Ihrer [bestehenden Antwort] hinzugefügt werden (https://stackoverflow.com/a/34438433/542251) – Liam
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}"
}
Try "Leichte Kasse" Checkbox zu deaktivieren.
gefunden, dass in neuesten Kommentare von JENKINS-28447
- 1. LibreOffice, Verwenden von Konstanten als Abfrage Parameter
- 2. Verwenden Sie Vorlage mit Basisklasse als Parameter
- 3. Verwenden von Kontextvariablen als Javascript-Parameter
- 4. Wie Parameter oder Variablenwerte als Knotenname verwenden?
- 5. Verwenden von privaten verschachtelten Typ als Parameter
- 6. XSL, XML als Parameter für Vorlage verwenden
- 7. Angular Dynamic Path Parameter als Resolve Parameter
- 8. ExpandoObject als Parameter
- 9. PHP-Funktionsparameter als Parameter
- 10. Funktion als Parameter einfügen
- 11. Kann String.Empty nicht als Standardwert für einen optionalen Parameter verwenden
- 12. sql Server gespeicherte Prozedur verwenden varchar max als Parameter
- 13. Wie Aufzählungen als Parameter in Swift Protokolle optionale Funktionen verwenden
- 14. Verwenden von Div ID-Parameter als HTML-Tag
- 15. Parameter zu verwenden std :: größer oder std :: less als Argument
- 16. Kann der Controller eine Schnittstelleninstanz als Parameter verwenden? ASP.NET MVC
- 17. Leere Schnittstelle oder leere Basisklasse als Typ-Parameter Einschränkung verwenden
- 18. Mehrere NSUInteger-Enums als Parameter für eine Methode verwenden
- 19. MySQL: Verwenden Sie CASE/ELSE-Wert als Join-Parameter
- 20. Ist es möglich, Datensatznamen als Parameter in Erlang zu verwenden
- 21. Verwenden Sie einen Variablennamen als Parameter in einer Bash-Funktion
- 22. Verwenden von noexcept als Lambda-Modifikator oder Parameter-Constraint
- 23. eine Harke Aufgabe verwenden, die Parameter als Voraussetzung
- 24. Verwenden von REST zum Binden eines Werts als Parameter
- 25. Neo4j verwenden Ergebnis von MATCH als Parameter zu CALL
- 26. Verwenden von 'Type' und 'Enum' als Parameter in .NET
- 27. SQL CREATE LOGON - kann @ Parameter nicht als Benutzername verwenden
- 28. Wann sollte ich HttpRequestMessage als Parameter in Web-API verwenden
- 29. Kann ich eine Variable als Parameter für AWKs {print} verwenden?
- 30. Frage: URL als Parameter, mit Python und Sesame-Workbench verwenden
Danke, das genau mein Problem beschreibt. Ich werde das "Inline-Bootstrap-Skript" -Ansatz versuchen. – MBeck
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