Wie, um zu bestimmen, Jenkins build-Verzeichnis von Ant?

Ich versuche zu migrieren, ein Ant-Skript, das ich schrieb, zu bauen und Bereitstellung von Projekten innerhalb der Jenkins-framework (statt ausgelöst von einem SVN post-commit-hook, das war die praktische Möglichkeit, die wir zunächst näherte sich die Dinge). Alles ist Super, außer ich brauche die Bühne-Dateien für die Bereitstellung Schritt, und ich möchte Sie zu Stopfen in der 'build' - Verzeichnis Jenkins schafft für den job (und da meine build.xml Leben in einer nicht-projektspezifischen Ordner, ${basedir} und ${user.dir} nicht-Punkt an die gewünschte Position).

innerhalb der Jenkins-Konfiguration, ich habe setup die folgenden:

[Jenkins]
Build Record, Root Directory: E:/builds/${ITEM_FULLNAME}

[Job-Spezifisch]
Build-Datei: C:\vc-tools\shadow\build.xml

beim ausführen eines bauen, das Skript ist entsprechend gestartet und ein job-spezifische build-Verzeichnis erstellt, z.B.

E:\builds\Test\2012-08-07_12-51-21

Möchte ich, um auf dieses Verzeichnis innerhalb des build-Skripts, aber kann nicht herausfinden, wie. einige der Dinge, die ich versucht habe:

 [echo] ${basedir}: C:\vc-tools\shadow
 [echo] ${user.dir}: C:\vc-tools
 [echo] ${env.workspace}: C:\Program Files (x86)\Jenkins\workspace\Test
 [echo] ${env.build_id}: 2012-08-07_12-51-21
 [echo] ${jenkins_home}: C:\Program Files (x86)\Jenkins
 [echo] ${BuildDir}: E:/builds/${ITEM_FULLNAME}

Hinweis: für das Letzte habe ich versucht, die vorbeifahrenden:

 BuildDir=E:/builds/${ITEM_FULLNAME}

als Eigenschaft konfiguriert, der die Aufgabe innerhalb von Jenkins (klar $ {} - Erweiterung nicht stattfinden, in diesem Kontext).

entsprechend der Dokumentation, gibt es keine speziellen environment-Variablen, die eingestellt werden, um die vollständige build-Verzeichnis Pfad -- ich kann fudge durch hardcoding der E:\builds root und Heften auf ${env.build_id}, aber hatte gehofft, es wäre ein einfacher Weg, um Zugriff auf den kompletten Pfad von etwas Jenkins macht (entweder ein Ant-Eigenschaft und einer environment-Variablen), um das Skript flexibler gestalten.

Ich bin mit Jenkins version 1.476.

Dank

  • Klingt wie Sie tun etwas sehr seltsam, das verstehe ich nicht. Warum ist das build.xml Datei liegt nicht im root-Verzeichnis des Projekts, das Sie erstellen? Normalerweise müssen Sie nur konfigurieren, die Jenkins ziehen Sie die Projekt-Dateien aus dem SCM-system und führen Sie dann das bauen... das Alles geschieht innerhalb des "Arbeitsbereichs" die Jenkins schafft für das build-job.
  • Warum müssen Sie das Verzeichnis? Könnten Sie relative Pfade verwenden, sicher
  • Ich habe einen generic build-Skript, dass verwendet werden kann für mehrere Projekte (es ist ein Projekt-spezifischen property-Datei, die das Skript nach unten zieht, um sich zu qualifizieren, was Ihr tut, aber ich sehe nicht den Wert, im moment, im kopieren der gleichen build.xml Datei über mehrere, ähnliche, Projekte).
  • wie bereits in der Frage, mein Skript ausgeführt wird, von einem Standort (C:\vc-tools\shadow), der Arbeitsbereich ist in eine andere (%JENKINS_HOME%\workspace\<job>) und das build-Ergebnis ist in einem weiteren (E:\builds\<job>\%BUILD_ID%). Ich gebe zu, es ist ein wenig seltsam, da Sie in der Regel, Haus build.xml innerhalb der Projekt-root - (oder einige relative Verzeichnis), in der Erwägung, dass habe ich mir in einer völlig anderen Lage. Ich kenne keinen Weg, um relativ-Adresse E:\builds aus C:\vc-tools\shadow (abgesehen von hardcoding natürlich).
  • Ich vermisste zeigen, dass Ihr build-Skript ist in einem anderen Verzeichnis. Bitte ignorieren Sie meinen Kommentar 🙂
InformationsquelleAutor rguilbault | 2012-08-07
Schreibe einen Kommentar