"Үзгүлтүксүз интеграция деген эмне?"
Келгиле, Wiki бул суроо боюнча бизге эмне айтып жатканын карап көрөлү : Үзгүлтүксүз интеграция (CI, English Continuous Integration) бул программалык камсыздоону иштеп чыгуу практикасы, ал жумушчу көчүрмөлөрдү күнүнө бир нече жолу жалпы негизги иштеп чыгуу тармагына бириктирүүдөн жана долбоордун тез-тез автоматташтырылган курулуштарын ишке ашыруудан турат. мүмкүн болуучу кемчorктерди аныктоо жана интеграция көйгөйлөрүн чечүү. Коркунучтуу, туурабы? Келгиле, бул терминди жөнөкөй сөздөр менен түшүндүрүүгө аракет кылалы: Үзгүлтүксүз интеграция – каталарды жана туура келбегендиктерди аныктоо үчүн белгилүү бир машиналарда белгилүү бир конфигурацияланган программалык камсыздоону куруу жана автоматташтырылган тестирлөө системасы. Макул, көйгөй жок, биз аны түшүндүк, бирок төмөнкү логикалык суроо туулат:Эмне үчүн бизге CI керек?
Келгиле, сиз чоң долбоор жазып жатасыз деп элестетип көрөлү жана функцияларды кошуу/өзгөртүү зарылчылыгы бар. Сиз аны ийгorктүү жазып, тесттерди жазып, ишке киргизип, баары жакшы окшойт, бирок жок. Бир функциянын өзгөрүшү башкага, үчүнчүсүнө экинчисине таасир эткен жана башка бир жерде мүчүлүштүктөрдү кетирип, ката пайда болгонго чейин болгон жагдайлар бар. Ооба, бул, балким, начар иштелип чыккан долбоор деп айта аласыз, жана сиз туура болушу мүмкүн, бирок ал жок болсо, эмне кылуу керек жана бул байланыштар чындап эле ошол жерде болушу керек? Ал эми сиз бир нече жолу долбоор жазып, түзүп жатсаңызчы, бул көбүнчө ушундай болот? Сиз жаңы жазылган функцияңыз боюнча тесттерди өткөрдүңүз жана алар оң натыйжа берди. Сиз тез эле милдеттенме алдыңыз, анан бир жакка түрттүңүз жана үйдө кымбат виски ичип жатып, кантип сигара чекээриңизди ойлонуп жатасыз, бирок жок. Аттиң, кесиптешиң же кожоюнуң, ким болбосун, сенин милдеттенмеңден улам бүт курулуш кыйрады деп айтат. Программистмин деп таң калып айтасың, баарын сынап көрдүң. Бирок көп учурда бүтүндөй долбоорду тынымсыз сынап көрүүгө убакыт жок жана сиз бүтүндөй жыйынды эмес, өзгөртүү киргизген codeуңузду гана сынап көрдүңүз. Бул жерде CI бизге жардамга келет. Каалаган ресурска ар бир түрткөн сайын, CI долбооруңузду нөлдөн баштап курат, БАРДЫК сыноолорду өткөрөт жана бардык сыноолор өтүп, долбоор курулса гана, куруу өтүүчү статуска ээ болот . Болбосо, сизде кайтып келип, эмне туура эмес болгонун көрүү мүмкүнчүлүгү болот. Демек, «Эмне үчүн бул башкасы эмес?» деген суроону берүүгө убакыт жетти. жана программалык камсыздоону ишке ашырууну карап көрүңүз. Мисал Мен айтып өткөндөй, макала Maven жана Git менен тааныш болгондор үчүн арналган. Ошондуктан, мен сиз CI орнотуудан тышкары кантип жана эмне кылып жатканымды билесиз деп үмүттөнөм.-
Биринчиден, жөнөкөй Maven тест долбоорун түзөлү жана анда "Hello World!" басып чыгарган класс түзөлү. жана кээ бир жөнөкөй операцияларды аткарат жана бул класс үчүн эң жөнөкөй тестти жазалы.
Натыйжада, биз примитивдүү долбоордук түзүлүшкө ээ болушубуз керек:
Бардык булактар менин GitHub'умда болот. Негизги баракчаңызга эмне жазганыңыз жана кандай сыноолор болоору маанилүү эмес.
-
Биз долбоорубузду GitHub'ка түртөбүз.
-
Эми кызыктуу бөлүгү келди. CIден мен Travis CIди анын жеткorктүүлүгү жана ишенимдүүлүгү үчүн тандадым. Travis баштапкы codeун жайгаштыруу үчүн GitHub колдонот.
Ошентип, Travis CI веб-сайтына кирип , GitHub аркылуу кириңиз. Профилде биз долбоорбузду бириктиребиз:
Ар бир түрткөн сайын чогултууга баары даяр, бирок КАНТИП чогултуу керек ?
-
Биз сүйүктүү 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
Мен түшүндүрүү үчүн шилтемелер менен комментарийлерди коштум.
-
Биз кайра GitHub'ка түртүп, Travis веб-сайтын ачабыз , долбоорду тандап, курулушту көзөмөлдөйбүз. Натыйжада, биз ийгorктүү куруу жөнүндө эскертме алабыз:
Ошондой эле сайтта биз README.md сайтыбызга киргизе турган биздин долбоордун ийгorктүү чогулушу менен төш белгини көрө алабыз:
-
Эгер сиз бир нерсени түшүнбөсөңүз, көрө аласыз/жүктөй аласыз менин тест долбоорум ;
-
Чынында Travis CI веб-сайты ;
-
Travis CIди орнотуу жана колдонуу боюнча расмий веб-сайттагы окуу куралы ;
-
Жакшы видео ;
- Дагы бир окуу куралы ;
GO TO FULL VERSION