JavaRush /Java Blog /Random-TK /Üznüksiz integrasiýa
Nikita Koliadin
Dereje
Днепр

Üznüksiz integrasiýa

Toparda çap edildi
Salam, kärdeşler! Kompýuteriňizi yzygiderli taslama gurmaga mejbur etmekden ýadadyňyzmy? Onda bu makala siziň üçin! Üznüksiz integrasiýa - 1Bu makalada üznüksiz integrasiýa (mundan beýläk diňe CI) bilen baglanyşykly materiallary gysga we anyk görkezmäge synanyşaryn, “Näme?”, “Näme üçin?” Simplealy ýönekeý soraglara jogap bererin. we näme üçin? " we synag taslamasyna mysal bererin. Bu makala, iň bolmanda Build System bilen tanyş bolan tejribeli ulanyjy üçin niýetlenendir : Maven, Git-i nädip ulanmalydygyny we taslamalary GitHub -a nädip itergi bermelidigini bilýär ;

"Üznüksiz integrasiýa näme?"

“Wiki” -niň bu sorag barada bize näme diýýändigini göreliň : Üznüksiz integrasiýa (CI, Iňlis üznüksiz integrasiýasy), iş nusgalaryny günde birnäçe gezek umumy esasy ösüş şahasyna birleşdirmekden we taslamanyň ýygy-ýygydan awtomatiki usulda ýerine ýetirilmeginden ybarat programma üpjünçiligini işläp düzmekdir. potensial kemçilikleri we integrasiýa meseleleriniň çözgütlerini ýüze çykarmak. Gorkunç, şeýlemi? Bu termini ýönekeý sözler bilen düşündirmäge synanyşalyň: Üznüksiz integrasiýa, kemçilikleri we laýyk gelmezlikleri ýüze çykarmak üçin belli bir enjamlarda belli bir sazlamalar bilen programma üpjünçiligini gurmak we awtomatiki synag etmek ulgamy. Bolýar, mesele ýok, biz düşündik, ýöne aşakdaky logiki sorag ýüze çykýar:

Näme üçin CI gerek?

Uly taslama ýazýandygyňyzy göz öňüne getireliň we funksiýany goşmak / üýtgetmek zerurlygy bar. Ony üstünlikli ýazýarsyňyz, synaglary ýazýarsyňyz, işe girizýärsiňiz we hemme zat gowy ýaly bolup görünýär, ýöne ýok. Bir funksiýanyň üýtgemegi başga birine, beýlekisi üçünji we ş.m. täsir edýän ýagdaýlar bolýar, bir näsazlyk bir ýere gaçyp, ýalňyşlyk ýüze çykýança. Hawa, munuň gaty pes taslama bolandygyny aýdyp bilersiňiz, dogry aýdyp bilersiňiz, ýöne beýle bolmasa, bu baglanyşyklar hakykatdanam şol ýerde bolmalymy? Köplenç şeýle bolýan bir gezekden köp gezek taslama ýazýan bolsaňyz näme bolar? Täze ýazylan funksiýaňyz boýunça synag geçirdiňiz we oňyn netije berdiler. Çalt karar berdiňiz, soň bir ýere iteklediňiz we gymmatbaha viski içip otyrkaňyz, öýde çilim çekjekdigiňiz hakda eýýäm pikir edýärsiňiz, ýöne ýok. Haýp, işdeşiňiz ýa-da başlygyňyz, kimdigine garamazdan, eden işiňiz sebäpli ähli gurluşyk ýykyldy diýýär. Haýran galmak bilen programmistdigiňizi aýdýarsyňyz, hemme zady synap gördüňiz. Oftenöne köplenç tutuş taslamany yzygiderli barlamaga wagt ýok, we diňe üýtgeşme girizen koduňyzy, tutuş ýygnanyşygy däl-de synap gördüňiz. Ine, CI kömege gelýär. Islendik çeşmä itergi bilen, CI taslamaňyzy noldan gurar, HEMMESI synaglary işleder we diňe ähli synaglar geçip, taslama gurlan halatynda gurluşyk geçiş statusyny alar . Otherwiseogsam, gaýdyp gelip, nämäniň ýalňyşdygyny görüp bilersiňiz. Şeýlelikde, "Näme üçin beýle däl we beýle däl?" Diýen soragy bermegiň wagty geldi. we programma üpjünçiliginiň ýerine ýetirilişine göz aýlaň. Mysal Öňem aýdyşym ýaly, makala Maven we Git bilen tanyşlar üçin niýetlenendir. Şol sebäpli, CI gurmakdan başga we nädip edýändigimi bilýärsiňiz diýip umyt edýärin.
  1. Ilki bilen, ýönekeý Maven synag taslamasyny döredeliň we onda "Salam Dünýä!" Çap edýän synp döredeliň. we ýönekeý operasiýa ýerine ýetirýär, geliň bu synp üçin iň ýönekeý synagy ýazalyň.

    Netijede, başlangyç taslama gurluşy bolmaly:

    Üznüksiz integrasiýa - 2

    Sourcehli çeşmeler meniň GitHub-da bolar. “Main” -da näme ýazsaňyz we haýsy synaglaryň boljakdygy möhüm däl.

  2. Taslamamyzy GitHub-a iterýäris.

  3. Indi gyzykly bölüm gelýär. CI-den, elýeterliligi we ygtybarlylygy sebäpli Travis CI-ni saýladym . Travis, deslapky kody ýerleşdirmek üçin GitHub-dan peýdalanýar.

    Şeýlelik bilen, Travis CI web sahypasyna giriň we GitHub arkaly giriň. Profilde taslamamyzy birleşdirýäris:

    Üznüksiz integrasiýa - 3

    Her itergi bilen hemme zat ýygnamaga taýyn, ýöne sorag nädip ýygnamaly?

  4. Söýgüli IDEA-a gaýdyp, .travis.yml faýly döredýäris

    Bu faýl “Travis build” konfigurasiýasy üçin jogapkärdir. Iň meşhur sazlamalara seredeliň:

    • Taslamanyň ýerine ýetirilýän dilini görkezmeli ;
    • Gurluşy has çaltlaşdyrmak üçin kataloglara barýan ýoly kesgitläň ;
    • Üstünlikli ýa-da şowsuz gurnama barada habarnamanyň usulyny görkeziň .

    Adaty “Travis” konfigurasiýasy şeýle bolmaly:

    # 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

    Aýdyňlyk üçin teswirler, baglanyşyklar bilen goşdum.

  5. GitHub-a ýene bir gezek basýarys we Travis web sahypasyny açýarys , taslamany saýlaýarys we gurluşygyna gözegçilik edýäris. Netijede, üstünlikli gurmak barada habar alýarys:

    Üznüksiz integrasiýa - 4 Üznüksiz integrasiýa - 5

    Şeýle hem, sahypada README.md-e goýup biljek taslamamyzyň üstünlikli ýygnalmagy bilen nyşany görüp bileris:

    Üznüksiz integrasiýa - 6
Peýdaly baglanyşyklar: Tekstde ýalňyşlyklar we ýalňyşlyklar bolup biler. Üns bereniňiz üçin sag boluň!
Teswirler
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION