Kas yra nuolatinė integracija (PI)?
Nuolatinė integracija yra kitas logiškas žingsnis po to, kai turi versijų valdymo sistemą, pvz., „Git“, ir nuotolinę versijų valdymo sistemą, pvz., „GitLab“ ar „GitHub“, skirtą bendradarbiauti. Didelių projektų problema yra tokia: kai ateina nauji prašymai, juos reikia išbandyti ir integruoti į pagrindinį padalinį, ir šios pastangos gali lengvai užtrukti nuo kelių valandų iki kelių savaičių, priklausomai nuo projekto dydžio, komandos narių buvimo vieta ir kt.
Kaip ir bet kuri tokia problema, logiškas žingsnis yra automatizuoti visą testavimo klaidą. Mes tai darome nustatydami aktyviklį, kad kiekvieną kartą, kai naujesni įsipareigojimai sujungiami į filialą, agentas (pvz., „GitLab Runner“) automatiškai sukuria aplinką ir kodą, vykdo visus vieneto testus ir integravimo testus. Jei yra kokių nors klaidų, tai pateikia įspėjimą ir avarijos ataskaitą, kitaip gausite žalią signalą, sakantį, kad viskas veikia.
Žinoma, atsižvelgiant į loginį kraštutinumą, jūs taip pat galite automatizuoti diegimą, nustatyti automatinį A / B testavimą ir visiškai pašalinti žmogaus įsikišimą iš proceso. Tai vadinama nuolatiniu pristatymu ir (arba) nuolatiniu diegimu, atsižvelgiant į automatikos lygį. Bet šioje instrukcijoje mes sutelktume dėmesį į nuolatinę integraciją.
Būtinos sąlygos
Mes sutelksime dėmesį į paprasto KI srauto nustatymą pamokoje, naudodami „GitLab“ egzempliorių per HTTPS, kurį aptarėme ankstesniame įraše.
Be to, mes darome prielaidą, kad sukūrėte vartotojo abonementą šiame „GitLab“ egzemplioriuje ir turite saugykla (klonuota jūsų vietinėje mašinoje), valdoma jūsų vartotojo vardu. Būtent šią saugyklą naudosime demonstruodami KI darbo eigą. Pamokoje bus jo pavadinimas Mano projektas.
Norėdami išvardinti viską:
- „GitLab“ egzempliorius
- Tuščia saugykla, vadinama mano projektu
- Vietinis šios kapinyno klonas
- Jūsų vietinis „Git“ egzempliorius sukonfigūruotas perkelti pakeitimus Nuotolinis.
Paprastos programos kūrimas
Šioje saugykloje sukurkime paprastą mazgą.js programa. Ši programa yra paprastas „Express“.js serveris, skirtas dislokuoti „Docker“ konteineryje. Jūsų naršyklėje serveris pateikia HTTP naudingąją apkrovą sakydamas „Hello World“.
Vietinės saugyklos šaknyje sukurkite failą programa.js ir pridėkite šias eilutes:
„naudoti griežtai“;const express = reikalauti ('express');
// Konstantos
const Uostas = 8080;
const HOST = '0.0.0.0 ';
// Programa
const programa = express ();
programa.gauti ('/', (req, res) =>
res.siųsti ('Sveikas pasaulis \ n');
);
programa.klausytis (PORT, HOST);
konsolė.žurnalas ('Vykdoma http: // $ HOST: $ PORT');
Tada sukurkite kitą failą pakuotė.Json ir prie jo pridėkite:
"name": "docker_web_app",
"versija": "1.0.0 ",
"description": "Mazgas.js on Docker ",
"autorius": "John Doe",
"main": "serveris.js ",
„scenarijai“:
"start": "mazgo serveris.js "
,
„priklausomybės“:
„express“: „^ 4.16.1 "
Galiausiai sukurkite a Dockerfile ir pridėkite šį turinį:
IŠ mazgo: 8# Sukurkite programų katalogą
WORKDIR / usr / src / programa
# Įdiekite programų priklausomybes
# Pakaitai naudojami norint užtikrinti abu paketus.JSON IR paketo užraktas.json yra nukopijuoti
KOPIJOS paketas *.Json ./
RUN npm įdiegti
# Jei kuriate savo kodą gamybai
# RUN npm install - tik = produkcija
# Programų šaltinio paketas
KOPIJA ..
POVEIKIS 8080
CMD [„mazgas“, „programa“]
Šios programos kūrimo procesas apimtų mazgo sudėtinio rodinio sukūrimą ir priklausomybių (pvz., „Express“) diegimą.js modulis). Šis procesas turėtų vykti be klaidų. Paprastumo sumetimais šioje instrukcijoje nenagrinėsime jokių bandymų.
„GitLab Runner“ dujotiekis
Dabar mes pridėtume dar vieną failą į savo saugyklą, kuris būtų vadinamas .gitlab-ci.yml . Šiame faile būtų instrukcijos, kaip sukurti mūsų projektą. Dabar, kai tik prisiimsime įsipareigojimą savo „GitLab“ egzemplioriui, „GitLab“ sukvies Runner projektą ir išbandys projektą.
Šiam vamzdynui priskiriame įvairius darbo vietų kurie gali veikti visi nepriklausomai vienas nuo kito, todėl kūrimo procesas yra lankstesnis. Pirmiau nurodytam atpirkimui tai galioja .gitlab-ci.yml sukurkite šį failą savo saugyklos šaknyje:
vaizdas: mazgas: naujausiasetapai:
- statyti
talpykla:
keliai:
- mazgo_moduliai /
install_dependencies:
etapas: statyti
scenarijus:
- npm įdiegti
Mes turime tik vieną etapą statyti ir jis ką tik npm įdiegti kaip scenarijus. Tai komanda, kurią turėtumėte rankiniu būdu paleisti kiekvieną kartą, kai pasikeis jūsų projektas. „GitLab“ bėgikas tai padarytų už jus. „Runner“ gali būti įdiegta „Kubernetes“ sankaupoje, VPS debesyje arba jūsų vietinėje darbo vietoje, ir jei ji aktyvi, ji lauks „GitLab“ serverio nurodymų, kad būtų vykdoma versija.
„Runner“ įdiegtume ir sukonfigūruotume vietoje, kad jį automatizuotume.
Kaip gauti bėgiko ženklą
Atidarykite savo saugyklą „GitLab“ ir apsilankykite jos CD / CI nustatymuose. Tai Nustatymai → CD / CI bandymų saugykloje.
Palikite Auto DevOps nustatymą į numatytąjį ir spustelėkite IŠPLĖSTI norėdami išplėsti „General Pipeline“ nustatymus ir jums bus parodytas „Runner Token“. Nukopijuokite jo vertę ir, žinoma, palikite ją privačią, jei vertinate savo projektą.
Naudodamas šį prieigos raktą, jūsų vietinis „GitLab Runner“ vykdomasis failas galės saugiai užsiregistruoti jūsų „GitLab“ egzemplioriuje.
„GitLab Runner“ diegimas
„GitLab-Runner“ yra nedidelė „Go“ parašyta lengva programa, vykdanti su KI susijusias programas darbo vietų vietiniame kompiuteryje ir siunčia rezultatus „GitLab“, kad ji apsvarstytų pakeitimus. Tai yra vienas vykdomasis dvejetainis failas, kurį galima įdiegti bet kurioje pagrindinėje OS. Vykdykite čia nurodytas operacinės sistemos instrukcijas. Šie įrenginiai labai skiriasi, todėl neįmanoma jų visų išvardyti.
Arba galite naudoti „Runner“ kaip „Docker“ paslaugą, tačiau tiesiog laikykimės tradicinio diegimo, nes komandas skaitytojui lengviau skaityti ir suprasti. Įdiegę jį vietinėje darbo vietoje, turite atlikti komandą:
$ gitlab-bėgikų registracijaJums bus užduoti keli klausimai, pradedant jūsų „GitLab-CI“ koordinatoriumi, kuris būtų jūsų „GitLab“ egzempliorius:
$ gitlab-bėgikų registracijaĮveskite „gitlab-ci“ koordinatoriaus URL (pvz.,.g. https: // gitlab.com /):
https: // gitlab.pavyzdys.com
Tada ji paprašys jūsų „Runner“ žetono, kurį gavome ankstesniame skyriuje:
Įveskite šio bėgiko gitlab-ci prieigos raktą:
Jūsų_Slaptis_TokenTada rasite tam tikrą identifikavimo aprašą ir galite tiesiog praleisti pridedant bet kokias žymas spustelėdami
Įveskite šio bėgiko „gitlab-ci“ aprašymą:
[Pagrindinio kompiuterio pavadinimas]: Demonstruoti, kaip nustatyti KI naudojant „Runner“Įveskite šio bėgiko gitlab-ci žymas (atskirtus kableliais):
Užregistruoti bėgiką ... pavykoSvarbiausia, kad jūsų paprašys vykdytojo (daugiau apie tai akimirksniu), mes pasirinksime „Docker“ dėl savo pavyzdžio.
Įveskite vykdytoją: docker-ssh + machine, kubernetes, paralels, shell, ssh, virtualbox, docker + machine, docker, docker-ssh:
dokininkasTada reikia nurodyti „Base Docker“ vaizdą, kuriame būtų kuriama, mūsų pavyzdinėje programoje naudojamas mazgas, todėl mes nurodysime mazgo vaizdą:
Įveskite numatytąjį „Docker“ vaizdą (pvz.,.g. rubinas: 2.1):
mazgas: naujausiasBėgikas sėkmingai užsiregistravo. Nedvejodami paleiskite jį, bet jei jis jau veikia, konfigūracija turėtų būti automatiškai įkelta!
Dabar reikia šiek tiek paaiškinti tai, kas yra vykdytojai? KI darbas vyksta taip, kad modulių kūrimas, jų testavimas ir kt. Yra žinomi kaip darbo vietų o vykdytojai atlieka tuos darbus. Jei vykdytoju pasirinkote „VirtualBox“, tada „GitLab“ bėgikas integruosis su vietoje įdiegta „VirtualBox“ ir vykdys CI užduotis VM, jei pasirinksite „kubernetes“, tai nutiks jūsų „Kubernetes“ grupėje, debesyje, jei pasirinksite ssh, galite perduoti BP užduotis nuotoliniam serveriui.
Mūsų pavyzdinis projektas yra pagrįstas „Docker“, todėl tikslinga naudoti „Docker“ kaip vykdytoją. Jūs turite turėti „Docker“ įrengtas vietoje už tai.
Turėdamas keletą galimybių vykdytojams, „Runner“ tampa lankstesnis. Galbūt norėsite kurti vietoje, nes projekto failai yra per dideli, arba galite vykdyti nuotoliniame serveryje, kuriame yra 20 branduolių ir pusė terabaitų RAM, nes kūrimo procesas yra intensyvus skaičiavimais, nurodant vykdytojo parinktį, jūs galite tai padaryti.
Galiausiai savo apvalkale norėtumėte paleisti „Runner“ paslaugą:
$ gitlab-runner startasMatydamas .gitlab-ci.yml
Dabar mes atlikome visus šiuos pakeitimus savo vietiniame atpirkimo sandėlyje, sukūrėme visą programą.js, paketas.Json, Dockerfile ir .gitlab-ci.yml failai. Tikriausiai atlikote pakeitimus savo vietinėje saugykloje vykdydami:
$ git scenos failo_vardas$ git įsipareigoti -m „Įvykdyti pranešimą“
Paspauskite „Remote GitLab“ pakeitimus.
$ git push -u kilmėTada galite atidaryti savo projektą „GitLab“, eikite į mano projektas → Vamzdynas ir pamatysite tai žymą, kurioje sakoma „išlaikyta“ šalia jūsų atlikto įsipareigojimo. Vėlesni įsipareigojimai taip pat turės žymes.
Taigi tai yra pagrindiniai KI, naudojant „GitLab“ ir „Runner“. Tikiuosi, kad jums patiko įrašas ir sužinojote iš jo kažką naujo.