SlideShare a Scribd company logo
1 of 16
ContinuousIntegration Marcin Daczkowski AIS.PL
Jeśli się czegoś boisz,  rób to tak często jak tylko możliwe
Definicja Zalety Schemat działania procesu Składowe procesu Najlepsze praktyki Cruise Control.NET (Demo) Agenda
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
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
„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
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)
Schemat działania procesu
Schemat działania procesu (c.d.)
Repozytoria kodu z wersjonowaniem Wyzwalacze budowania Automatyczne budowanie Składowe procesu (CVS, SVN, Perforce, SourceSafe) (po zmianach, zaplanowany, ręczny) (MSBuild, NMaven, Visual Studio)
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)
Wytwarzanie artefaktów Dokumentacja Raporty  Powiadomienia Składowe procesu (c.d.) (DocProject, NDoc) (Testy: Wyniki, Czasy, Pokrycie; metryki i statystyki kodu ) (Mail, IM, Tray)
Jedno repozytorium kodu Częsta synchronizacja kodu Szybki proces budowania Automatyczna instalacja Automatyczne wytwarzanie artefaktów Najlepsze praktyki
DEMO CruiseControl.NET
Pytania?
http://www.martinfowler.com/articles/continuousIntegration.html http://ccnet.thoughtworks.com http://www.jetbrains.com/teamcity/ http://www.extremeprogramming.org/rules/integrateoften.html Zasoby

More Related Content

Similar to Continuous Integration

Programowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGiProgramowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGi
Mikołaj Olszewski
 
Najlepsze praktyki testowania aplikacji ASP.NET
Najlepsze praktyki testowania aplikacji ASP.NETNajlepsze praktyki testowania aplikacji ASP.NET
Najlepsze praktyki testowania aplikacji ASP.NET
Marcin Daczkowski
 

Similar to Continuous Integration (20)

Konfiguracja GitLab CI/CD pipelines od podstaw
Konfiguracja GitLab CI/CD pipelines od podstawKonfiguracja GitLab CI/CD pipelines od podstaw
Konfiguracja GitLab CI/CD pipelines od podstaw
 
Ciągła Integracja W Projekcie - Metodyka I Narzędzia
Ciągła Integracja W Projekcie - Metodyka I NarzędziaCiągła Integracja W Projekcie - Metodyka I Narzędzia
Ciągła Integracja W Projekcie - Metodyka I Narzędzia
 
Praktyki techniczne
Praktyki technicznePraktyki techniczne
Praktyki techniczne
 
CI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecieCI oraz CD w złożonym projekcie o małym budżecie
CI oraz CD w złożonym projekcie o małym budżecie
 
Ciągłe Dostarcznie - Wprowadzenie
Ciągłe Dostarcznie - WprowadzenieCiągłe Dostarcznie - Wprowadzenie
Ciągłe Dostarcznie - Wprowadzenie
 
Automatyzacja w praktyce. Praktyka automatyzacji
Automatyzacja w praktyce. Praktyka automatyzacjiAutomatyzacja w praktyce. Praktyka automatyzacji
Automatyzacja w praktyce. Praktyka automatyzacji
 
Feature flags na ratunek projektu w JavaScript
Feature flags na ratunek projektu w JavaScriptFeature flags na ratunek projektu w JavaScript
Feature flags na ratunek projektu w JavaScript
 
"Wyzwania automatyzacji w ciągłej integracji" - o tworzeniu i utrzymaniu test...
"Wyzwania automatyzacji w ciągłej integracji" - o tworzeniu i utrzymaniu test..."Wyzwania automatyzacji w ciągłej integracji" - o tworzeniu i utrzymaniu test...
"Wyzwania automatyzacji w ciągłej integracji" - o tworzeniu i utrzymaniu test...
 
Programowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGiProgramowanie Komponentowe: #C Wprowadzenie do OSGi
Programowanie Komponentowe: #C Wprowadzenie do OSGi
 
Testowanie automatyczne 2024 INCO Academy
Testowanie automatyczne 2024 INCO AcademyTestowanie automatyczne 2024 INCO Academy
Testowanie automatyczne 2024 INCO Academy
 
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...GET.NET -  Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
GET.NET - Osiołkowi w żłobie dano, czyli o tym jak hostować aplikacje na Mic...
 
Produkcja aplikacji internetowych
Produkcja aplikacji internetowychProdukcja aplikacji internetowych
Produkcja aplikacji internetowych
 
Jak stworzyć udany system informatyczny
Jak stworzyć udany system informatycznyJak stworzyć udany system informatyczny
Jak stworzyć udany system informatyczny
 
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
Jak zarabiać na testowaniu oprogramowania(konferencja MeeTTech Piła 27.07.2016)
 
Dwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędówDwa sposoby na pisanie aplikacji bez błędów
Dwa sposoby na pisanie aplikacji bez błędów
 
Technical Side of Agile
Technical Side of AgileTechnical Side of Agile
Technical Side of Agile
 
Najlepsze praktyki testowania aplikacji ASP.NET
Najlepsze praktyki testowania aplikacji ASP.NETNajlepsze praktyki testowania aplikacji ASP.NET
Najlepsze praktyki testowania aplikacji ASP.NET
 
university day 1
university day 1university day 1
university day 1
 
WF w zastosowaniach Web
WF w zastosowaniach WebWF w zastosowaniach Web
WF w zastosowaniach Web
 
Zasady technicznej organizacji projektów programistycznych
Zasady technicznej organizacji projektów programistycznychZasady technicznej organizacji projektów programistycznych
Zasady technicznej organizacji projektów programistycznych
 

Continuous Integration

  • 2. Jeśli się czegoś boisz, rób to tak często jak tylko możliwe
  • 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