Tak więc, ja i mój przyjaciel omawialiśmy ciągłą integrację i skrypty bat/powershell z serwerami CI, takimi jak CruiseControl.Net lub Hudson.Ciągła integracja: PowerShell kontra serwer CI (CC.NET lub Hudson)
Poniższy skrypt pseudoshellowy działa w celu aktualizacji z SVN, kompilacji przy użyciu msbuild, wdrażania/kopiowania, aktualizowania numeru kompilacji/wersji w aplikacji oraz wiadomości e-mail o uszkodzonych kompilacjach. Następnym krokiem byłoby dodawanie połączeń do MSTest i wyników e-mailowych, gdy nie uda się.
- zmiana svn
- msbuild> build_deploy_development_out_msbuild
- ([XML] (informacje svn --xml)). Info.entry.commit.revision + [znak] 13 + [znak] 10 + (echo % date%% time%)> numer_aktualizacji_budowy.html
- $ linenumber = Select-string build_deploy_development_out_msbuild -pattern "Kompilacja nieudana" | Wybierz-obiekt Linenumber
- $ smtp = New-Object System.Net.Mail.SMTPClient -ArgumentList localhost | if ($ linenumber> 0) $ smtp.Send ("From: Email", "To: Email", "kompilacja nie powiodła się", "kompilacja się nie powiodła ... ktoś musi umrzeć!")
To ma poprowadź mnie do pytania o wartość serwerów CI, kiedy możesz napisać własne skrypty powłoki, aby osiągnąć ten sam cel, używając konkretnych narzędzi projektu (narzędzie do budowania, kontrola źródła, testowanie jednostek) (np. msbuild, nant, svn , git, nunit, mstest, itp.)
Nie doświadczyłem jeszcze kosztów utrzymania. Chciałem uzyskać opinie na temat własnego skryptu powłoki w porównaniu do CruiseControl.Net lub Hudson. Proszę zauważyć, że nie mam doświadczenia z serwerami CI, stąd pytanie, więc proszę nie traktować tego jako krytycznego wobec serwerów CI; Po prostu nie znam najlepszej odpowiedzi i pomyślałem, że zapytam społeczność.
Najlepsze życzenia! Pete Gordon
To powinno być wiki społecznościowe, ponieważ nie ma jednoznacznej odpowiedzi. –
Dlaczego wymieniono CC.NET lub Hudson? Wydaje się to być pytaniem Powershell VS CI. Dlaczego semantyka? – TheOptimusPrimus