Git

„GitLab Runner“ ir „GitLab CI“

„GitLab Runner“ ir „GitLab CI“

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ą:

  1. „GitLab“ egzempliorius
  2. Tuščia saugykla, vadinama mano projektu
  3. Vietinis šios kapinyno klonas
  4. 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: naujausias
etapai:
- 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ų registracija

Jums 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_Token

Tada 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ą ... pavyko

Svarbiausia, 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:

dokininkas

Tada 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: naujausias

Bė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 startas

Matydamas .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.

10 geriausių žaidimų, kuriuos reikia žaisti naudojant „Ubuntu“
„Windows“ platforma buvo viena iš dominuojančių žaidimų platformų dėl didžiulio procento žaidimų, kurie šiandien kuriami natūraliai palaikant „Windows...
5 geriausi „Arcade“ žaidimai, skirti „Linux“
Šiais laikais kompiuteriai yra rimta mašina, naudojama žaidimams. Jei negalėsite gauti naujo aukšto rezultato, žinosite, ką noriu pasakyti. Šiame įraš...
Mūšis už Wesnothą 1.13.6 Išleista plėtra
Mūšis už Wesnothą 1.13.6 išleistas praėjusį mėnesį, yra šeštasis 1 versijos kūrimo leidimas.13.„x“ serija ir ji teikia daug patobulinimų, ypač vartoto...