2009-05-03 13 views
6

Uwaga: Jestem newb do ciągłej integracjiC#/.NET - Continuous Integration i wdrażania FTP

Jakie jest podejście "najlepszy", aby te funkcje:

  1. budowlanej (zespoły i sieci app)
  2. Testowanie (MbUnit lub NUnit)
  3. i jeśli przejdzie testy wdrożyć za pośrednictwem FTP na serwerze głównym (internet).

A to, co mam na myśli przez "najlepsze", jest najtańszą opcją i łatwe do opanowania (niski ból głowy).

Odpowiedz

5

Pisałem dość szczegółowe blogu używając TeamCity i projektów Web Deployment automatyzacji kompilacji i wdrażanie (lokalny) tutaj:

http://www.diaryofaninja.com/blog/2010/05/09/automated-site-deployments-with-teamcity-deployment-projects-amp-svn

I następnie dodaje się do tego, aby pokazać dodawanie FTP

http://www.diaryofaninja.com/blog/2010/09/21/continuous-integration-tip-1-ndash-ftp-deployment

Zasadniczo proces jest następująco:

  • Korzystanie z serwera TeamCity kompilacji pobrać z moim SVN repo
  • zbudować i wdrożyć witrynę do lokalnego folderu na serwerze kompilacji
  • I ogień wiersza komend klienta FTP, który obsługuje włączony nazwie WinSCP pomocą msbuild zadanie exec (http://winscp.net/)
  • Prześlij wszystkie moje strony content
  • Czy insert napój wyboru

następnie upewnij się, że tylko wdrożyć bagażniku mojego repozytorium SVN, a następnie opracować i przetestować wszystko w oddziale przed scaleniem - w ten sposób tylko testowane rzeczy zostaną wdrożone. Dodaj zautomatyzowane testowanie do cyklu budowy, a masz mecz wykonany w niebie.

+1

Wiesz, to jest podejście, które stosuję od kilku dużych klientów od pewnego czasu i dobrze mi to służyło. Team Foundation Server jest świetny, jeśli pracujesz w środowisku MS, ale pracujesz z "mieszaną" firmą, w której SCM może już istnieć (w moim przypadku SVN), to wydaje się działać świetnie. Jedyne dziwne uczucie, które dostaję, wydaje się, że MS miałoby instalację, która by to wszystko zrobiła? –

+0

Możesz użyć MSDEPLOY, jednak uważam, że nie daje to poziomu kontroli, który daje powyższe podejście, z możliwością pisania skryptów do twojej kompilacji (kopiowanie niestandardowych app_offline.htm itp.) – Doug

+0

Zapomniałeś wstawić nawiasy kątowe wstawić wybrany napój: powinno być : D Poważnie jednak ... niesamowita odpowiedź! – longda

2

Poszedłbym z msbuild i mbunit do testów jednostkowych. Dla FTP part google dla zadań niestandardowych msbuild z FTP i powinieneś gotować na gazie.

+0

Po prostu użyj msbuild sam? Nie potrzebujesz serwera CI? – BuddyJoe

+0

Lepiej uczyć się msbuild, skrypty kompilacji są oparte na XML, więc powinieneś się z nimi zapoznać. Gdy masz już skrypt budujący, możesz podłączyć tempomat. Tak właśnie latałem. – Burt

1

Mam historycznie używane CruiseControl, który działa dobrze, ale słyszałem również dobre rzeczy o TeamCity. Odnośnie zadań FTP dla MSBuild (który jest z pewnością sposób, w jaki chcesz iść), istnieją pewne, aby znaleźć w Internecie. Kiedy sprawdzałem ostatni raz (co nie było całkiem niedawno) wszystko, co znalazłem, miało jedno lub drugie niedociągnięcie, więc sam napisałem je (owijając FtpWebRequest w .NET). Chociaż nie jest to najlepsza implementacja protokołu FTP, zadanie zapewniło funkcjonalność, której potrzebowałem (przesyłanie struktur katalogów, zdalne usuwanie). Sądzę, że mogą istnieć zadania dostępne dzisiaj, pod warunkiem, że funkcjonalność (inaczej może powinienem po prostu opublikować moje ...)

0

Robimy to samo z Zed Builds and Bugs Manager z Hericus Software.

Musimy połączyć zestawy .Net z bibliotekami C++ i spakować całość razem w instalację Java (wyobrazić sobie zamieszanie :-)). Korzystamy również z FTP, aby przesłać niektóre komponenty kompilacji (nie całą całość) do innych systemów, które potrzebują fragmentów tego, co produkuje.

Po tym, jak wszystko zostało zrolowane, przyjemną cechą serwera Zed jest to, że staje się on naszym systemem, w którym każdy wie, skąd czerpać swoje artefakty. Obsługuje promocję od Dev do QA do Production i śledzi kompilacje przez ten cykl życia.

Powiązane problemy