2013-10-04 23 views
15

Sind die Jenkins-Parameter die Groß- und Kleinschreibung? Ich habe einen parametrisierten Build, der einen ant-Parameter namens "build_parameter" benötigt, der vor dem Build gesetzt wird. Wenn ich versuche, auf die von Jenkins gesetzte $ {BUILD_NUMBER} zuzugreifen, bekomme ich den Wert für den ant-Parameter. Wenn die Build-Parameter nicht von der Groß- und Kleinschreibung abhängen, kann mir jemand eine Lösung vorschlagen? Ich kann den Namen des Build-Parameters nicht ändern, da ich meine Build-Skripte ändern muss (was keine Option ist). Vielen Dank!Jenkins - Zugriff auf die Umgebungsvariable BUILD_NUMBER

+0

siehe https://issues.jenkins-ci.org/browse/JENKINS-1322 –

+0

Adarsh: My build_param Die Variable $ {BUILD_NUMBER} hat unterschiedliche Werte. Tut mir leid, dass ich nicht klar bin. Ich brauche einen Weg, um auf den Jenkins $ {BUILD_NUMBER} -Wert zuzugreifen. Wenn ich jedoch versuche, auf die Umgebungsvariablen ($ {BUILD_NUMBER}) zuzugreifen, wird der andere Wert ausgegeben. – Anand

+0

Nach meiner Untersuchung gibt BUILD_NUMBER Ihnen aktuelle Build-Nummer. Sie müssen also Ihr Build-Skript ändern. Oder versuchen Sie, eine neue Variable zu erstellen, ordnen Sie ihr den Wert BUILD_NUMBER zu und verwenden Sie sie. –

Antwort

15

Um Ihre erste Frage zu beantworten, Jenkins Variablen sind Groß-und Kleinschreibung. Wenn Sie jedoch ein Windows-Stapelscript schreiben, wird die Groß-/Kleinschreibung nicht berücksichtigt, da Windows den Fall nicht interessiert.

Da Sie sich mit Ihrer Konfiguration nicht sehr klar auskennen, nehmen wir an, Sie verwenden einen Ameisen-Build-Schritt, um Ihre Ameisen-Aufgabe zu starten. Werfen Sie einen Blick auf the Jenkins documentation (dieselbe Seite, die Adarsh ​​Ihnen gab, aber anderes Kapitel) für ein Beispiel, wie man Jenkins-Variablen für Ihre Ameisenaufgabe verfügbar macht.

EDIT:

Daher werde ich die Umgebungsvariable $ zugreifen müssen {BUILD_NUMBER} die URL zu erstellen.

Warum verwenden Sie nicht $BUILD_URL dann? Ist es nicht im erweiterten E-Mail-Plugin verfügbar?

+0

Peter: Bitte beziehen Sie sich auf meinen Kommentar oben für Sagars Antwort. Ich brauche den Wert der Umgebungsvariablen $ {BUILD_NUMBER}, aber ich nehme an, dass er von dem anderen Parameter überschrieben wird (Kleinbuchstaben). Ich benutze Mac OS und ich verwende diese Parameter nicht in irgendeinem Bash-Skript. Alles, was ich versuche, ist, es in den E-Mail-Inhalten für die erweiterte E-Mail-Benachrichtigung zu verwenden. – Anand

+0

Peter: Danke für deinen Vorschlag. Ich habe $ {BUILD_URL} nach dem Vorschlag ausprobiert. Es bringt mich auf die Build-Seite. Gibt es eine Möglichkeit, es direkt auf das Artefakt zu verweisen, so dass es den Download des Artefakts direkt über den Link in der E-Mail startet? – Anand

+3

Es ist $ {BUILD_URL}/Artefakt/

5

Unter der Annahme, ich verstehe Ihre Frage und das Setup richtig,

Wenn Sie versuchen, die Build-Nummer in Ihrem Skript zu verwenden, müssen Sie Optionen:

1) Beim Aufruf ant, Verwendung: ant -Dbuild_parameter=${BUILD_NUMBER}

2) Ihr Skript ändern, so dass:

<property environment="env" /> 
<property name="build_parameter" value="${env.BUILD_NUMBER}"/> 
+0

Sagar: Ich benutze parametrisierte Build-Option, damit der Benutzer den build_number-Parameter (Anmerkung: es ist in lower_case) eingeben und dann in meinem ant-Skript verwenden. Ich muss jedoch eine E-Mail mit dem Artefaktstandort als URL senden. Daher muss ich auf die Umgebungsvariable $ {BUILD_NUMBER} zugreifen, um die URL zu erstellen. Der Benutzer hat den Parameter $ {build_number} und die Umgebungsvariable $ {BUILD_NUMBER} eingegeben. Aber wenn ich $ {BUILD_NUMBER} an die URL anhange, nimmt es immer den in $ {build_number} gespeicherten Wert auf. – Anand

+0

Aah ok. Warum ändern Sie in diesem Fall nicht "build_number" in "build.number" in Ihrer Parameterliste. Es hat immer noch die gleiche Bedeutung und die Leute werden es nicht mit etwas anderem verwechseln; gleichzeitig wird es sich komplett von BUILD_NUMBER unterscheiden. Ich bin mir nicht sicher, ob es Groß-/Kleinschreibung gibt (sind Ihr Server oder Ihr Client unter Windows?), Aber das wäre der beste Ausweg. Sie können weiterhin Punkt 1 oder 2 verwenden, um die internen Variablen Ihres Skripts mit den Parameter- und Umgebungsvariablen abzugleichen. – Sagar

Verwandte Themen