JavaRush /Java блогу /Random-KY /Үзгүлтүксүз интеграция
Nikita Koliadin
Деңгээл
Днепр

Үзгүлтүксүз интеграция

Группада жарыяланган
Саламатсыздарбы, кесиптештер! Компьютериңизди дайыма долбоор түзүүгө мажбурлоодон чарчадыңызбы? Анда бул макала сиз үчүн! Үзгүлтүксүз интеграция - 1Бул макалада мен Үзгүлтүксүз интеграция (мындан ары жөн гана CI) боюнча материалдарды кыскача жана так берүүгө аракет кылам, мен мындай жөнөкөй суроолорго жооп берем: "Бул эмне?", "Эмне үчүн?" жана эмне үчүн?" жана мен сыноо долбооруна мисал келтирем. Бул макала жок дегенде Build System: Maven менен тааныш болгон тажрыйбалуу колдонуучуга арналган , Gitти кантип колдонууну жана долбоорлорду GitHub'ка түртүүнү билет ;

"Үзгүлтүксүз интеграция деген эмне?"

Келгиле, Wiki бул суроо боюнча бизге эмне айтып жатканын карап көрөлү : Үзгүлтүксүз интеграция (CI, English Continuous Integration) бул программалык камсыздоону иштеп чыгуу практикасы, ал жумушчу көчүрмөлөрдү күнүнө бир нече жолу жалпы негизги иштеп чыгуу тармагына бириктирүүдөн жана долбоордун тез-тез автоматташтырылган курулуштарын ишке ашыруудан турат. мүмкүн болуучу кемчorктерди аныктоо жана интеграция көйгөйлөрүн чечүү. Коркунучтуу, туурабы? Келгиле, бул терминди жөнөкөй сөздөр менен түшүндүрүүгө аракет кылалы: Үзгүлтүксүз интеграция – каталарды жана туура келбегендиктерди аныктоо үчүн белгилүү бир машиналарда белгилүү бир конфигурацияланган программалык камсыздоону куруу жана автоматташтырылган тестирлөө системасы. Макул, көйгөй жок, биз аны түшүндүк, бирок төмөнкү логикалык суроо туулат:

Эмне үчүн бизге CI керек?

Келгиле, сиз чоң долбоор жазып жатасыз деп элестетип көрөлү жана функцияларды кошуу/өзгөртүү зарылчылыгы бар. Сиз аны ийгorктүү жазып, тесттерди жазып, ишке киргизип, баары жакшы окшойт, бирок жок. Бир функциянын өзгөрүшү башкага, үчүнчүсүнө экинчисине таасир эткен жана башка бир жерде мүчүлүштүктөрдү кетирип, ката пайда болгонго чейин болгон жагдайлар бар. Ооба, бул, балким, начар иштелип чыккан долбоор деп айта аласыз, жана сиз туура болушу мүмкүн, бирок ал жок болсо, эмне кылуу керек жана бул байланыштар чындап эле ошол жерде болушу керек? Ал эми сиз бир нече жолу долбоор жазып, түзүп жатсаңызчы, бул көбүнчө ушундай болот? Сиз жаңы жазылган функцияңыз боюнча тесттерди өткөрдүңүз жана алар оң натыйжа берди. Сиз тез эле милдеттенме алдыңыз, анан бир жакка түрттүңүз жана үйдө кымбат виски ичип жатып, кантип сигара чекээриңизди ойлонуп жатасыз, бирок жок. Аттиң, кесиптешиң же кожоюнуң, ким болбосун, сенин милдеттенмеңден улам бүт курулуш кыйрады деп айтат. Программистмин деп таң калып айтасың, баарын сынап көрдүң. Бирок көп учурда бүтүндөй долбоорду тынымсыз сынап көрүүгө убакыт жок жана сиз бүтүндөй жыйынды эмес, өзгөртүү киргизген codeуңузду гана сынап көрдүңүз. Бул жерде CI бизге жардамга келет. Каалаган ресурска ар бир түрткөн сайын, CI долбооруңузду нөлдөн баштап курат, БАРДЫК сыноолорду өткөрөт жана бардык сыноолор өтүп, долбоор курулса гана, куруу өтүүчү статуска ээ болот . Болбосо, сизде кайтып келип, эмне туура эмес болгонун көрүү мүмкүнчүлүгү болот. Демек, «Эмне үчүн бул башкасы эмес?» деген суроону берүүгө убакыт жетти. жана программалык камсыздоону ишке ашырууну карап көрүңүз. Мисал Мен айтып өткөндөй, макала Maven жана Git менен тааныш болгондор үчүн арналган. Ошондуктан, мен сиз CI орнотуудан тышкары кантип жана эмне кылып жатканымды билесиз деп үмүттөнөм.
  1. Биринчиден, жөнөкөй Maven тест долбоорун түзөлү жана анда "Hello World!" басып чыгарган класс түзөлү. жана кээ бир жөнөкөй операцияларды аткарат жана бул класс үчүн эң жөнөкөй тестти жазалы.

    Натыйжада, биз примитивдүү долбоордук түзүлүшкө ээ болушубуз керек:

    Үзгүлтүксүз интеграция - 2

    Бардык булактар ​​менин GitHub'умда болот. Негизги баракчаңызга эмне жазганыңыз жана кандай сыноолор болоору маанилүү эмес.

  2. Биз долбоорубузду GitHub'ка түртөбүз.

  3. Эми кызыктуу бөлүгү келди. CIден мен Travis CIди анын жеткorктүүлүгү жана ишенимдүүлүгү үчүн тандадым. Travis баштапкы codeун жайгаштыруу үчүн GitHub колдонот.

    Ошентип, Travis CI веб-сайтына кирип , GitHub аркылуу кириңиз. Профилде биз долбоорбузду бириктиребиз:

    Үзгүлтүксүз интеграция - 3

    Ар бир түрткөн сайын чогултууга баары даяр, бирок КАНТИП чогултуу керек ?

  4. Биз сүйүктүү IDEAга кайрылып, .travis.yml файлын түзөбүз

    Бул файл Travis куруу конфигурациясына жооптуу. Эң популярдуу параметрди карап көрөлү:

    • Долбоор кайсы тилде ишке ашырылып жатканын көрсөтүү керек ;
    • Түзүүнү тездетүү үчүн каталогдорго жолду көрсөтүңүз ;
    • Ийгorктүү же ийгorксиз чогултуу жөнүндө кабарлоо ыкмасын көрсөтүңүз .

    Кадимки Travis конфигурациясы ушундай болушу керек:

    # 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

    Мен түшүндүрүү үчүн шилтемелер менен комментарийлерди коштум.

  5. Биз кайра GitHub'ка түртүп, Travis веб-сайтын ачабыз , долбоорду тандап, курулушту көзөмөлдөйбүз. Натыйжада, биз ийгorктүү куруу жөнүндө эскертме алабыз:

    Үзгүлтүксүз интеграция - 4 Үзгүлтүксүз интеграция - 5

    Ошондой эле сайтта биз README.md сайтыбызга киргизе турган биздин долбоордун ийгorктүү чогулушу менен төш белгини көрө алабыз:

    Үзгүлтүксүз интеграция - 6
Пайдалуу шилтемелер: Текстте каталар жана кемчorктер болушу мүмкүн. Конул бурганын учун рахмат!
Комментарийлер
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION