2011-08-19 6 views
8

Mi piacerebbe avere un passaggio di build Jenkins che scarica semplicemente un dato URL nell'area di lavoro. C'è un modo semplice per farlo?Come avere un passo di costruzione Jenkins che scarica un URL?

(Attualmente uso uno script Ant che fa un semplice <get/>. Ma questo significa che ho bisogno di avere quello script in SVN da qualche parte, e check it out durante la compilazione. Trovo che ingombrante.)

Aggiornamento : Per chiarire, mi piacerebbe scaricare un URL senza installare software aggiuntivo sul sistema di generazione o utilizzando uno script aggiuntivo. (Ovviamente un plugin Jenkins va bene.) Preferibilmente non voglio dipendere dal fatto che lo slave build sia Linux, Windows o qualsiasi altra cosa.

+0

C'è anche il [HTTP Request Plugin] (https://wiki.jenkins-ci.org/display/JENKINS/HTTP+Request+Plugin), ma non sembra in grado di salvare la risposta. –

+0

@MartinBa, quindi, come è utile il plugin di cui sopra? – Dejell

+0

@Dejel - al momento non penso affatto, ma sarebbe possibile aggiungerlo (dopotutto hanno aggiunto la registrazione opzionale della risposta). –

risposta

4

Hai guardato il plug-in URL SCM? Sembra che abbia la funzionalità che stai cercando. Ci sono anche altri plugins basati su URL disponibili per Jenkins che puoi esplorare.

+0

Sì, ho guardato quel plugin URL SCM, ma dal momento che Jenkins supporta solo un plugin SCM per un lavoro, l'uso del plugin SCM dell'URL sarebbe in conflitto con il nostro bisogno di checkout Subversion ... :-(E l'unico altro plugin che ho trovato è stato [Trigger modifica URL] (https://wiki.jenkins-ci.org/display/JENKINS/URL+Change+Trigger) plug-in, ce ne sono altri? –

+0

L'unico altro che riesco a vedere è [URLTrigger] (https: //wiki.jenkins -ci.org/display/JENKINS/URLTrigger + Plugin). – Bernard

+0

Sia URL Change Trigger che URLTrigger non inseriscono nulla nello spazio di lavoro, quindi non mi aiutano qui ... –

4

Il modo più semplice è solo quello di avere una fase di script di shell che fa un wget o un arricciamento sul tuo URL. Ma i plugin che @Bernard suggerisce probabilmente ti daranno ulteriori funzionalità.

+0

Grazie, ma come ho scritto, faccio già qualcosa di simile (ma usando Ant invece di uno script di shell, che mi dà un comportamento multipiattaforma). Come ho detto, il mio problema è che questo mi dà un ulteriore controllo SVN. In alternativa, potrei installare uno script aggiuntivo o creare un file sui nostri schiavi Jenkins, ma ciò rende più difficile la manutenzione. –

-1

Questo plug-in funziona in modo ottimale per eseguire get/put/post/delete su qualsiasi URL di tipo REST: HTTP Request Plugin - su Jenkins Wiki; https://wiki.jenkins-ci.org/display/JENKINS/HTTP+Request+Plugin

+0

Questo non risponde alla domanda-- Non voglio solo fare una richiesta HTTP, voglio usare il _result_ di una richiesta GET. E come @MartinBa ha già menzionato nel primo commento sulla domanda, non sembra possibile con questo plugin: è possibile solo _log_ la risposta. –

+0

Stavo testando un caso davvero banale, ma per me l'output è apparso nel log della console di Jenkins, quindi sarei stato in grado di analizzarlo/usarlo. Posso vedere che potrebbe essere fastidioso, ma non risolverebbe il problema? Inoltre, questo plugin differisce da quello mostrato sopra. – AnneTheAgile

2

Come scaricare il file con il plugin di richiesta HTTP Jenkins. Come scaricare il file nello spazio di lavoro di Jenkins. Stavo scaricando un file tar.gz dal nostro Nexus (Artifactory) che è un repository locale nello spazio di lavoro di una procedura di costruzione di Jenkins. Passi da fare:

  1. Add costruire passo "Http Request", ovviamente è necessario avere https://wiki.jenkins-ci.org/display/JENKINS/HTTP+Request+Plugin.
  2. Specificare l'URL e il metodo HTTP.
  3. Aprire la configurazione "Avanzata ..". (Fare clic)
  4. Passare alla sezione Risposta.
  5. Usa "Risposta Output to file" campo per specificare nome e l'estensione del file
  6. Please use this screenshot for details
  7. dopo il download è possibile trovare il file desiderato all'interno del vostro spazio di lavoro con nome specificato nel passaggio 5.