2013-02-15 23 views
5

Introdurre: Ho un piano semplice con un semplice lavoro. Compiti: codiceArtefatti di bambù che raccolgono intere cartelle

  1. Fonte checkout
  2. MSBuild
  3. eseguire test
  4. generare il rapporto di prova

e in 4 step mia utilità generare rapporto di prova con screenshot. Il rapporto contiene collegamenti assoluti alle immagini. (ad esempio: onclick="window.open('./Screenshots/66ef3a03-8b82-4b40-b49d-b0155e273738.png');return false;"). Se apro un report sul computer locale, il report funziona correttamente, ma su Bamboo ricevo l'errore "Pagina non trovata", perché Bamboo non ha raccolto la cartella "Screenshot".

Domanda: Come posso impostare la definizione di artefatto per raccogliere la cartella con i file?

P.S. Provo a impostare il modello di copia \*.*, ma il bambù raccoglie solo i file (senza cartelle e sottocartelle)

risposta

1

Il modo migliore per farlo è comprimere tutti gli artefatti insieme. Ho creato uno script bash per fare questo

cd "toArtifactFolder" 
zip -r Artifact . 

Poi nelle impostazioni di progetto di bambù è necessario modificare l'Artefatto e ha cambiato il luogo dove mai il file manufatto zip è Poi nel Copy Pattern basta inserire il file zip per esempio Artifact.zip

+0

Vedere la mia domanda: "Come posso configurare la definizione di elementi per raccogliere la cartella con i file". Il mio obiettivo principale: aprire il file di report html con screenshot sul Web. Se raccolgo tutti i file da archiviare, prima dovrei scaricare, decomprimere e solo dopo aver aperto tutti i rapporti. Questo è scomodo. –

+0

Sì, ho già fatto questo script. In questo modo il mio archivio ha dimensione 50mb. E dopo ogni build dovrei scaricare questo archivio .. non è un buon modo. –

6

Non vi resta che dare la cartella Location, come "costruire /", per esempio, e poi, nel modello di copia si può mettere **/*. * Questo dovrebbe copiare tutti i file desiderati.

prega di notare che:

  • La posizione è relativa alla directory di compilazione. Non utilizzare il percorso assoluto per fare riferimento alla posizione.
  • Gli asterischi non sono supportati per la posizione. Per questo campo, fornire il nome della cartella in cui si trova il file.

Inoltre, è possibile definire tutte le definizioni di artefatto desiderate.

Cheers!

+1

Funziona in modo discontinuo? Raccoglierà sottocartelle? – hatesms

+0

@hatesms si, lo farà. –

+1

Grazie :-). Funziona in modo ricorsivo con tutte le sottocartelle e i file all'interno dei sub-mondo – vkrams

0

Bamboo utilizza "Ant file copy pattern".

  • corrispondenza ricorsivamente contro tutti i file: **/*
    • Questo include quasi tutto
    • Purtroppo questo non includono dot-files, almeno nel mio test su un agente Linux compilazione. Non sono riuscito a trovare una soluzione alternativa oltre a un secondo artefatto (modello **/.*) o alla creazione di un archivio.
  • la corrispondenza con tutti i file in qualsiasi sottocartella: */*
    • Questo non include foo/bar/test.xyz
    • Ciò comprende sia foo/test.xyz e bar/test.xyz

Si può fare di corrispondenza più avanzata ; per esempio. è possibile utilizzare build/**/*.jar per copiare tutti i jar da una directory di build. Per ulteriori informazioni, vedere docs