Webhook-ga GitHub ma gaaro Jenkins gaar ah: hagaaji waddada
Fadhi VPN oo kombuyuutarkaaga ku yaal ma siiso GitHub waddo loo maro Jenkins. Isbarbar dhig barta soo-galka, gudbinta iyo baaritaanka, ka dibna tijaabi waddada ay dhacdooyinku maraan.
Waad furan kartaa Jenkins adigoo isticmaalaya VPN oo weli arag GitHub oo soo sheegaya webhook guuldareystay, sababtoo ah kuwani waa laba xiriir oo kala duwan oo leh laba milkiile oo kala duwan. Browserku wuxuu maraa tunnel uu kombuyuutarkaagu wada hadlay; adeegga gudbinta GitHub wuxuu ka bilaabmaa internetka guud oo ma laha waddo galay shabakadda gaarka ah. Helitaanka keydka ma beddelo taas, in kasta oo Jenkins laftiisu si fudud uga soo qaadan karo isla keydkaas. Dooro barta soo-galka, gudbin ama baaritaan, ka dibna tijaabi waddada ay dhacdadu dhab ahaan marto.
Fadhiga browserku wuxuu caddeeyaa hal jiho oo keliya
Xiriirka VPN wuxuu ka jawaabaa hal su'aal: miyuu kombuyuutarkani gaari karaa martigeliyaha gudaha. Gudbinta webhook waxay weyddiisaa wax kale: miyay adeeg dibadeed furan kartaa xiriir ku socda martigeliyahaas. In Jenkins keydka ka soo qaato waa taraafik baxa oo wax kama sheegto helitaanka soo-galka. Labada jiho ku hay khadadka gooni ah jaantuskaaga, oo ay ku jirto dhinac kee biliyo mid kasta.
Akhri diiwaanka gudbinta ka hor intaadan wax beddelin. Waqti dhammaad, dib u habeyn xiriir iyo codsi la aqbalay oo aan la jaanqaadin shaqo waxay leeyihiin saddex milkiile oo kala duwan: shabakad, boroksee iyo habaynta kicinta.
Doorasho A: fur barta dhammaadka cidhiidhi ah
Haddii ururku horey u daabacay soo-gal la ansixiyay, fur waddada webhook halkii shaxda. Caadi ahaan taas macneheedu waa qaanuun boroksee rogan ah oo aqbala POST-ka URL-ka qabata oo u gudbiya Jenkins, halka muuqaalka maamulku dibadda ka gaari karin.
curl -sS -o /dev/null -w "%{http_code}\n" -X POST https://jenkins.example.com/github-webhook/Tijaabadaas ka samee shabakad aan lahayn gelitaan VPN, sababtoo ah guusha tunnelka gudaha kama caddayso wax. Barta dhammaadku waa inay diiddo codsiyada aan lahayn sirta la wadaago, oo GitHub u soo diraa sida cinwaanka saxeexa, oo waa inay aqbasho kaliya waddada iyo habka keliya ee aad daabacday. Konsolka Jenkins ee guud ma aha xalka webhook; waa dhacdo sugaysa baare kale. Qaanuunka ku xaddid si adag si appka intiisa kale u ilaaliyo kontoroolka gelitaanka uu horey u lahaa.
Doorasho B: u rog jiho gudbin
Halka soo-bandhigista soo-galka aan la ansixin doonin, macmiil yar oo shabakadda gudaha ku jira wuxuu hayn karaa xiriir baxa oo u socda gudbin oo qaadan karaa dhacdooyinka la gudbiyay. Gudbintu markaas waxay noqotaa qayb ka mid ah waddada gudbinta, sidaas darteed helitaankeeda iyo xaqiijinteedu waxay la mid yihiin shaqada dhismaha.
ssh -N -R 9000:localhost:8080 relay.example.netHanuunka Jenkins ee ku saabsan webhook-yada gadaashiisa dab-damiska wuxuu qeexayaa qaabkan, waana mudan in la akhriyo ka hor intaadan qorin gudbiye gaar ah. Ku dhammee TLS gudbinta, xaqiiji saxeexa ka hor inta dhacdadu gaarto shaqada, oo la soco xiriirka baxa, sababtoo ah tunnel dhacay wuxuu u eg yahay si sax ah dhacdo aan waligeed la dirin. Sidoo kale xaqiiji in gudbintu ilaaliso jirka codsiga bayt bayt, sababtoo ah hubinta saxeexa waxay ku guuldareysataa JSON la falanqeeyay oo dib loo codeeyay jidka.
Doorasho C: baar keydka halkii
Baaritaanku wuxuu waqti-dhaqaaqa ku beddelaa fudnaan oo uma baahna waddo soo-gal ah. Jenkins wuxuu baari karaa jadwal ahaan, ama shaqo yar ayaa weyddiin kartaa API oo bilaabi kartaa dhismo marka ay aragto dib-u-eegis aan la aqoon.
curl -sS -u "$USER:$TOKEN" "https://api.github.com/repos/OWNER/REPO/commits?per_page=1"Baaritaan kastaa wuxuu ku bixiyaa wicitaannada API oo wuxuu ku darayaa dib u dhac u dhexeeya push iyo dhismo, taas oo ka muuqata keydka mashquulka ah iyo xadka xawaaraha la wadaago. Waxay sidoo kale u baahan tahay aqoonsi lagu kaydiyay meel kasta oo baarehu ka shaqeeyo, sidaas darteed ku xaddid token-ka gelitaanka akhriska oo keliya ee keydka oo u rog sida sir kasta oo kale. Tan dooro marka tirada dhacdooyinku hooseyso ama marka aan soo-gal waligiis la ansixin doonin, oo ku sheeg sharraxaadda shaqada si qofna mar dambe u la yaabin sababta dhismayaashu uga dib dhacaan.
Aqbal gudbin dhab ah, ma aha soo-dejinta bogga
Doorasho kasta oo aad dooratay, tijaabada aqbalaaddu waa dhacdo ay soo dirtay madalada isha, ma aha tab browser laga furay kombuyuutar mudnaan leh. Riix commit madhan oo u tag laan qoraal ah oo akhri koodhka jawaabta gudbinta, diiwaanka gudbinta ama soo-saarka shaqada baaritaanka, isla nidaamkaas. 200 oo ka timid barta dhammaadka oo aan dhismo lahayn waxay ka dhigan tahay in shaandhada kicintu khaldan tahay; waqti dhammaad waxay ka dhigan tahay in waddadu weli xiran tahay. Qor mid ka mid ah saddexda naqshad ee la isticmaalayo, haddii kale qofka xiga ee debug-gaynaya wuxuu ku celin doonaa tijaabada browser-ka oo wuxuu gaari doonaa isla dariiqa xiran.
Istiqmaal isla sababayntaas dib-u-celinta lacag-bixinta iyo ogeysiisyada kale ee dibadda: mid kastaa wuxuu u baahan yahay waddadiisa u gaar ah ee ku galaya appka gaarka ah, xitaa marka qof kastaa horey u haysto fadhi VPN. Waddada gudbintu waxay ka tirsan tahay naqshadda appka, ma aha qoraal hoose oo ku saabsan shabakadaha.