Ist es möglich, die gesamte Repository-URL durch eine parametrisierte Zeichenfolge in Hudson / Jenkins zu ersetzen?

8

Ist es in Hudson / Jenkins möglich, die gesamte Zeichenfolge in der Subversion-Modul-Repository-URL durch einen String-Parameter zu ersetzen? Ich möchte nicht einfach nur die Version oder etwas ähnliches ersetzen, ich möchte die gesamte URL ersetzen.

Also, wenn ich den Build ausführe, würde ich eine Eingabeaufforderung für die URL erhalten und ich würde etwas wie "http: //scm.work.corp/svn/com.work.package/tags/project-" eingeben. 4.0.0.RELEASE "und es würde das überprüfen und aufbauen.

Das Ersetzen der Teile "com.work.package" und "project-4.0.0.RELEASE" wäre genauso akzeptabel. Ich möchte im Grunde, dass es ein Job ist, der jede Veröffentlichung aufbauen kann.

    
AHungerArtist 21.04.2011, 22:03
quelle

6 Antworten

2

Ich nehme an, ich hätte meinen Anwendungsfall spezifizieren sollen.

Ich verstehe den Zweck von Hudson. Der einzige Grund, warum ich das möchte, ist, dass Hudson einen einzelnen Build für ein Release ausführt, das der Benutzer angibt, damit ein von uns verwendetes Plug-in (Sonar) ausgelöst werden kann, ohne es in jedem Pom hinzuzufügen und an jede Phase anzuhängen. Wir machen unsere Releases manuell, also wollen wir nicht, dass Hudson damit umgeht. Wir wollen jedoch Sonar-Berichte über unsere Releases, also diesen Anwendungsfall.

Dies erwies sich jedoch als einfacher als erwartet. Ich habe einfach einen parametrisierten Build erstellt und $ {PARAMETER} in die svn-Repository-URL geschrieben. Jetzt hat Jenkins mir eine Fehlermeldung gegeben, dass das eine ungültige URL ist, aber das Build funktioniert so, wie ich es erwartet habe. Ich bin froh, dass ich es trotz dieser Fehlermeldung ausprobiert habe.

    
AHungerArtist 22.04.2011, 14:15
quelle
11

Ja, das kannst du. Aber Sie können nicht Jenkins / Hudson das SVN für Änderungen überwachen lassen. Selbst wenn Parameter vorhanden waren, funktionierte das bei mir nicht richtig. Wenn Sie jedoch den SVN von einem Job überwachen, für den die Repository-URL nicht parametrisiert ist, veranlassen Sie, dass dieser Job einen Downstream-Job auslöst, der die gesamte Repository-URL als Parameter übergibt, und anschließend den Repository-URL-Parameter verwendet .

Das machen wir für unsere Build-Sachen. Wir haben einen Job, der das Produkt aus SVN basierend auf der Repository-URL erstellen kann, mit der Sie den Job gestartet haben. Dann haben wir eine Reihe von Trigger-Jobs, die bestimmte Zweige überwachen; Wenn eine Änderung bemerkt wird, starten Sie den Build-Job und übergeben Sie die URL an ihn.

    
Jason Swager 22.04.2011 13:44
quelle
4

Wenn Hudson / Jenkins die URL nicht im Voraus kennt, wie sollte eine fortlaufende Build-Integration durchgeführt werden?

Und wie macht Hudson / Jenkins ein update , wenn Sie die URL ständig ändern? Du musst Hudson / Jenkins dazu bringen, entweder jedes Mal einen neuen Checkout durchzuführen oder den Befehl svn switch zu verwenden.

Der ganze Zweck eines Tools wie Hudson / Jenkins besteht darin, fortlaufende Builds zu erstellen, die Sie davon abhalten wollen. Da du keine kontinuierlichen Builds machst, warum solltest du dich mit einem Tool wie Hudson / Jenkins beschäftigen? Warum schreibst du nicht dein eigenes Ant-Skript, das prüft, was du willst und dann den Build machst?

Jeder Zweig und jedes Modul sollte einen eigenen Hudson / Jenkins-Job haben, und mit dem Template-Plugin können Sie einfach einen Job als Vorlage für einen anderen Job kopieren. Es ist also nicht so schwierig, alle benötigten Builds zu erstellen.

    
David W. 22.04.2011 03:35
quelle
2

Du kannst es tun, aber du kannst nicht haben, dass Jenkins svn für dich verwaltet. Erstellen Sie einen parametrisierten Build mit Ihren Strings, und führen Sie dann im Ausführungsschritt ein svn co ${parameter_you_selected} plus aus, was auch immer Ihre Build-Schritte sind (rufen Sie Ant-Skripte, Makefiles, Rakefiles usw. auf)

    
aflat 22.04.2011 03:57
quelle
2

Ja, Sie können, ich hatte das gleiche Problem, aber änderte es in $ VARIABLE und schien zu funktionieren, das einzige Problem war, dass Sie ein "." im lokalen Modulverzeichnis. Es hat lange gedauert, das herauszufinden.

    
Pedro_Nieto 17.02.2015 11:28
quelle
1

Ja, du kannst. Überprüfen Sie Erstellen einer bestimmten SVN-Revision mit Hudson . In diesem Fall wird lediglich das Suffix der URL parametrisiert. In Ihrem Fall benötigen Sie 2 Parameter für "com.work.package" und "project-4.0.0.RELEASE".

Ich hoffe, es hilft!

    
Spyros Doulgeridis 07.11.2011 15:39
quelle

Tags und Links