Le téléchargement des artefacts de Jenkins à l'aide de wget ou curl
Je suis en train de télécharger un artéfact d'une Jenkins projet à l'aide d'un batch DOS script. La raison pour laquelle c'est plus que négligeable, c'est que mon objet est un fichier ZIP qui comprend le numéro de build Jenkins dans son nom, donc je ne sais pas le nom exact du fichier.
Mon plan d'attaque est d'utiliser wget pointant: /lastSuccessfulBuild/artefact/
faire une sorte de récursive/miroir de téléchargement.
Si je ne les suivants:
wget -r -np -l 1 -A zip --auth-no-challenge --http-user=**** --http-password=**** http://*.*.*.*:8080/job/MyProject/lastSuccessfulBuild/artifact/
(*s sont les caractères que j'ai changé pour l'affichage à l')
Je n'ai jamais obtenir un fichier ZIP. Si je omettre l'Un zip option, je fais la index.html, je pense donc que l'autorisation de travail, à moins que c'est une sorte de séance de mise en cache problème?
Avec -A zip
je reçois comme une partie de la réponse:
Retrait ...+8080/job/MyProject/lastSuccessfulBuild/artifact/index.html depuis, elle devrait être rejetée.
Donc je ne suis pas sûr si c'est peut-être de supprimer ce fichier et donc ne suit pas les liens? Mais cela -A zip,html
ne fonctionne pas non plus.
J'ai essayé plusieurs wget options, et aussi curl, mais je suis nulle part.
Je ne sais pas si j'ai le mauvais wget options ou s'il y a quelque chose de spécial à propos de Jenkins authentification.
OriginalL'auteur Erik | 2015-07-15
Vous devez vous connecter pour publier un commentaire.
Vous pouvez ajouter
/*zip*/desired_archive_name.zip
à n'importe quel dossier des artefacts emplacement.Si votre fichier ZIP est le seul artefact que le travail des archives, vous pouvez utiliser:
http://*.*.*.*:8080/job/MyProject/lastSuccessfulBuild/artifact/*zip*/myfile.zip
où
myfile.zip
est juste un nom que vous attribuez à l'archive téléchargeable, pourrait être n'importe quoi.Si vous avez de multiples artefacts archivé, vous pouvez toujours obtenir le fichier ZIP de tous les d'eux, et de les traiter individuellement sur l'extraction. Ou placer l'objet que vous voulez dans un dossier séparé, et d'appliquer les
/*zip*/
à ce dossier.Vous ne devriez pas avoir besoin
-A zip
pour obtenir les artefacts, cependant vous avez besoin de connaître le nom d'artefact. Si vous ne connaissez pas le nom d'artefact, vous pouvez/*zip*/
l'ensemble du dossier. Il n'y a pas de problème avec zip à l'intérieur d'un zip. Une fois que vous l'obtenez, extrait de la première zip dans un dossier, et là, vous avez toute votre artefacts de contenu. Vous pouvez désormais utiliser le système de fichiers des caractères génériques pour obtenir le reste de vos fichiers (vous ne connaissez qu'une partie du nom de fichier, non?)Le
/artifact/
point de terminaison un index.html page qui affiche l'interface web pour obtenir l'artefact (par nom exact, zip ou méthode)J'ai trouvé le temps d'essayer votre idée en colère et ce n'est vraiment pas difficile de gérer la double zip. J'ai utilisé curl à la fin, mais j'imagine que wget fonctionnera tout aussi bien. Donc, après le téléchargement, comme vous l'avez suggéré à-dire
download.zip
, j'ai fait:7z x downloaded.zip -Ounzip1 -r -y
puis7z x unzip1\archive\*.zip -OfinalDestinationDir -r -y
Alors merci à tous pour votre aide. Je vais accepter votre réponse. Cheers!
OriginalL'auteur Slav