Git

GitLab Runner ja GitLab CI

GitLab Runner ja GitLab CI

Mis on pidev integreerimine (CI)?

Pidev integreerimine on järgmine loogiline samm pärast seda, kui koostööl on versioonihaldussüsteem nagu Git ja kaugversioonisüsteem nagu GitLab või GitHub. Suurte projektide probleem seisneb selles - uute tulude taotluste saabumisel tuleb need testida ja seejärel integreerida peaharusse ning see pingutus võib sõltuvalt projekti suurusest kesta mõnest tunnist kuni mõne nädalani. meeskonnaliikmete asukoht jne.

Nagu iga selline probleem, on ka loogiline samm kogu testimise vigade automatiseerimine. Teeme nii, et seadistame päästiku, nii et kui uuemad kohustused liidetakse harusse, ehitab agent (näiteks GitLab Runner) keskkonna ja koodi automaatselt, käivitab kõik ühikutestid ja integratsioonitestid. Kui ilmneb mõni viga, annab see hoiatuse ja krahhiaruande, vastasel juhul saate rohelise signaali, mis ütleb, et kõik töötab.

Muidugi, võttes arvesse selle loogilist äärmust, saate ka automatiseerida juurutamise, seadistada automaatse A / B testimise ja tervikuna eemaldada inimese sekkumise protsessist. Seda nimetatakse pidevaks edastamiseks ja / või pidevaks juurutamiseks sõltuvalt automatiseerimise tasemest. Kuid me keskenduksime selles õpetuses lihtsalt pidevale integreerimisele.

Eeldused

Keskendume õpetuses lihtsa CI-voo seadistamisele, kasutades HTTPS-i kaudu GitLabi eksemplari, mida käsitlesime eelmises postituses.

Lisaks eeldame, et olete selles GitLabi eksemplaris seadistanud kasutajakonto ja olete seda teinud hoidla (kloonitud teie kohalikku masinasse), mida hallatakse teie kasutajanime all. Just seda hoidlat kasutame CI töövoo demonstreerimiseks. Õpetuses saab selle nimi olema minu-projekt.

Selle kõige loetlemiseks tehke järgmist

  1. GitLabi eksemplar
  2. Tühi hoidla, mida nimetatakse minu projektiks
  3. Selle hoidla kohalik kloon
  4. Teie kohalik Giti eksemplar on konfigureeritud muudatuste sisestamiseks kaugjuhtimispult.

Lihtsa rakenduse loomine

Loome selles hoidlas lihtsa sõlme.js rakendus. See rakendus on lihtne Express.js server, mis on ette nähtud Dockeri konteinerisse paigutamiseks. Server annab teie brauseris HTTP kasuliku koormuse, mis ütleb „Tere maailm”.

Looge kohaliku repositooriumi juur fail rakendus.js ja lisage järgmised read:

"kasuta rangelt";
const väljendada = nõuda ('väljendada');
// Konstandid
const PORT = 8080;
const HOST = '0.0.0.0 ';
// Rakendus
const rakendus = ekspress ();
rakendus.saada ('/', (req, res) =>
res.send ('Tere maailm \ n');
);
rakendus.kuulama (PORT, HOST);
konsool.log ('Töötab aadressil http: // $ HOST: $ PORT');

Seejärel looge teine ​​fail pakend.json ja lisage sellele järgmine:


"name": "docker_web_app",
"versioon": "1.0.0 ",
"description": "Sõlm.js Dockeris ",
"autor": "John Doe",
"main": "server.js ",
"skriptid":
"start": "sõlmeserver.js "
,
"sõltuvused":
"express": "^ 4.16.1 "

Lõpuks looge a Dockerfile ja lisage sellele järgmine sisu:

FROM sõlmest: 8
# Loo rakenduste kataloog
WORKDIR / usr / src / rakendus
# Installige rakenduse sõltuvused
# Mõlema pakendi tagamiseks kasutatakse metamärke.json JA pakett-lukk.json kopeeritakse
Kopeeri pakett *.json ./
RUN npm install
# Kui loote oma koodi tootmiseks
# RUN npm install - ainult = tootmine
# Rakenduse allika kimp
KOOPIA ..
KOKKUPUUDE 8080
CMD ["sõlm", "rakendus"]

Selle rakenduse loomisprotsess hõlmaks sõlmekonteineri loomist ja sõltuvuste installimist (nt Express.js moodul). See protsess peaks toimuma ilma vigadeta. Lihtsuse huvides ei hakka me selles õpetuses ühtegi katsetamist arutama.

GitLabi jooksja torujuhe

Nüüd lisame oma hoidlasse veel ühe faili, mida kutsutakse .gitlab-ci.yml . See fail sisaldaks juhiseid meie projekti koostamiseks. Iga kord, kui me pühendame oma GitLabi eksemplari, kutsub GitLab projekti ülesehitamiseks ja testimiseks jooksja.

Määrame selle torujuhtme mitmesuguseks töökohti mis võivad töötada kõik üksteisest sõltumatult, muutes koostamisprotsessi paindlikumaks. Ülaltoodud repo puhul on see kehtiv .gitlab-ci.yml looge see fail hoidla juure:

pilt: sõlm: viimane
etapid:
- ehitama
vahemälu:
teed:
- sõlme_moodulid /
install_dependencies:
etapp: ehitada
skript:
- npm install

Meil on ainult üks etapp ehitama ja see on just npm install stsenaariumina. See on käsk, mida peate käsitsi käivitama iga kord, kui teie projekti muudetakse. GitLabi jooksja teeks selle teie eest. Runneri võib installida Kubernetese klastrisse, VPS-i pilves või teie kohalikku tööjaama ja kui see on aktiivne, ootab see ehitise käivitamiseks GitLabi serverilt juhiseid.

Installime ja konfigureerime jooksja kohapeal selle automatiseerimiseks.

Jooksja märgi hankimine

Avage oma hoidla GitLabis ja külastage selle CD / CI seadeid. See on Seaded → CD / CI oma katsehoidla sees.

Jätke seade Auto DevOps oma vaikeväärtusele ja klõpsake nuppu Laienda Üldiste torujuhtme sätete laiendamiseks kuvatakse teile jooksja märk. Kopeerige selle väärtus ja loomulikult hoidke seda privaatsena, kui hindate oma projekti.

Selle loa abil saab teie kohalik GitLab Runneri käivitatav fail turvaliselt teie GitLabi eksemplaris registreerida.

GitLab Runneri installimine

GitLab-Runner on Go-s kirjutatud väike kerge programm, mis töötab CI-ga seotud töökohti ja saadab tulemused GitLabile, et see muudatustega arvestaks. See on üks käivitatav binaarkaabel, mida saab installida mis tahes suuremasse operatsioonisüsteemi. Järgige siin oma konkreetse operatsioonisüsteemi juhiseid. Need installatsioonid erinevad tohutult, nii et nende kõigi loetlemine on teostamatu.

Teise võimalusena võite kasutada Runnerit Dockeri teenusena, kuid jääme ainult traditsioonilise installi juurde, sest käsud on lugeja jaoks lihtsamini loetavad ja arusaadavad. Kui olete selle oma kohalikku tööjaama installinud, peate käsu täitma:

$ gitlab-jooksjate register

See esitab teile mitu küsimust, alustades teie GitLab-CI koordinaatorist, mis oleks teie GitLabi eksemplar:

$ gitlab-jooksjate register
Sisestage gitlab-ci koordinaatori URL (nt.g. https: // gitlab.com /):
https: // gitlab.näide.com

Seejärel küsitakse teie jooksja märki, mille hankisime eelmises jaotises:

Sisestage selle jooksja jaoks gitlab-ci märk:

Your_Secret_Token

Seejärel saate mõne identifitseeriva kirjelduse jaoks lihtsalt mõne sildi lisamise vahele jätta :

Sisestage selle jooksja kirjeldus gitlab-ci:

[Hostname]: demo CI seadistamiseks Runneri abil

Sisestage selle jooksja gitlab-ci sildid (eraldage komaga):

Jooksja registreerimine ... õnnestus

Kõige tähtsam on see, et see küsib teilt testamenditäitjat (täpsemalt selle kohta hetkega), valime Dockeri oma näite huvides.

Sisestage testamenditäitja: docker-ssh + machine, kubernetes, paralleelid, shell, ssh, virtualbox, docker + machine, docker, docker-ssh:

dokk

Seejärel tuleb täpsustada baasdokeri pilt, milles ehitamine toimub, meie näidisrakendus kasutab sõlme, nii et me määrame sõlmpildi:

Sisestage Dockeri vaikepilt (nt.g. rubiin: 2.1):

sõlm: viimane

Jooksja registreerus edukalt. Alustage julgelt, kuid kui see juba töötab, tuleks konfiguratsioon automaatselt uuesti laadida!

Nüüd on siin vaja natuke selgitada, mis täpselt on täideviijad? CI töö sujub nii, et moodulite ehitamine, nende testimine jne on tuntud kui töökohti ja täitjad täidavad neid töid. Kui valisite täituriks VirtualBoxi, integreeruks GitLabi jooksja kohalikult installitud VirtualBoxiga ja käivitaks CI-tööd VM-is. Kui valite kubernetese, siis see juhtuks teie Kubernetese klastris, pilves, kui valite ssh, saate delegeerige CI ülesanded kaugserverisse.

Meie näidisprojekt põhineb Dockeril, seega on mõttekas kasutada Dockerit oma täitjana. Sul peab olema Docker on installitud kohapeal selle jaoks.

Mitmete võimaluste olemasolu täitjatele muudab Runneri paindlikumaks. Võib-olla soovite ehitada kohapeal, kuna projekti failid on liiga suured või soovite käivitada kaugserveris, kus on 20 südamikku ja pool terabaiti RAM-i, kuna koostamisprotsess on arvutuslikult intensiivne, täituri suvandi määramine annab teile selle paindlikkuse.

Lõpuks soovite oma kestas käivitada Runneri teenuse:

$ gitlab-runner start

Nägemine .gitlab-ci.yml tegevuses

Nüüd oleme kõik need muudatused teinud meie kohalikus repos, mis on kogu rakenduse loonud.js, pakk.json, Dockerfile ja .gitlab-ci.yml-failid. Eeldatavasti tegite muudatused oma kohalikus hoidlas, käivitades:

$ git etapi failinimi
$ git pühendama -m "Kohustuse sõnum"

Lükkame muudatused kaugsüsteemi GitLab.

$ git push -u päritolu

Seejärel saate oma projekti GitLabis avada, minge aadressile minu projekt → Torujuhe ja näete seda oma tehtud kohustuse kõrval silti, mis ütleb "möödunud". Järgnevatel kohustustel on ka sildid.

Nii et see on CI põhitõed GitLabi ja Runneri kasutamisel. Loodetavasti teile meeldis postitus ja õppis sellest midagi uut.

Hiire vasakklõps nupp ei tööta Windows 10-s
Kui kasutate oma sülearvuti või lauaarvutiga spetsiaalset hiirt, kuid hiire vasakklõps nupp ei tööta mingil põhjusel operatsioonisüsteemis Windows 10/...
Kursor hüppab või liigub juhuslikult Windows 10-s kirjutamise ajal
Kui leiate, et hiire kursor hüppab või liigub Windowsi sülearvutisse või arvutisse kirjutades automaatselt, juhuslikult, võivad mõned neist soovituste...
Kuidas muuta hiire ja puuteplaatide kerimise suund Windows 10-s ümber
Hiir ja PuuteplaatNeed muudavad arvutamise mitte ainult lihtsaks, vaid ka tõhusamaks ja vähem aeganõudvaks. Me ei kujuta ette elu ilma nende seadmetet...