Jak zdalnie rozpakować plik zip podczas automatycznego wdrażania w naszym środowisku kontroli jakości?

Próbuję znaleźć sposób na zautomatyzowanie wdrażania w naszym środowisku kontroli jakości. Problem polega na tym, że nasze wydanie jest dość duże, więc należy je spakować, przesłać na FTP, a następnie rozpakować na serwerze kontroli jakości. Nie jestem pewien, jak najlepiej rozpakować zdalnie.

Przychodzi mi do głowy kilka opcji, ale żadna nie brzmi dobrze:

  • Użyj PsExec, aby wykonać zdalne wywołanie wiersza poleceń na serwerze kontroli jakości w celu rozpakowania wydania.
  • Uruchom usługę internetową na serwerze kontroli jakości, która rozpakuje wydanie i skopiuje je we właściwe miejsce. Ta usługa może zostać wywołana przez naszą wersję po zakończeniu przesyłania plików.
  • Hostuj usługę Windows na serwerze kontroli jakości, która monitoruje lokalizację pliku i rozpakowuje.

Żadne z nich nie jest jednak ładne. Zastanawiam się, jak inni rozwiązali ten problem?

PS: używamy CruiseControl.NET do wykonania skryptu NAnt, który zajmuje się budowaniem, zipowaniem i FTP.


person willem    schedule 03.08.2010    source źródło
comment
czy zdalny jest serwerem unix/linux? czy możesz połączyć się przez ssh z tym serwerem? dlaczego nie użyć rsync?   -  person berkes    schedule 03.08.2010


Odpowiedzi (2)


Zamiast kompresować i dekompresować, możesz użyć narzędzia takiego jak rsync; który może w przejrzysty sposób kompresować dane podczas przesyłania plików. Opcja -z informuje rsync, aby użył kompresji.

Zakładam jednak, że pracujesz w środowisku Windows i w takim przypadku możesz użyć cwRsync (co jest „rsync dla Windows”).

W zależności od Twojego dostępu do skrzynki kontroli jakości może to nie być wykonalne rozwiązanie. Musisz:

  • zainstaluj serwer cwRsync na zdalnym komputerze i
  • zezwolić na ruch przez dowolne zapory sieciowe.
person Dawie Strauss    schedule 03.08.2010

W ostatnim miejscu, w którym pracowałem, facet napisał usługę Windows na CI-Box, aby rozpakować. Serwer TFS Team Server zakończył kompilację i powiadomił usługę o konieczności spakowania ukończonej kompilacji i skopiowania jej do skrzynki CI. CI-box pochwycił nowy plik i rozpakował go. Może było to trochę skomplikowane, ale zadziałało dobrze — a on potrafił rejestrować wszystkie działania w dzienniku zdarzeń, więc łatwo było zdiagnozować, czy serwer został zresetowany, a usługa nie została uruchomiona.

Aktualizacja: Jedną z rzeczy, którą chcielibyśmy ulepszyć w tym procesie, było umożliwienie usłudze w skrzynce CI sprawdzania plików ZIP i nieskompresowanych plików starszych niż x miesięcy w celu usunięcia. Rutynowo zabrakło nam miejsca na dysku (była to maszyna wirtualna, na którą rzadko patrzyliśmy) i gdy to się zdarzało, musieliśmy ręcznie usuwać stare kompilacje.

person Robert Hui    schedule 03.08.2010