"Интегратсияи доимӣ чист?"
Биёед бубинем, ки Wiki дар бораи ин савол чӣ мегӯяд : Интегратсияи муттасил (CI, Integration Continuous English) як таҷрибаи таҳияи нармафзор аст, ки аз муттаҳид кардани нусхаҳои корӣ ба як шохаи асосии таҳия дар як рӯз чанд маротиба ва анҷом додани сохтани зуд-зуд автоматикунонидашудаи лоиҳа барои барвақттар иборат аст. ошкор кардани камбудиҳои эҳтимолӣ ва ҳалли мушкилоти интегратсия. Даҳшатнок, ҳамин тавр не? Биёед кӯшиш кунем, ки ин истилоҳро бо суханони оддӣ шарҳ диҳем: Интегратсияи доимӣ як системаи сохтан ва санҷиши автоматии нармафзор бо конфигуратсияҳои муайян дар мошинҳои муайян бо мақсади ошкор кардани хатогиҳо ва номувофиқатӣ мебошад. Хуб, ҳеҷ мушкиле нест, мо фаҳмидем, аммо саволи мантиқии зерин ба миён меояд:Чаро ба мо CI лозим аст?
Биёед танҳо тасаввур кунем, ки шумо лоиҳаи калон менависед ва зарурати илова кардан/тағйир додани функсия вуҷуд дорад. Шумо онро бомуваффақият менависед, санҷишҳо нависед, онро оғоз кунед ва ҳама чиз хуб ба назар мерасад, аммо не. Ҳолатҳое вуҷуд доранд, ки тағирот дар як функсия ба дигараш, дигаре ба сеюмӣ таъсир мерасонад ва ғайра, то он даме, ки хато ба ҷое лағжад ва хатогӣ рух диҳад. Бале, шумо метавонед бигӯед, ки ин як лоиҳаи бади тарҳрезишуда аст ва шумо шояд дуруст бошед, аммо агар ин тавр набошад ва ин робитаҳо дар ҳақиқат бояд дар онҷо бошанд? Ва агар шумо зиёда аз як маротиба лоиҳа нависед ва эҷод кунед, ки аксар вақт чунин аст? Шумо дар бораи функсияҳои нав навиштаатон санҷишҳо гузаронидаед ва онҳо натиҷаи мусбӣ доданд. Шумо зуд ӯҳдадор шудед, пас ба ҷое тела додед ва аллакай дар бораи он фикр мекунед, ки чӣ гуна шумо дар хона ҳангоми нӯшидани виски гаронбаҳо сигор мекашед, аммо не. Афсӯс, ҳамтои шумо ё раҳбари шумо, новобаста аз кӣ, мегӯяд, ки аз сабаби ӯҳдадории шумо тамоми сохтмон вайрон шуд. Шумо бо ҳайрат мегӯед, ки шумо барномасоз ҳастед, ҳама чизро санҷидаед. Аммо аксар вақт барои озмоиши доимии тамоми лоиҳа вақт нест ва шумо танҳо порчаи рамзи худро санҷидаед, ки ба он тағирот ворид кардаед, на тамоми маҷлис. Дар ин ҷо CI ба кӯмаки мо меояд. Бо ҳар як фишор ба ҳама гуна манбаъ, CI лоиҳаи шуморо аз сифр месозад, ҲАМАИ санҷишҳоро иҷро мекунад ва танҳо агар ҳама санҷишҳо гузаранд ва лоиҳа сохта шавад, сохтмон мақоми гузаришро мегирад . Дар акси ҳол, шумо имкон доред, ки баргардед ва бубинед, ки чӣ хато кардааст. Пас, вақти он расидааст, ки саволи "Чаро ин тавр бошаду на дигар?" ва ба татбиқи нармафзор назар андозед. Мисол Тавре ки ман аллакай гуфтам, мақола барои онҳое пешбинӣ шудааст, ки бо Maven ва Git шиносанд. Аз ин рӯ, ман умедворам, ки шумо медонед, ки ман ба ғайр аз таъсиси CI ва ғайра чӣ гуна ва чӣ кор мекунам.-
Аввалан, биёед як лоиҳаи оддии санҷишии Maven эҷод кунем ва дар он синфе эҷод кунем, ки "Салом Ҷаҳон!"-ро чоп мекунад. ва баъзе амалиёти оддиро иҷро мекунад ва биёед соддатарин санҷишро барои ин синф нависед.
Дар натиҷа, мо бояд сохтори ибтидоии лоиҳа дошта бошем:
Ҳама манбаъҳо дар GitHub ман хоҳанд буд. Фарқ надорад, ки шумо дар Main худ чӣ менависед ва кадом санҷишҳо хоҳанд буд.
-
Мо лоиҳаи худро ба GitHub тела медиҳем.
-
Акнун қисми шавқовар меояд. Аз CI, ман Travis CI-ро аз сабаби мавҷудият ва эътимоднокии он интихоб кардам. Травис GitHub-ро барои ҷойгир кардани рамзи сарчашмаи худ истифода мебарад.
Ҳамин тавр, ба вебсайти Travis CI равед ва тавассути GitHub ворид шавед. Дар профил мо лоиҳаи худро пайваст мекунем:
Ҳама чиз бо ҳар як тела барои васлкунӣ омода аст, аммо савол ин аст, ки ЧӢ ТАВР васл кардан мумкин аст?
-
Мо ба IDEA-и маҳбуби худ бармегардем ва файли .travis.yml эҷод мекунем
Ин файл барои конфигуратсияи сохтани 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 -ро мекушоем , лоиҳаро интихоб мекунем ва сохтмонро назорат мекунем. Дар натиҷа, мо дар бораи сохтани бомуваффақият огоҳинома мегирем:
Инчунин дар сайт мо метавонем нишони бомуваффақияти монтажи лоиҳаи худро бинем, ки мо метавонем онро ба README.md дохил кунем:
-
Лоиҳаи санҷишии ман , ки шумо метавонед дидан/зеркашӣ кунед, агар шумо чизе нафаҳмед;
-
Дар асл худи вебсайти Travis CI ;
-
Дарсӣ дар вебсайти расмӣ оид ба таъсис ва истифодаи Travis CI;
-
Видеои хуб ;
- Дарси дигар ;
GO TO FULL VERSION