JavaRush /Java Blogu /Random-AZ /Davamlı İnteqrasiya
Nikita Koliadin
Səviyyə
Днепр

Davamlı İnteqrasiya

Qrupda dərc edilmişdir
Salam, həmkarlar! Kompüterinizi daim bir layihə qurmağa məcbur etməkdən bezdiniz? O zaman bu məqalə sizin üçündür! Davamlı İnteqrasiya - 1Bu yazıda Davamlı İnteqrasiya (bundan sonra sadəcə CI) ilə bağlı materialı qısa və aydın şəkildə təqdim etməyə çalışacağam, “Bu nədir?”, “Niyə?” kimi sadə suallara cavab verəcəyəm. və niyə?" və mən bir sınaq layihəsinin nümunəsini verəcəyəm. Bu məqalə ən azı Build System ilə tanış olan təcrübəli istifadəçi üçün nəzərdə tutulub: Maven , Git-dən necə istifadə etməyi və layihələri GitHub -a köçürməyi bilən ;

"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.
  1. Ə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:

    Davamlı İnteqrasiya - 2

    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.

  2. Layihəmizi GitHub-a itələyirik.

  3. İ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:

    Davamlı İnteqrasiya - 3

    Hər bir təkanla hər şey yığılmağa hazırdır, amma sual NECƏ yığılır?

  4. 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.

  5. 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:

    Davamlı İnteqrasiya - 4 Davamlı İnteqrasiya - 5

    Saytda həmçinin README.md-ə daxil edə biləcəyimiz layihəmizin uğurlu montajı ilə nişanı görə bilərik:

    Davamlı İnteqrasiya - 6
Faydalı bağlantılar: Mətndə səhvlər və çatışmazlıqlar ola bilər. Diqqətinizə görə təşəkkürlər!
Şərhlər
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION