{"id":96161,"date":"2020-10-08T19:42:48","date_gmt":"2020-10-08T17:42:48","guid":{"rendered":"https:\/\/prohoster.info\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd"},"modified":"2020-10-08T19:42:48","modified_gmt":"2020-10-08T17:42:48","slug":"bitva-jenkins-i-gitlab-ci-cd","status":"publish","type":"post","link":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd","title":{"rendered":"Jenkins un GitLab CI\/CD c\u012b\u0146a","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>P\u0113d\u0113j\u0101 desmitgad\u0113 ir sasniegti iev\u0113rojami pan\u0101kumi nep\u0101rtraukto integr\u0101cijas (Continuous Integration, CI) un nep\u0101rtraukto izvieto\u0161anas (Continuous Delivery, CD) r\u012bku izstr\u0101d\u0113. Izstr\u0101des un oper\u0101ciju tehnolo\u0123iju att\u012bst\u012bba (Development Operations, DevOps) ir rad\u012bjusi strauju piepras\u012bjumu p\u0113c CI\/CD r\u012bkiem. Eso\u0161ie risin\u0101jumi nep\u0101rtraukti uzlabojas, cent\u012bgi sekojot laikam, tiek izlaistas to jaunas versijas, un programmat\u016bras kvalit\u0101tes kontroles (Quality Assurance, QA) jom\u0101 regul\u0101ri par\u0101d\u0101s daudzi jauni produkti. \u0160\u0101d\u0101 bag\u0101t\u012bg\u0101 izv\u0113l\u0113 atbilsto\u0161a r\u012bka atra\u0161ana izr\u0101d\u0101s sare\u017e\u0123\u012bta uzdevums.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/522334\/\"><img decoding=\"async\" alt=\"Jenkins un GitLab CI\/CD c\u012b\u0146a\" src=\"\/wp-content\/uploads\/2020\/10\/6cf6dfa92ebec7d6e44776e9c9bfbb6d.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p>No visiem eso\u0161ajiem CI\/CD r\u012bkiem ir divi projekti, kuriem noteikti j\u0101piev\u0113r\u0161 uzman\u012bba ikvienam, kur\u0161 mekl\u0113 kaut ko no \u0161\u012bs jomas. Run\u0101jam par Jenkins un GitLab CI\/CD r\u012bku, kas ir da\u013ca no GitLab platformas. Jenkins ir vair\u0101k <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/jenkinsci\/jenkins\">16000<\/a><\/noindex> zvaig\u017e\u0146u GitHub. GitLab repozitorijs vietn\u0113 gitlab.com ir sa\u0146\u0113mis nedaudz vair\u0101k <noindex><a rel=\"nofollow\" href=\"https:\/\/gitlab.com\/gitlab-org\/gitlab\">2000<\/a><\/noindex> zvaig\u017e\u0146u. Sal\u012bdzinot repozitoriju popularit\u0101ti, izr\u0101d\u0101s, ka Jenkins ir sa\u0146\u0113mis 8 reizes vair\u0101k zvaig\u017e\u0146u nek\u0101 platforma, kur\u0101 ietilpst GitLab CI\/CD. Ta\u010du, izv\u0113loties CI\/CD r\u012bku, tas ir t\u0101lu ne vien\u012bgais r\u0101d\u012bt\u0101js, kam j\u0101piev\u0113r\u0161 uzman\u012bba. Ir daudz citu, un tas skaidro, k\u0101p\u0113c daudzos sal\u012bdzin\u0101jumos Jenkins un GitLab CI\/CD ir \u013coti tuvu viens otram.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nPiem\u0113ram, \u0146emsim datus no platformas G2, kas apkopo atsauksmes par da\u017e\u0101diem produktiem un v\u0113rt\u0113jumus, ko sniedz lietot\u0101ji. \u0160eit vid\u0113jais v\u0113rt\u0113jums <noindex><a rel=\"nofollow\" href=\"https:\/\/www.g2.com\/products\/jenkins\/reviews\">Jenkins<\/a><\/noindex>, kas ieg\u016bts, pamatojoties uz 288 atsauksm\u0113m, ir 4,3 zvaigznes. Bet par <noindex><a rel=\"nofollow\" href=\"https:\/\/www.g2.com\/products\/gitlab\/reviews\">GitLab<\/a><\/noindex> \u0161im r\u012bkam ir 270 atsauksmes, vid\u0113jais v\u0113rt\u0113jums ir 4,4 zvaigznes. M\u0113s nevaram k\u013c\u016bd\u012bties, apgalvojot, ka Jenkins un GitLab CI\/CD konkur\u0113 sav\u0101 starp\u0101 uz vien\u0101diem noteikumiem. Interesanti atz\u012bm\u0113t, ka projekts Jenkins rad\u0101s 2011. gad\u0101 un kop\u0161 t\u0101 laika ir k\u013cuvis par iecien\u012btu r\u012bku test\u0113t\u0101jiem. Tom\u0113r projekts GitLab CI\/CD, kas uzs\u0101kts 2014. gad\u0101, ir ie\u0146\u0113mis augstas poz\u012bcijas, pateicoties \u0161\u012bs platformas pied\u0101v\u0101taj\u0101m progres\u012bvaj\u0101m iesp\u0113j\u0101m.<\/p>\n<p>Run\u0101jot par Jenkins popularit\u0101ti sal\u012bdzin\u0101jum\u0101 ar cit\u0101m l\u012bdz\u012bg\u0101m platform\u0101m, j\u0101atz\u012bm\u0113, ka p\u0113c m\u016bsu publik\u0101cijas par Travis CI un Jenkins sal\u012bdzin\u0101\u0161anu, m\u0113s veic\u0101m aptauju. Taj\u0101 piedal\u012bj\u0101s 85 lietot\u0101ji. Respondentiem tika pied\u0101v\u0101ts izv\u0113l\u0113ties CI\/CD r\u012bku, kur\u0161 vi\u0146iem pat\u012bk visvair\u0101k. 79% izv\u0113l\u0113j\u0101s Jenkins, 5% izv\u0113l\u0113j\u0101s Travis CI, bet 16% nor\u0101d\u012bja, ka dod priek\u0161roku citiem r\u012bkiem.<\/p>\n<p><img decoding=\"async\" alt=\"Jenkins un GitLab CI\/CD c\u012b\u0146a\" src=\"\/wp-content\/uploads\/2020\/10\/b66b5d3d5f27f3310c8bf0fc68f4c636.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<i>Aptaujas rezult\u0101ti<\/i><\/p>\n<p>Starp citiem CI\/CD r\u012bkiem visbie\u017e\u0101k tika piemin\u0113ts GitLab CI\/CD.<\/p>\n<p>Ja j\u016bs nopietni nodarbojaties ar DevOps, jums ir r\u016bp\u012bgi j\u0101izv\u0113las atbilsto\u0161ie r\u012bki, \u0146emot v\u0113r\u0101 projekta specifiku, bud\u017eetu un citus nosac\u012bjumus. Lai pal\u012bdz\u0113tu jums pie\u0146emt pareizo l\u0113mumu, m\u0113s pl\u0101nojam veikt anal\u012bzi starp Jenkins un GitLab CI\/CD. Cerams, ka tas pal\u012bdz\u0113s jums pie\u0146emt pareizo l\u0113mumu.<\/p>\n<h2>Iepaz\u012b\u0161an\u0101s ar Jenkins<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Jenkins un GitLab CI\/CD c\u012b\u0146a\" src=\"\/wp-content\/uploads\/2020\/10\/f7df92d1fb3f81f785fc59da82a943b7.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/www.jenkins.io\/\">Jenkins<\/a><\/noindex> Jenkins ir pla\u0161i paz\u012bstams, elast\u012bgs CI\/CD r\u012bks, kas paredz\u0113ts, lai automatiz\u0113tu daudzus uzdevumus, kas saist\u012bti ar programmat\u016bras projektiem. Jenkins ir piln\u012bb\u0101 uzrakst\u012bts Java valod\u0101 un tiek izdots ar MIT licenci. Tam ir jaud\u012bgs iesp\u0113ju kopums, kas v\u0113rsts uz uzdevumu automatiz\u0113\u0161anu, kas saist\u012bti ar b\u016bv\u0113\u0161anu, test\u0113\u0161anu, izvieto\u0161anu, integr\u0101ciju un programmat\u016bras izlai\u0161anu. \u0160o r\u012bku var izmantot da\u017e\u0101d\u0101s oper\u0113t\u0101jsist\u0113m\u0101s, tostarp macOS, Windows un daudzu Linux izplat\u012bjumu, piem\u0113ram, OpenSUSE, Ubuntu un Red Hat. Eksist\u0113 Jenkins instal\u0101cijas pakotnes, kas paredz\u0113tas da\u017e\u0101d\u0101m oper\u0113t\u0101jsist\u0113m\u0101m, \u0161o r\u012bku var instal\u0113t ar\u012b Docker vid\u0113, k\u0101 ar\u012b jebkur\u0101 sist\u0113m\u0101 ar JRE (Java Runtime Environment).<\/p>\n<p>Jenkins izstr\u0101d\u0101t\u0101ji ir rad\u012bju\u0161i v\u0113l vienu projektu, Jenkins X, kura m\u0113r\u0137is ir darbs Kubernetes vid\u0113. Jenkins X ir integr\u0113ti Helm, Jenkins CI\/CD serveris, Kubernetes un citi r\u012bki, kas paredz\u0113ti CI\/CD cauru\u013cvadu veido\u0161anai, kas atbilst DevOps lab\u0101kaj\u0101m praks\u0113m. Piem\u0113ram, \u0161eit tiek izmantots GitOps.<\/p>\n<p>Jenkins priek\u0161roc\u012bbu sarakstam var pievienot ar\u012b faktu, ka t\u0101 skripti ir \u013coti labi struktur\u0113ti, saprotami un viegli las\u0101mi. Jenkins komanda ir izveidojusi apm\u0113ram 1000 papildin\u0101jumu, kas v\u0113rsti uz Jenkins savieno\u0161anu ar da\u017e\u0101d\u0101m tehnolo\u0123ij\u0101m. Skriptu ietvaros var izmantot autentifik\u0101cijas sist\u0113mas, kas \u013cauj piesl\u0113gties da\u017e\u0101d\u0101m sl\u0113gt\u0101m sist\u0113m\u0101m.<\/p>\n<p>Jenkins konveijera darb\u012bbas laik\u0101 var nov\u0113rot to, kas notiek katr\u0101 t\u0101 posm\u0101, un vai attiec\u012bgie darba posmi ir pabeigti veiksm\u012bgi vai n\u0113. To var nov\u0113rot, izmantojot termin\u0101la iesp\u0113jas, nevis k\u0101du grafisko interfeisu.<\/p>\n<h2>Jenkins iez\u012bmes<\/h2>\n<p>\nStarptautisko Jenkins iez\u012bmju vid\u016b ir viegla iestat\u012b\u0161ana, augsts automatiz\u0101cijas l\u012bmenis da\u017e\u0101d\u0101m oper\u0101cij\u0101m un lieliska dokument\u0101cija. Run\u0101jot par DevOps uzdevumu risin\u0101\u0161anu, Jenkins tiek uzskat\u012bts par \u013coti uzticamu r\u012bku, kura lieto\u0161ana parasti nenoz\u012bm\u0113 nepiecie\u0161am\u012bbu uzman\u012bgi sekot visam projekta apstr\u0101des procesam. Ar citiem CI\/CD r\u012bkiem tas t\u0101 nav. Apskat\u012bsim da\u017eas svar\u012bg\u0101k\u0101s Jenkins iesp\u0113jas.<\/p>\n<h3>\u258d1. Bezmaksas, atv\u0113rt\u0101 koda, atbalsts daudz\u0101m platform\u0101m<\/h3>\n<p>\nJenkins var darboties macOS, Windows un Linux platform\u0101s. Tas var darboties ar\u012b Docker vid\u0113, kas \u013cauj veidot viendab\u012bgas un \u0101tras automatiz\u0113tu uzdevumu izpildes. \u0160is r\u012bks papildus var darboties k\u0101 servlets konteineros, kas atbalsta Java, piem\u0113ram, Apache Tomcat un GlassFish. Jenkins instal\u0101cija ir kvalitat\u012bvi <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jenkins.io\/doc\/book\/installing\/\">dokument\u0113ta.<\/a><\/noindex>.<\/p>\n<h3>\u258d2. Izv\u0113rsta spraud\u0146u ekosist\u0113ma<\/h3>\n<p>\nJenkins spraud\u0146u ekosist\u0113ma izskat\u0101s daudz att\u012bst\u012bt\u0101ka sal\u012bdzin\u0101jum\u0101 ar citu CI\/CD r\u012bku pievienojamo modu\u013cu ekosist\u0113m\u0101m. Pa\u0161laik ir vair\u0101k nek\u0101 1500 spraud\u0146u Jenkins. \u0160ie spraud\u0146i ir paredz\u0113ti pla\u0161a uzdevumu spektra risin\u0101\u0161anai, izmantojot tos, var automatiz\u0113t da\u017e\u0101dus projektus. Smags izv\u0113les bezmaksas spraud\u0146u kl\u0101sts noz\u012bm\u0113, ka Jenkins lietot\u0101jam nav steidzamas nepiecie\u0161am\u012bbas ieg\u0101d\u0101ties d\u0101rgas maksas spraudnus. Ir iesp\u0113ja <noindex><a rel=\"nofollow\" href=\"https:\/\/www.lambdatest.com\/support\/docs\/jenkins-with-lambdatest\/\">integr\u0101cijai<\/a><\/noindex> integr\u0113t Jenkins ar daudziem DevOps r\u012bkiem.<\/p>\n<h3>\u258d3. Vienk\u0101r\u0161a instal\u0101cija un iestat\u012b\u0161ana<\/h3>\n<p>\nJenkins ir sal\u012bdzino\u0161i viegli uzst\u0101d\u012bt un konfigur\u0113t. Turkl\u0101t sist\u0113mas atjaunin\u0101\u0161anas process ir \u013coti \u0113rts. \u0160eit v\u0113lreiz j\u0101piebilst par dokument\u0101cijas kvalit\u0101ti, jo taj\u0101 var atrast atbildes uz da\u017e\u0101diem jaut\u0101jumiem, kas saist\u012bti ar Jenkins instal\u0113\u0161anu un konfigur\u0113\u0161anu.<\/p>\n<h3>\u258d4. Draudz\u012bga kopiena<\/h3>\n<p>\nK\u0101 jau min\u0113ts, Jenkins ir atv\u0113rt\u0101 koda projekts, kura ekosist\u0113m\u0101 ietilpst liels pluginu skaits. Apk\u0101rt Jenkins ir veidojusies liela lietot\u0101ju un izstr\u0101d\u0101t\u0101ju kopiena, kas pal\u012bdz projekta att\u012bst\u012bb\u0101. Kopiena ir viens no faktoriem, kas veicina Jenkins att\u012bst\u012bbu.<\/p>\n<h3>\u258d5. REST API pieejam\u012bba<\/h3>\n<p>\nStr\u0101d\u0101jot ar Jenkins, var izmantot REST API, kas papla\u0161ina sist\u0113mas iesp\u0113jas. API att\u0101lin\u0101tai piek\u013cuvei ir pieejams trijos variantos: XML, JSON ar JSONP atbalstu, Python. <noindex><a rel=\"nofollow\" href=\"https:\/\/www.jenkins.io\/doc\/book\/using\/remote-access-api\/\">\u0160eit<\/a><\/noindex> dokumet\u0101cijas lapa, kas atkl\u0101j s\u012bk\u0101kas deta\u013cas par darb\u012bbu ar Jenkins REST API.<\/p>\n<h3>\u258d6. Uzdevumu paral\u0113las izpildes atbalsts<\/h3>\n<p>\nJenkins atbalsta DevOps uzdevumu paraleliz\u0113\u0161anu. To viegli integr\u0113t ar atbilsto\u0161iem r\u012bkiem un sa\u0146emt pazi\u0146ojumus par uzdevumu izpildes rezult\u0101tiem. Koda test\u0113\u0161anas izpildi var pa\u0101trin\u0101t, organiz\u0113jot paral\u0113lu projekta b\u016bvi, izmantojot da\u017e\u0101das virtu\u0101l\u0101s ma\u0161\u012bnas.<\/p>\n<h3>\u258d7. Atbalsts darbam izplat\u012bt\u0101s vid\u0113s<\/h3>\n<p>\nJenkins \u013cauj organiz\u0113t izplat\u012btas b\u016bves, izmantojot vair\u0101kus datorus. \u0160\u012b iesp\u0113ja ir piem\u0113rojama lielos projektos un izmanto darb\u012bbas modeli, kur\u0101 ir viens galvenais Jenkins serveris un vair\u0101kas pak\u013caut\u0101s ma\u0161\u012bnas. Pak\u013caut\u0101s ma\u0161\u012bnas var tikt izmantotas situ\u0101cij\u0101s, kad nepiecie\u0161ams organiz\u0113t projekta test\u0113\u0161anu da\u017e\u0101d\u0101s vid\u0113s. \u0160\u012bs iesp\u0113jas izce\u013c Jenkins no citiem l\u012bdz\u012bgiem projektiem.<\/p>\n<h2>Iepaz\u012b\u0161an\u0101s ar GitLab<\/h2>\n<p>\n<img decoding=\"async\" alt=\"Jenkins un GitLab CI\/CD c\u012b\u0146a\" src=\"\/wp-content\/uploads\/2020\/10\/aa89f462b8378c8efefef142ff0ca6be.jpg\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<noindex><a rel=\"nofollow\" href=\"https:\/\/about.gitlab.com\/\">GitLab CI\/CD<\/a><\/noindex> var uzskat\u012bt par vienu no jaun\u0101kajiem un iecien\u012bt\u0101kajiem DevOps in\u017eenieru r\u012bkiem. \u0160is bezmaksas atv\u0113rt\u0101 koda r\u012bks ir ieb\u016bv\u0113ts GitLab versiju kontroles sist\u0113m\u0101. GitLab platformai ir community versija, kas atbalsta repozitoriju p\u0101rvald\u012bbu, probl\u0113mu izseko\u0161anas r\u012bkus, kodu p\u0101rskatu organiz\u0113\u0161anu, meh\u0101nismus, kas orient\u0113ti uz dokument\u0101cijas izveidi. Uz\u0146\u0113mumi var uzst\u0101d\u012bt GitLab lok\u0101li, sasaistot \u0161o sist\u0113mu ar Active Directory un LDAP serveriem, lai organiz\u0113tu dro\u0161u autoriz\u0101ciju un autentifik\u0101ciju lietot\u0101jiem.<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"https:\/\/youtu.be\/3quCZ7ZMg0Y\">\u0160eit<\/a><\/noindex> video pam\u0101c\u012bba, kas pal\u012bdz\u0113s jums uzzin\u0101t, k\u0101 izveidot CI\/CD konveijerus, izmantojot GitLab CI\/CD iesp\u0113jas.<\/p>\n<p>S\u0101kotn\u0113ji GitLab CI\/CD tika izlaists k\u0101 patst\u0101v\u012bgs projekts, ta\u010du 2015. gad\u0101 \u0161is r\u012bku kopums tika integr\u0113ts GitLab 8.0. Atsevi\u0161\u0137s GitLab CI\/CD serveris var apkalpot vair\u0101k nek\u0101 25000 lietot\u0101ju. Uz \u0161\u0101diem serveriem var izveidot sist\u0113mas, kas at\u0161\u0137iras ar augstu pieejam\u012bbu.<\/p>\n<p>GitLab CI\/CD un pamata projekts GitLab ir uzrakst\u012bti Ruby un Go valod\u0101. Tie ir izlaisti zem MIT licences. GitLab CI\/CD, papildus parastaj\u0101m CI\/CD r\u012bku iesp\u0113j\u0101m, atbalsta ar\u012b papildu iesp\u0113jas, kas saist\u012btas, piem\u0113ram, ar darbu pl\u0101no\u0161anu.<\/p>\n<p>Integr\u0113t GitLab CI\/CD projekt\u0101 ir \u013coti viegli. Izmantojot GitLab CI\/CD, projekta koda apstr\u0101des process tiek dal\u012bts posmos, katrs no kuriem var sast\u0101v\u0113t no vair\u0101k\u0101m uzdevumu izpild\u0113m noteikt\u0101 sec\u012bb\u0101. Uzdevumus var prec\u012bzi konfigur\u0113t.<\/p>\n<p>Uzdevumi var tikt izpild\u012bti paral\u0113li. P\u0113c posmu un uzdevumu sec\u012bbas iestat\u012b\u0161anas CI\/CD kan\u0101ls ir gatavs darbam. Var sekot l\u012bdzi t\u0101 izpildes gaitai, uzraugot uzdevumu statusu. T\u0101d\u0113j\u0101di GitLab CI\/CD lieto\u0161ana ir \u013coti \u0113rta, iesp\u0113jams, pat \u0113rt\u0101ka nek\u0101 ar citiem l\u012bdz\u012bgiem r\u012bkiem.<\/p>\n<h2>GitLab CI\/CD un GitLab \u012bpatn\u012bbas<\/h2>\n<p>\nGitLab CI\/CD ir viens no popul\u0101r\u0101kajiem DevOps r\u012bkiem. Projekts izce\u013cas ar kvalitat\u012bvu dokument\u0101ciju, t\u0101 iesp\u0113jas ir viegli un \u0113rti lietojamas. Ja j\u016bs v\u0113l neesat iepazinies ar GitLab CI\/CD, sekojo\u0161ais iesp\u0113ju saraksts sniegs jums visp\u0101r\u0113ju priek\u0161statu par to, ko no \u0161\u012b r\u012bka var sagaid\u012bt. J\u0101atz\u012bm\u0113, ka daudzas no \u0161\u012bm iesp\u0113j\u0101m attiecas uz pa\u0161u platformu GitLab, kur\u0101 ir integr\u0113ts GitLab CI\/CD.<\/p>\n<h3>\u258d1. Popularit\u0101te<\/h3>\n<p>\nGitLab CI\/CD ir sal\u012bdzino\u0161i jauns r\u012bks, kas guvis pla\u0161u pielietojumu. GitLab CI\/CD pak\u0101peniski ir k\u013cuvis par \u0101rk\u0101rt\u012bgi popul\u0101ru CI\/CD r\u012bku, ko izmanto automatiz\u0113tai programmat\u016bras test\u0113\u0161anai un ievie\u0161anai. To ir viegli konfigur\u0113t. Turkl\u0101t tas ir bezmaksas CI\/CD r\u012bks, kas ieb\u016bv\u0113ts GitLab platform\u0101.<\/p>\n<h3>\u258d2. Atbalsts GitLab Pages un Jekyll<\/h3>\n<p>\nJekyll ir statisku m\u0101jaslapu \u0123eneratoru, ko var izmantot GitLab Pages sist\u0113m\u0101, lai izveidotu m\u0101jaslapas, balstoties uz GitLab glab\u0101tav\u0101m. Sist\u0113ma \u0146em izejmateri\u0101lus un \u0123ener\u0113 to pamata izveidotu statisku m\u0101jaslapu. Ar \u0161\u0101du m\u0101jaslapu izskatu un iesp\u0113j\u0101m var p\u0101rvald\u012bt, redi\u0123\u0113jot failu <code>_config.yml<\/code>, ko Jekyll.<\/p>\n<h3>\u258d3. Projekta pl\u0101no\u0161anas iesp\u0113jas<\/h3>\n<p>\nPateicoties projektu posmu pl\u0101no\u0161anas iesp\u0113j\u0101m, tiek uzlabota probl\u0113mu uzraudz\u012bbas \u0113rt\u012bba un to grup\u0113\u0161ana. Tas \u013cauj p\u0101rvald\u012bt projekta darbus, pl\u0101nojot to izpildi noteikt\u0101 datum\u0101.<\/p>\n<h3>\u258d4. CI-runnere autom\u0101tisk\u0101 m\u0113rogo\u0161ana<\/h3>\n<p>\nPateicoties autom\u0101tiskajai runneru m\u0113rogo\u0161anai, kas atbild\u012bgi par konkr\u0113tu uzdevumu izpildi, var iev\u0113rojami ietaup\u012bt uz serveru jaudas nomas izmaks\u0101m. Tas ir \u013coti svar\u012bgi, \u012bpa\u0161i tad, ja runa ir par vid\u0113m, kur projektu test\u0113\u0161ana notiek paral\u0113li. Turkl\u0101t tas ir svar\u012bgi lieliem projektiem, kas sast\u0101v no vair\u0101kiem repozitorijiem.<\/p>\n<h3>\u258d5. Probl\u0113mu uzraudz\u012bbas r\u012bki<\/h3>\n<p>\nJaud\u012bg\u0101s GitLab probl\u0113mu uzraudz\u012bbas iesp\u0113jas ir izrais\u012bju\u0161as, ka \u0161o platformu izmanto daudzi atv\u0113rt\u0101 koda projekti. GitLab CI\/CD \u013cauj veikt paral\u0113lu da\u017e\u0101du koda zaru test\u0113\u0161anu. Test\u0113\u0161anas rezult\u0101tus \u0113rti analiz\u0113t sist\u0113mas interfeis\u0101. Tas izdev\u012bgi at\u0161\u0137ir GitLab CI\/CD no Jenkins.<\/p>\n<h3>\u258d6. Pieejas ierobe\u017eo\u0161ana repozitorijiem<\/h3>\n<p>\nGitLab platforma atbalsta piek\u013cuves ierobe\u017eo\u0161anu repozitorijiem. Piem\u0113ram, tiem, kas kop\u012bgi str\u0101d\u0101 pie projekta k\u0101d\u0101 repozitorij\u0101, var pie\u0161\u0137irt ties\u012bbas, kas atbilst vi\u0146u lom\u0101m. Tas ir \u012bpa\u0161i aktu\u0101li korporat\u012bvajiem projektiem.<\/p>\n<h3>\u258d7. Akt\u012bva kopienas atbalsts<\/h3>\n<p>\nAp GitLab ir izveidojusies akt\u012bva kopiena, kas veicina \u0161\u012bs platformas un t\u0101s r\u012bku att\u012bst\u012bbu, \u012bpa\u0161i \u2014 GitLab CI\/CD. Dzi\u013ca GitLab CI\/CD un GitLab integr\u0101cija, cita starp\u0101, atvieglo atbil\u017eu atra\u0161anu uz jaut\u0101jumiem, kas rodas, str\u0101d\u0101jot ar GitLab CI\/CD.<\/p>\n<h3>\u258d8. Atbalsts darbam ar da\u017e\u0101d\u0101m versiju kontroles sist\u0113m\u0101m<\/h3>\n<p>\nGitLab CI\/CD ir sist\u0113ma, kas sp\u0113j str\u0101d\u0101t ne tikai ar kodu, kas izvietots GitLab repozitorijos. Piem\u0113ram, kodu var glab\u0101t GitHub repozitorij\u0101, bet CI\/CD kan\u0101lu var organiz\u0113t uz GitLab pamata, izmantojot GitLab CI\/CD.<\/p>\n<h2>Jenkins un GitLab CI\/CD sal\u012bdzin\u0101jums<\/h2>\n<p>\nJenkins un GitLab CI\/CD ir \u013coti labi r\u012bki, katrs no kuriem sp\u0113j nodro\u0161in\u0101t norm\u0101lu CI\/CD kan\u0101la darb\u012bbu. Bet, ja tos sal\u012bdzina, izr\u0101d\u0101s, ka tie, lai gan ir daudz l\u012bdz\u012bgi, tom\u0113r at\u0161\u0137iras.<\/p>\n<p><strong>Raksturojums<\/strong><br \/>\n<strong>Jenkins<\/strong><br \/>\n<strong>GitLab CI\/CD<\/strong><\/p>\n<p>Atv\u0113rt\u0101 vai sl\u0113gt\u0101 koda<br \/>\nAtv\u0113rt\u0101 koda<br \/>\nAtv\u0113rt\u0101 koda<\/p>\n<p>Uzst\u0101d\u012b\u0161ana<br \/>\nNepiecie\u0161ams.<br \/>\nNav nepiecie\u0161ams, jo tas ir ieb\u016bv\u0113ta GitLab platformas funkcija.<\/p>\n<p>Unik\u0101l\u0101s iez\u012bmes<br \/>\nPapla\u0161in\u0101jumu atbalsts.<br \/>\nDzi\u013ca integr\u0101cija versiju kontroles sist\u0113m\u0101.<\/p>\n<p>Atbalsts<br \/>\nNav.<br \/>\nIr.<\/p>\n<p>Uzst\u0101d\u012b\u0161ana un konfigur\u0101cija<br \/>\nNav sare\u017e\u0123\u012bjumu<br \/>\nNav sare\u017e\u0123\u012bjumu<\/p>\n<p>Pa\u0161saprotama sist\u0113mas izvieto\u0161ana<br \/>\nTas ir vien\u012bgais sist\u0113mas izmanto\u0161anas variants.<br \/>\nAtbalst\u012bts.<\/p>\n<p>CI\/CD cauru\u013cvadu izveide<br \/>\nAtbalst\u012bts, izmantojot Jenkins Pipeline.<br \/>\nAtbalst\u012bts.<\/p>\n<p>Lietojumprogrammu veiktsp\u0113jas uzraudz\u012bba<br \/>\nNav.<br \/>\nIr.<\/p>\n<p>Ekosist\u0113ma<br \/>\nIr vair\u0101k nek\u0101 1000 papla\u0161in\u0101jumu.<br \/>\nSist\u0113ma att\u012bst\u0101s GitLab ietvaros.<\/p>\n<p>API<br \/>\nAtbalsta att\u012bst\u012btu API sist\u0113mu.<br \/>\nPied\u0101v\u0101 API dzi\u013c\u0101kai integr\u0101cijai projektos.<\/p>\n<p>JavaScript atbalsts<br \/>\nIr.<br \/>\nIr.<\/p>\n<p>Integr\u0101cija ar citiem r\u012bkiem<br \/>\nAtbalsta integr\u0101ciju ar citiem r\u012bkiem un platform\u0101m (Slack, GitHub).<br \/>\nDaudz l\u012bdzek\u013cu integr\u0101cijai ar tre\u0161o pu\u0161u sist\u0113m\u0101m, tostarp ar GitHub un Kubernetes.<\/p>\n<p>Koda kvalit\u0101tes kontrole<br \/>\nAtbalst\u012bts \u2014 ar SonarQube papla\u0161in\u0101juma un citu papla\u0161in\u0101jumu pal\u012bdz\u012bbu.<br \/>\nAtbalst\u012bts.<\/p>\n<p><\/p>\n<h2>At\u0161\u0137ir\u012bbas starp Jenkins un GitLab CI\/CD<\/h2>\n<p>\nAprakstot un sal\u012bdzinot Jenkins un GitLab CI\/CD, piev\u0113rs\u012bsimies \u0161o DevOps r\u012bku at\u0161\u0137ir\u012bb\u0101m. Zin\u0101\u0161anas par \u0161\u012bm at\u0161\u0137ir\u012bb\u0101m pal\u012bdz\u0113s saprast tos, kas dod priek\u0161roku vienam no \u0161iem r\u012bkiem p\u0101r otru.<\/p>\n<ul>\n<li>GitLab CI\/CD var piln\u012bb\u0101 kontrol\u0113t Git repozitorijus. Tas attiecas uz zaru p\u0101rvald\u012bbu repozitorijos un da\u017e\u0101m cit\u0101m iesp\u0113j\u0101m. Turpret\u012b Jenkins, kaut ar\u012b sp\u0113j str\u0101d\u0101t ar repozitorijiem, nenodro\u0161ina t\u0101du pa\u0161u l\u012bme\u0146a kontroli k\u0101 GitLab CI\/CD.<\/li>\n<li>Jenkins ir bezmaksas atv\u0113rt\u0101 koda projekts. Tas, kur\u0161 to izv\u0113las, to izvieto pats. Savuk\u0101rt GitLab CI\/CD ir iek\u013cauts GitLab platform\u0101, tas ir gatavs risin\u0101jums.<\/li>\n<li>GitLab CI\/CD atbalsta att\u012bst\u012btus uzdevumu p\u0101rvald\u012bbas r\u012bkus projektu l\u012bmen\u012b. \u0160\u012b Jenkins puse ir v\u0101j\u0101ka.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Jenkins un GitLab CI\/CD: stipr\u0101s un v\u0101j\u0101s puses<\/h2>\n<p>\nTagad jums ir izveidota zin\u0101ma izpratne par Jenkins un GitLab CI\/CD. Tagad, lai j\u016bs lab\u0101k iepaz\u012btos ar \u0161iem r\u012bkiem, apskat\u012bsim to stipr\u0101s un v\u0101j\u0101s puses. Ceram, ka \u0161o sada\u013cu jums \u013caus p\u0101rbaud\u012bt sevi.<\/p>\n<h3>\u258dJenkins stipr\u0101s puses<\/h3>\n<p><\/p>\n<ul>\n<li>Liels skaits papla\u0161in\u0101jumu.<\/li>\n<li>Piln\u012bga kontrole p\u0101r r\u012bka instal\u0101ciju.<\/li>\n<li>Vienk\u0101r\u0161a skriptu atk\u013c\u016bdo\u0161ana.<\/li>\n<li>Vienk\u0101r\u0161a mezglu konfigur\u0101cija.<\/li>\n<li>Vienk\u0101r\u0161a koda izvieto\u0161ana.<\/li>\n<li>\u013boti laba akredit\u0101cijas datu p\u0101rvald\u012bbas sist\u0113ma.<\/li>\n<li>Elast\u012bba un universalit\u0101te.<\/li>\n<li>Atbalsts da\u017e\u0101d\u0101m programm\u0113\u0161anas valod\u0101m.<\/li>\n<li>Sist\u0113ma ir saprotama intuit\u012bvi.<\/li>\n<\/ul>\n<p><\/p>\n<h3>\u258dJenkins v\u0101j\u0101s puses<\/h3>\n<p><\/p>\n<ul>\n<li>Izmantojot papla\u0161in\u0101jumus, var rasties sare\u017e\u0123\u012bjumi.<\/li>\n<li>Izmantojot Jenkins mazos projektos, laika izdevumi, kas nepiecie\u0161ami t\u0101 pa\u0161p\u0101rvald\u012b\u0161anai, var b\u016bt nepamatoti lieli.<\/li>\n<li>Tr\u016bkst kop\u012bgu anal\u012btisko datu par CI\/CD \u0137\u0113d\u0113m.<\/li>\n<\/ul>\n<p><\/p>\n<h3>\u258dGitLab CI\/CD stipr\u0101s puses<\/h3>\n<p><\/p>\n<ul>\n<li>Laba integr\u0101cija ar Docker.<\/li>\n<li>Viegla runneru skal\u0113\u0161ana.<\/li>\n<li>Paral\u0113ls uzdevumu izpilde, kas ietilpst CI\/CD konveijera posmos.<\/li>\n<li>Uzdevumu attiec\u012bbu konfigur\u0113\u0161ana, izmantojot orient\u0113tu aciklu grafiku.<\/li>\n<li>Augsts skal\u0113jam\u012bbas l\u012bmenis paral\u0113lu runneru izpildes d\u0113\u013c.<\/li>\n<li>Viegla uzdevumu pievieno\u0161ana.<\/li>\n<li>Viegla konfliktu risin\u0101\u0161ana.<\/li>\n<li>Uzticama dro\u0161\u012bbas sist\u0113ma.<\/li>\n<\/ul>\n<p><\/p>\n<h3>\u258dGitLab CI\/CD v\u0101j\u0101s puses<\/h3>\n<p><\/p>\n<ul>\n<li>Katram uzdevumam ir j\u0101apraksta un j\u0101iel\u0101d\u0113\/izl\u0101d\u0113 artefakti.<\/li>\n<li>Nav iesp\u0113jams p\u0101rbaud\u012bt zaru apvieno\u0161anas rezult\u0101tus pirms to faktisk\u0101s apvieno\u0161anas.<\/li>\n<li>Aprakstot CI\/CD konveijera posmus, pa\u0161laik nav iesp\u0113jams izcelt atsevi\u0161\u0137us posmus.<\/li>\n<\/ul>\n<p><\/p>\n<h2>Secin\u0101jumi<\/h2>\n<p>\nGan Jenkins, gan GitLab CI\/CD ir sp\u0113c\u012bgas un v\u0101j\u0101kas puses. Atbilde uz jaut\u0101jumu, ko izv\u0113l\u0113ties, ir atkar\u012bga no konkr\u0113t\u0101 projekta vajadz\u012bb\u0101m un iez\u012bm\u0113m. Katrs no \u0161odien apskat\u012btajiem CI\/CD r\u012bkiem at\u0161\u0137iras ar noteikt\u0101m \u012bpatn\u012bb\u0101m, lai gan \u0161ie r\u012bki ir rad\u012bti, lai risin\u0101tu to pa\u0161u uzdevumu. Taj\u0101 pa\u0161\u0101 laik\u0101 Jenkins ir patst\u0101v\u012bgs r\u012bks, bet GitLab CI\/CD ir da\u013ca no platformas, kas paredz\u0113ta sadarb\u012bbai pie koda.<\/p>\n<p>Izv\u0113loties CI\/CD sist\u0113mu, ir svar\u012bgi \u0146emt v\u0113r\u0101 ne tikai t\u0101s iesp\u0113jas, bet ar\u012b ieguld\u012bjumus, kas var b\u016bt ar to saist\u012bti, un to, ar ko prec\u012bzi ir pieradu\u0161i str\u0101d\u0101t DevOps in\u017eenieri, kas atbalsta projektu.<\/p>\n<p>Kurus CI\/CD r\u012bkus j\u016bs izmantojat?<\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/ruvds.com\/ru-rub?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=perevod&amp;utm_content=bitva_jenkins_i_gitlab_ci_cd#order\"><img decoding=\"async\" alt=\"Jenkins un GitLab CI\/CD c\u012b\u0146a\" src=\"\/wp-content\/uploads\/2020\/10\/cc25a9353b43773d11028a7a2caf96f1.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/ruvds.com\/ru-rub\/news\/read\/123?utm_source=habr&amp;utm_medium=article&amp;utm_campaign=perevod&amp;utm_content=bitva_jenkins_i_gitlab_ci_cd\"><img decoding=\"async\" alt=\"Jenkins un GitLab CI\/CD c\u012b\u0146a\" src=\"\/wp-content\/uploads\/2020\/10\/efaafe7301c2f6a2fb00a22e7a0fa41a.jpg\" style=\"display:block;margin: 0 auto;\" \/><\/a><\/noindex><br \/>\n<br \/>Avots: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/ruvds\/blog\/522334\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u0438\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043f\u0435\u0445\u0438 \u0432 \u0441\u0444\u0435\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 (Continuous Integration, CI) \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f (Continuous Delivery, CD). \u0420\u0430\u0437\u0432\u0438\u0442\u0438\u0435 \u0442\u0435\u0445\u043d\u043e\u043b\u043e\u0433\u0438\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438 \u044d\u043a\u0441\u043f\u043b\u0443\u0430\u0442\u0430\u0446\u0438\u0438 \u041f\u041e (Development Operations, DevOps) \u043f\u0440\u0438\u0432\u0435\u043b\u043e \u043a \u0431\u044b\u0441\u0442\u0440\u043e\u043c\u0443 \u0440\u043e\u0441\u0442\u0443 \u0441\u043f\u0440\u043e\u0441\u0430 \u043d\u0430 CI\/CD-\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b. \u0421\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0435 \u0440\u0435\u0448\u0435\u043d\u0438\u044f \u043f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u043e \u0443\u043b\u0443\u0447\u0448\u0430\u044e\u0442\u0441\u044f, \u0441\u0442\u0440\u0435\u043c\u044f\u0441\u044c \u0438\u0434\u0442\u0438 \u0432 \u043d\u043e\u0433\u0443 \u0441\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043c, \u0432\u044b\u0445\u043e\u0434\u044f\u0442 \u0438\u0445 \u043d\u043e\u0432\u044b\u0435 \u0432\u0435\u0440\u0441\u0438\u0438, \u0432 \u043c\u0438\u0440\u0435 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":96162,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-96161","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.5 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u0438\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043f\u0435\u0445\u0438 \u0432 \u0441\u0444\u0435\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 (Continuous Integration, CI) \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f (Continuous Delivery, CD).\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.5\" \/>\n\t\t<meta property=\"og:locale\" content=\"lv_LV\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0411\u0438\u0442\u0432\u0430 Jenkins \u0438 GitLab CI\/CD | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u0438\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043f\u0435\u0445\u0438 \u0432 \u0441\u0444\u0435\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 (Continuous Integration, CI) \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f (Continuous Delivery, CD).\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-10-08T17:42:48+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-10-08T17:42:48+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Jenkins un GitLab CI\/CD c\u012b\u0146a | ProHoster","description":"P\u0113d\u0113j\u0101 desmitgad\u0113 ir sasniegti iev\u0113rojami pan\u0101kumi nep\u0101rtrauktas integr\u0101cijas (Continuous Integration, CI) un nep\u0101rtrauktas pieg\u0101des (Continuous Delivery, CD) r\u012bku izstr\u0101d\u0113.","canonical_url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"lv_LV","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0411\u0438\u0442\u0432\u0430 Jenkins \u0438 GitLab CI\/CD | ProHoster","og:description":"\u0412 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0435 \u0434\u0435\u0441\u044f\u0442\u0438\u043b\u0435\u0442\u0438\u0435 \u0434\u043e\u0441\u0442\u0438\u0433\u043d\u0443\u0442\u044b \u0437\u043d\u0430\u0447\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0443\u0441\u043f\u0435\u0445\u0438 \u0432 \u0441\u0444\u0435\u0440\u0435 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0439 \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 (Continuous Integration, CI) \u0438 \u043d\u0435\u043f\u0440\u0435\u0440\u044b\u0432\u043d\u043e\u0433\u043e \u0440\u0430\u0437\u0432\u0451\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u044f (Continuous Delivery, CD).","og:url":"https:\/\/prohoster.info\/lv\/blog\/administrirovanie\/bitva-jenkins-i-gitlab-ci-cd","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-10-08T17:42:48+00:00","article:modified_time":"2020-10-08T17:42:48+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"96161","title":null,"description":null,"keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 10:51:00","updated":"2026-08-11 12:50:09","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/96161","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/comments?post=96161"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/posts\/96161\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media\/96162"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/media?parent=96161"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/categories?post=96161"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/lv\/wp-json\/wp\/v2\/tags?post=96161"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}