2015-07-15 25 views
7

Próbuję pobrać artefakt z projektu Jenkinsa za pomocą skryptu wsadowego wsadu. Powodem, że jest to więcej niż banalne, jest to, że mój artefakt jest plikiem zip, który zawiera numer kompilacji Jenkinsa w nazwie, dlatego nie znam dokładnej nazwy pliku.Pobieranie artefaktów z Jenkinsa za pomocą wget lub curl

Mój obecny plan ataku polega na użyciu polecenia wget wskazującego na:/lastSuccessfulBuild/artifact/ , aby wykonać jakieś pobieranie rekurencyjne/lustrzane.

Gdybym wykonaj następujące czynności:

wget -r -np -l 1 -A zip --auth-no-challenge --http-user=**** --http-password=**** http://*.*.*.*:8080/job/MyProject/lastSuccessfulBuild/artifact/ 

(* s są znaki Zmieniłem do delegowania do SO)

Nigdy uzyskać plik zip. Jeśli anuluję opcję -A zip, otrzymam plik index.html, więc myślę, że autoryzacja działa, chyba że jest to jakiś problem z buforowaniem sesji?

-a zip uzyskać w ramach odpowiedzi:

Usuwanie .. . + 8080/job/MyProject/lastSuccessfulBuild/artefact/index.html, ponieważ powinien zostać odrzucony.

Więc nie jestem pewien, czy może to usunięcie tego pliku, a więc nie po jego linki? ale robi-Zip, html też nie działa.

Próbowałem kilka opcji wget, a także curl, ale donikąd.

Nie wiem, czy mam złe opcje wget lub czy jest coś specjalnego w uwierzytelnianiu Jenkinsa.

Każda pomoc doceniona. Dzięki.

Odpowiedz

3

Możesz dodać /*zip*/desired_archive_name.zip do dowolnego folderu położenia artefaktów.

Jeśli zip jest jedynym artefaktem, że archiwa pracy, można użyć:
http://*.*.*.*:8080/job/MyProject/lastSuccessfulBuild/artifact/*zip*/myfile.zip
gdzie myfile.zip jest tylko nazwę przypisać do pobrania archiwum, może być cokolwiek.

Jeśli posiadasz wiele artefaktów zarchiwizowanych, możesz uzyskać cały zip i poradzić sobie z poszczególnymi podczas ekstrakcji. Lub umieść żądany artefakt w osobnym folderze i zastosuj do tego folderu /*zip*/.

+0

To całkiem ciekawy pomysł, którego nie wiedziałem, że możesz zrobić, dzięki. Ale nadal pozostawia mi ból głowy podwójnego spakowanego pliku, z którego nie znam nazwy. Nadal chciałbym wiedzieć, dlaczego polecenie wget nie działa. – Erik

+0

Nie powinieneś potrzebować '-A zip', aby pobrać artefakty, ale musisz znać nazwę artefaktu. Jeśli nie znasz nazwy artefaktu, możesz "/ * zip * /" cały folder. Nie ma problemu z zamkiem błyskawicznym wewnątrz zamka. Po uzyskaniu go, wyodrębnij pierwszy zip do jakiegoś folderu, a tam masz: całą zawartość artefaktów. Możesz teraz używać symboli wieloznacznych systemu plików, aby uzyskać dostęp do reszty plików (znasz część nazwy pliku, prawda?) – Slav

+0

Strona "endpoint /' punkt końcowy ** to ** a index.html, która pokazuje interfejs sieciowy do dostać się do faktycznego artefaktu (według dokładnej nazwy lub metody zip). – Slav

Powiązane problemy