Próbuję przenieść skrypt Ant, który napisałem, aby budować i wdrażać projekty z poziomu struktury Jenkinsa (zamiast wyzwalać się z haka po zatwierdzeniu SVN, co było celowym sposobem, w jaki początkowo podchodziliśmy do rzeczy). Wszystko jest świetne, z wyjątkiem sytuacji, gdy potrzebuję plików etapów dla kroku wdrażania i chcę wprowadzić je do katalogu "kompilacji", który Jenkins tworzy dla tego zadania (a ponieważ mój plik build.xml znajduje się w lokalizacji innej niż projektowa, $ { basedir} i $ {user.dir} nie wskazują żądanej lokalizacji).Jak określić katalog budujący Jenkinsa z Ant?
w konfiguracji Jenkins, mam ustawić następujące:
[Jenkins] Budowa Record katalog główny: E:/buduje/$ {ITEM_FULLNAME}
[Job-Specific] kompilacji : C: \ vc-tools \ shadow \ build.xml
podczas uruchamiania kompilacji skrypt jest odpowiednio uruchamiany i tworzony jest katalog budowania konkretnego zadania, np.
E: \ buduje \ Test \ 2012-08-07_12-51-21
chcę się w tym katalogu z poziomu skryptu build, ale nie można dowiedzieć się, jak to zrobić. niektóre rzeczy próbowałem:
[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}
Uwaga: W przypadku tego ostatniego, próbowałem przechodzącą w:
BuildDir=E:/builds/${ITEM_FULLNAME}
jako własność skonfigurowanego z pracy w ciągu Jenkins (wyraźnie $ {} ekspansji nie ma miejsca w tym kontekście).
według documentation istnieją żadne konkretne zmienne środowiskowe, które są ustawione na pełną ścieżkę do katalogu build - Mogę fudge go hardcoding E: \ buduje korzeń i sklejaniu na $ {env.build_id}, ale było mając nadzieję, że łatwiej będzie uzyskać dostęp do pełnej ścieżki z czegoś, co ujawnia Jenkins (albo właściwość Ant i zmienna środowiskowa), aby skrypt był bardziej elastyczny.
Używam wersji Jenkins 1.476.
dzięki
Wygląda na to, że robisz coś bardzo dziwnego, czego nie rozumiem w pełni. Dlaczego plik build.xml nie znajduje się w katalogu głównym projektu, który budujesz? Zazwyczaj po prostu konfigurujesz Jenkinsa wyciągając pliki projektu z systemu SCM, a następnie uruchamiasz kompilację ... Wszystko to dzieje się w "przestrzeni roboczej", którą Jenkins zarządza dla tej pracy. –
Dlaczego potrzebujesz katalogu? Możesz bezpiecznie używać ścieżek względnych –
@ MarkO'Connor: - Mam ogólny skrypt budujący, który można wykorzystać w przypadku kilku projektów (istnieje plik właściwości specyficzny dla projektu, który skrypt usuwa, aby zakwalifikować jego działanie, ale ja nie mogę • zobacz, jak obecnie kopiuje ten sam plik build.xml do wielu podobnych projektów). – rguilbault