Faça o download de um arquivo da última versão estável do Jenkins

4

Usando um arquivo em lotes e wget / curl, como posso fazer o download do Multiverse-Core-.jar daqui? link

Eu quero usar a opção timestamping e o link "Todos os arquivos em zip" não funciona, pois o cabeçalho "last-modified" não existe para ela. Se eu usar o link , a opção de carimbo de data / hora funciona , mas eu quero poder usar o primeiro link e não ter que mudá-lo toda vez que o número da versão mudar. Eu tentei

wget -r -l 1 -nH -A jar -R *javadoc.jar,*sources.jar http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/artifact/target/

Mas apenas cria "job \ Multiverse-Core \ lastStableBuild \ artifact \ target" no diretório atual sem os arquivos. Há algo de errado com o meu roteiro?

    
por Craft1n3ss 25.04.2013 / 08:15

1 resposta

5

wget respeita o arquivo robots.txt para downloads recursivos. E esse arquivo proíbe tudo (sem uma boa razão AFAICT, pois Build Now requer POST ed em Jenkins, pelo menos nas versões recentes).

O Jenkins tem uma API. Vários objetos, incluindo construções, têm pontos de extremidade da API. Nesse caso, http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/ .

Você pode consultar http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/xml ou http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/json e analisar o texto retornado do elemento artifacts . O argumento tree permite a filtragem, como, por exemplo, em http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/xml?tree=artifacts%5BrelativePath%5D :

<freeStyleBuild>
<artifact>
<relativePath>target/Multiverse-Core-2.5-javadoc.jar</relativePath>
</artifact>
<artifact>
<relativePath>target/Multiverse-Core-2.5-sources.jar</relativePath>
</artifact>
<artifact>
<relativePath>target/Multiverse-Core-2.5.jar</relativePath>
</artifact>
</freeStyleBuild>

Como alternativa, use XPath para obter uma filtragem mais eficiente, mas observe que em uma atualização de segurança recente, algumas funcionalidades (como text() ) foram desabilitadas. Exemplo: http://ci.onarandombox.com/job/Multiverse-Core/lastStableBuild/api/xml?xpath=/freeStyleBuild/artifact/relativePath&wrapper=artifacts

Na linha de comando, você pode analisar o XML, por exemplo usando uma versão recente de xmllint , ou, no exemplo do Xpath, simplesmente ignore o texto e selecione os nomes dos arquivos.

    
por 25.04.2013 / 08:43