Sto provando a migrare uno script Ant che ho scritto per creare e distribuire progetti all'interno del framework Jenkins (invece di essere attivato da un hook post-commit SVN, che era il modo più appropriato con cui inizialmente ci si avvicinava alle cose). Tutto è grande, tranne che ho bisogno di mettere in scena i file per il passo di distribuzione e voglio inserirli nella directory 'build' creata da Jenkins per il lavoro (e dato che il mio build.xml vive in una posizione non specifica del progetto, $ { basedir} e $ {user.dir} non puntano alla posizione desiderata).Come determinare la directory di costruzione di Jenkins da Ant?
all'interno della configurazione Jenkins, ho installato il seguente:
[Jenkins] Corporatura Record Directory principale: E:/build/$ {} ITEM_FULLNAME
[Job-Specific] build : C: \ vc-tools \ shadow \ build.xml
durante l'esecuzione di una build, lo script viene lanciato in modo appropriato e viene creata una directory di creazione specifica del lavoro, ad es.
E: \ costruisce \ Test \ 2012-08-07_12-51-21
voglio arrivare a questa cartella dall'interno del script di build, ma non riesco a capire come. alcune delle cose che ho provato:
[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}
NOTA: Per che l'ultimo, ho provato passando:
BuildDir=E:/builds/${ITEM_FULLNAME}
come una proprietà configurata dal lavoro entro Jenkins (chiaramente $ {} espansione non ha luogo in questo contesto).
in base allo documentation, non ci sono variabili d'ambiente specifiche che sono impostate sul percorso completo della directory di compilazione - Posso fonderlo codificando E: \ builds root e virando su $ {env.build_id}, ma è stato sperando che ci sarebbe un modo più semplice per accedere al percorso completo da qualcosa che Jenkins espone (sia una proprietà Ant che una variabile di ambiente) per rendere lo script più flessibile.
Sto usando la versione 1.476 di Jenkins.
grazie
Sembra che tu stia facendo qualcosa di molto strano, che non capisco del tutto. Perché il file build.xml non si trova nella directory principale del progetto che stai creando? Normalmente basta configurare Jenkins per estrarre i file di progetto dal sistema SCM e quindi eseguire la build ... Tutto ciò avviene all'interno dello "spazio di lavoro" che Jenkins gestisce per quel lavoro di costruzione. –
Perché hai bisogno della directory? Potresti usare i percorsi relativi in modo sicuro –
@ MarkO'Connor: - Ho uno script generico che può essere sfruttato per diversi progetti (esiste un file di proprietà specifico del progetto che lo script abbassa per qualificare ciò che sta facendo, ma io non lo faccio Per ora, vediamo il valore nel copiare lo stesso file build.xml su più progetti simili). – rguilbault