3. Definicja Zalety Schemat działania procesu Składowe procesu Najlepsze praktyki Cruise Control.NET (Demo) Agenda
4. Podejście do wytwarzania oprogramowania oparte o częstą integrację prac członków zespołu automatyzację całego procesu Cel: Minimalizacja ilości błędów skrócenie czasu ich wykrycia Ojcowie CI: Martin Fowler Kent Beck Definicja
5. Oszczędność czasu Kod bazowy zawsze działa Brak lub ograniczona faza finalnej integracji Szybkie zgłaszanie błędów Automatyzacja tworzenia wydań Zwiększona zaufanie programistów Kod bazowy zawsze się buduje Ciągłe testy poprawności Redukcja ryzyka i kosztów Zalety CI
6. „Prehistoryczne” (?) podejście Schemat wytwarzania oprogramowania: Rozdziel zadania do pracy współbieżnej Integruj w końcowym etapie życia projektu Wysokie ryzyko porażki projektu SCM (ang. SourceCode Management) Jedno repozytorium kodu Częściowa integracja podczas wgrywania zmian Techniki rozgałęziania(ang. branching) Niezbędne ale samodzielnie niewystarczające dla realizacji idei CI Bonus: Rys historyczny
7. Metodologie Agile Bądź zwinny bo wymagania ulegną zmianie Bądź elastycznyi używaj tylko tego co potrzebne eXtremeProgramming Testy najpierw Programowanie w parach Częsta integracja Częste wydania Integracja sekwencyjna Zbiorowa odpowiedzialność Bonus: Agile Development (Scrum, XP)
10. Repozytoria kodu z wersjonowaniem Wyzwalacze budowania Automatyczne budowanie Składowe procesu (CVS, SVN, Perforce, SourceSafe) (po zmianach, zaplanowany, ręczny) (MSBuild, NMaven, Visual Studio)
11. Testy Jednostkowe AcceptanceTesting Analiza kodu Przegląd jakości kodu Metryki Archiwizacja wydań Automatyczna instalacja Składowe procesu (c.d.) (NUnit, VS Tests) (FitNesse, Watir) (FxCop, VS CodeAnalysis, StyleCop) (Ndepend) (FTP, WebDav) (WiX)
12. Wytwarzanie artefaktów Dokumentacja Raporty Powiadomienia Składowe procesu (c.d.) (DocProject, NDoc) (Testy: Wyniki, Czasy, Pokrycie; metryki i statystyki kodu ) (Mail, IM, Tray)
13. Jedno repozytorium kodu Częsta synchronizacja kodu Szybki proces budowania Automatyczna instalacja Automatyczne wytwarzanie artefaktów Najlepsze praktyki