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
- GitLabi eksemplar
- Tühi hoidla, mida nimetatakse minu projektiks
- Selle hoidla kohalik kloon
- 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: viimaneetapid:
- 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 registerSee esitab teile mitu küsimust, alustades teie GitLab-CI koordinaatorist, mis oleks teie GitLabi eksemplar:
$ gitlab-jooksjate registerSisestage 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_TokenSeejä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 abilSisestage selle jooksja gitlab-ci sildid (eraldage komaga):
Jooksja registreerimine ... õnnestusKõ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:
dokkSeejä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: viimaneJooksja 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 startNä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äritoluSeejä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.