"Daimi inteqrasiya nədir?"
Gəlin görək Wiki bu sualla bağlı bizə nə deyir : Davamlı inteqrasiya (CI, English Continuous Integration) işləyən nüsxələri gündə bir neçə dəfə ümumi əsas inkişaf bölməsində birləşdirməkdən və layihənin tez-tez avtomatlaşdırılmış qurulmasını həyata keçirməkdən ibarət proqram təminatının inkişafı təcrübəsidir. potensial qüsurların aşkarlanması və inteqrasiya problemlərinin həlli. Dəhşətli, elə deyilmi? Bu termini sadə sözlərlə izah etməyə çalışaq: Davamlı inteqrasiya səhvləri və uyğunsuzluqları aşkar etmək üçün müəyyən maşınlarda müəyyən konfiqurasiyalı proqram təminatının qurulması və avtomatlaşdırılmış sınaqdan keçirilməsi sistemidir. Yaxşı, problem yoxdur, biz başa düşdük, lakin aşağıdakı məntiqi sual yaranır:Niyə bizə CI lazımdır?
Təsəvvür edək ki, siz böyük bir layihə yazırsınız və funksionallıq əlavə etmək/dəyişiklik etmək lazımdır. Siz onu uğurla yazın, testlər yazın, işə salın və hər şey yaxşı görünür, amma yox. Elə hallar olur ki, bir funksionallıqdakı dəyişiklik digərinə, digəri üçüncüyə təsir edir və s., səhv bir yerə sürüşənə və xəta baş verənə qədər. Bəli, deyə bilərsiniz ki, bu, çox güman ki, zəif dizayn edilmiş layihədir və siz haqlı ola bilərsiniz, amma əgər belə deyilsə və bu əlaqələr həqiqətən də orada olmalıdır? Bəs siz bir dəfədən çox layihə yazır və yaradırsınızsa, bu, tez-tez olur? Siz yeni yazılmış funksionallığınızı test etdiniz və onlar müsbət nəticə verdi. Tez bir öhdəlik götürdünüz, sonra bir yerə itələdiniz və artıq evdə bahalı viski içərkən necə siqaret çəkəcəyinizi düşünürsünüz, amma yox. Təəssüf ki, həmkarınız və ya müdiriniz, kimdən asılı olmayaraq, sizin öhdəliyinizə görə bütün quruluşun çökdüyünü söyləyir. Təəccüblə deyirsən ki, proqramçısan, hər şeyi sınamısan. Ancaq tez-tez bütün layihəni daim sınaqdan keçirməyə sadəcə vaxt yoxdur və siz bütövlükdə bütün montajı deyil, yalnız dəyişiklik etdiyiniz kod parçasını sınaqdan keçirdiniz. Burada CI köməyimizə gəlir. İstənilən mənbəyə hər təkanla, CI layihənizi sıfırdan quracaq, BÜTÜN testləri keçirəcək və yalnız bütün testlər keçərsə və layihə qurularsa, quruluş keçid statusu alacaq . Əks halda geri qayıtmaq və nəyin səhv getdiyini görmək imkanınız olacaq. Beləliklə, "Niyə bu, başqa cür deyil?" sualını verməyin vaxtı gəldi. və proqram təminatının tətbiqinə nəzər salın. Nümunə Artıq dediyim kimi, məqalə Maven və Git ilə tanış olanlar üçün nəzərdə tutulub. Buna görə də ümid edirəm ki, CI qurmaqdan başqa necə və nə etdiyimi bilirsiniz və s.-
Əvvəlcə sadə Maven test layihəsi yaradaq və orada “Salam Dünya!” çap edən bir sinif yaradaq. və bəzi sadə əməliyyatları yerinə yetirir və bu sinif üçün ən sadə testi yazaq.
Nəticədə, primitiv bir layihə quruluşuna sahib olmalıyıq:
Bütün mənbələr mənim GitHub-da olacaq. Əsas səhifənizdə nə yazmağınızın və hansı testlərin olacağının əhəmiyyəti yoxdur.
-
Layihəmizi GitHub-a itələyirik.
-
İndi əyləncə hissəsi gəlir. CI-dən mən Travis CI-ni onun mövcudluğu və etibarlılığına görə seçdim. Travis mənbə kodunu yerləşdirmək üçün GitHub-dan istifadə edir.
Beləliklə, Travis CI veb saytına daxil olun və GitHub vasitəsilə daxil olun. Profildə layihəmizi əlaqələndiririk:
Hər bir təkanla hər şey yığılmağa hazırdır, amma sual NECƏ yığılır?
-
Biz sevimli IDEA-ya qayıdırıq və .travis.yml faylı yaradırıq
Bu fayl Travis qurma konfiqurasiyasına cavabdehdir. Ən populyar parametrə baxaq:
- Layihənin hansı dildə həyata keçirildiyini göstərməlisiniz ;
- Quraşdırmanı daha sürətli etmək üçün qovluqlara gedən yolu göstərin ;
- Uğurlu və ya uğursuz montaj haqqında bildirişlərin üsulunu göstərin .
Tipik Travis konfiqurasiyası belə görünməlidir:
# https://docs.travis-ci.com/user/languages/java/ language: java jdk: oraclejdk9 # Improve Build Speed https://dzone.com/articles/travis-ci-tutorial-java-projects cache: directories: - $HOME/.m2 # Notifications https://docs.travis-ci.com/user/notifications/ notifications: email: recipients: - qThegamEp@gmail.com on_success: always # default: change on_failure: always # default: always
Aydınlıq üçün linklərlə şərhlər əlavə etdim.
-
Yenidən GitHub-a basırıq və Travis veb saytını açırıq , layihəni seçirik və quruluşa nəzarət edirik. Nəticə etibarilə, uğurlu tikinti haqqında bildiriş alırıq:
Saytda həmçinin README.md-ə daxil edə biləcəyimiz layihəmizin uğurlu montajı ilə nişanı görə bilərik:
-
Nəyisə başa düşmədiyiniz halda baxa/yükləyə biləcəyiniz test layihəm ;
-
Əslində Travis CI veb saytının özü ;
-
Travis CI-nin qurulması və istifadəsi üzrə rəsmi internet saytındakı təlimat ;
-
Yaxşı video ;
- Başqa bir dərslik ;
GO TO FULL VERSION