Git

GitLab Runner un GitLab CI

GitLab Runner un GitLab CI

Kas ir nepārtraukta integrācija (KI)?

Nepārtraukta integrācija ir nākamais loģiskais solis pēc tam, kad versiju vadības sistēma, piemēram, Git, un attālā versiju vadības sistēma, piemēram, GitLab vai GitHub, ir nepieciešama kopīgiem centieniem. Lielo projektu problēma ir šāda - Kad nāk jauni pieprasījumi, tie ir jāpārbauda un pēc tam jāintegrē galvenajā nozarē, un šīs pūles var ilgt no dažām stundām līdz dažām nedēļām atkarībā no projekta lieluma, komandas locekļu atrašanās vieta utt.

Tāpat kā jebkura šāda problēma, loģisks solis ir automatizēt visu testēšanas kļūdu. Mēs to darām, iestatot tādu aktivizētāju, ka ikreiz, kad jaunākas saistības tiek apvienotas filiālē, aģents (piemēram, GitLab Runner) automātiski izveido vidi un kodu, izpilda visus vienības testus un integrācijas testus. Ja rodas kāda kļūda, tas dod brīdinājumu un avārijas ziņojumu, pretējā gadījumā tiek parādīts zaļš signāls, kurā teikts, ka viss darbojas.

Protams, ņemot vērā tā loģisko galu, jūs varat arī pēc tam automatizēt izvietošanu, iestatīt automatizētu A / B testēšanu un pilnībā noņemt cilvēka iejaukšanos no procesa. Atkarībā no automatizācijas līmeņa to sauc par nepārtrauktu piegādi un / vai nepārtrauktu ieviešanu. Bet šajā apmācībā mēs koncentrētos tikai uz nepārtrauktu integrāciju.

Priekšnoteikumi

Mēs koncentrēsimies uz vienkāršas CI plūsmas iestatīšanu apmācībā, izmantojot GitLab gadījumu, izmantojot HTTPS, kuru mēs aplūkojām iepriekšējā ziņojumā.

Turklāt mēs arī pieņemam, ka esat iestatījis lietotāja kontu šajā GitLab instancē un esat to izdarījis krātuve (klonēts uz jūsu vietējās mašīnas) pārvaldīts ar jūsu lietotājvārdu. Tieši šo krātuvi mēs izmantosim, lai parādītu KI darbplūsmu. Apmācībā tā nosaukums būs mans-projekts.

Lai to visu uzskaitītu:

  1. GitLab instance
  2. Tukša krātuve, saukta par manu projektu
  3. Vietējais šīs repozitorija klons
  4. Jūsu vietējā Git instance ir konfigurēta, lai virzītu izmaiņas tālvadības pults.

Vienkāršas lietotnes izveide

Šajā krātuvē izveidosim vienkāršu mezglu.js lietotne. Šī lietotne ir vienkārša Express.js serveris, kas paredzēts izvietošanai Docker konteinerā. Serveris jūsu pārlūkprogrammā dod HTTP lietderīgo slodzi, kurā teikts “Hello World”.

Vietējā repozitorija saknē izveidojiet failu lietotne.js un pievienojiet šādas rindas:

'izmantot stingri';
const express = pieprasīt ('express');
// Konstanti
const PORT = 8080;
const HOST = '0.0.0.0 ';
// Lietotne
const app = express ();
lietotne.get ('/', (req, res) =>
rez.send ('Sveika pasaule \ n');
);
lietotne.klausīties (PORT, HOST);
konsole.žurnāls ('Darbojas vietnē http: // $ HOST: $ PORT');

Pēc tam izveidojiet citu failu iepakojums.json un pievienojiet tai:


"name": "docker_web_app",
"versija": "1.0.0 ",
"apraksts": "Mezgls.js uz Docker ",
"autors": "Džons Doe",
"main": "serveris.js ",
"skripti":
"start": "mezgla serveris.js "
,
"atkarības":
"express": "^ 4.16.1 "

Visbeidzot, izveidojiet a Dockerfile un pievienojiet tam šādu saturu:

NO mezgla: 8
# Izveidot lietotņu direktoriju
WORKDIR / usr / src / app
# Instalējiet lietotņu atkarības
# Lai aizstātu abas pakotnes, tiek izmantota aizstājējzīme.json UN paketes slēdzene.json tiek kopēti
KOPIJAS pakete *.json ./
RUN npm instalēt
# Ja veidojat savu kodu ražošanai
# RUN npm instalēt - tikai = ražošana
# Pakotnes lietotnes avots
KOPIJA…
IEDARBĪBA 8080
CMD ["mezgls", "lietotne"]

Šīs lietotnes izveides process ietver mezglu konteinera izveidi un atkarību (piemēram, Express.js modulis). Šim procesam vajadzētu notikt bez kļūdām. Vienkāršības labad mēs šajā apmācībā neapspriedīsim nevienu testēšanu.

GitLab Runner cauruļvads

Tagad mēs savam krātuvei pievienotu vēl vienu failu, kas tiktu saukts .gitlab-ci.yml . Šajā failā būtu norādījumi par mūsu projekta izveidi. Katru reizi, kad mēs apņemamies iesaistīties mūsu GitLab instancē, GitLab izsauks Runner, lai izveidotu un pārbaudītu projektu.

Mēs šim cauruļvadam piešķiram dažādus darbavietas kas visi var darboties neatkarīgi viens no otra, padarot būvēšanas procesu elastīgāku. Attiecībā uz iepriekš minēto repo tas ir derīgs .gitlab-ci.yml izveidojiet šo failu repozitorija saknē:

attēls: mezgls: jaunākais
posmi:
- būvēt
kešatmiņa:
ceļi:
- mezgla_moduļi /
instalēšanas_atkarības:
posms: būvēt
skripts:
- npm instalēt

Mums ir tikai viens posms būvēt un tas ir tikai npm instalēt kā scenārijs. Šī ir komanda, kas jums būtu manuāli jāizpilda katru reizi, kad jūsu projektā notiek izmaiņas. GitLab skrējējs to izdarītu jūsu vietā. Runner varētu instalēt Kubernetes kopā, VPS mākonī vai vietējā darbstacijā, un, ja tas ir aktīvs, tas gaidīs GitLab servera norādījumus, lai izpildītu būvējumu.

Mēs lokāli instalētu un konfigurētu Runner tā automatizēšanai.

Runner marķiera iegūšana

Atveriet savu krātuvi vietnē GitLab un apmeklējiet tās CD / CI iestatījumus. Tas ir Iestatījumi → CD / CI testa krātuvē.

Atstājiet Auto DevOps iestatījumu uz noklusējumu un noklikšķiniet uz PAPLAŠINĀT lai izvērstu General Pipeline iestatījumus, un jums tiks parādīts Runner Token. Kopējiet tā vērtību un, protams, saglabājiet to privātu, ja novērtējat savu projektu.

Izmantojot šo marķieri, jūsu vietējais GitLab Runner izpildāmā programma varēs droši reģistrēties jūsu GitLab instancē.

GitLab Runner instalēšana

GitLab-Runner ir neliela viegla programma, kas rakstīta Go, un kurā darbojas ar KI saistītas programmas darbavietas vietējā mašīnā un nosūta rezultātus GitLab, lai tā ņemtu vērā izmaiņas. Tas ir viens izpildāms binārs fails, kuru var instalēt jebkurā lielākajā OS. Izpildiet šeit sniegtos norādījumus savai operētājsistēmai. Šīs instalācijas ļoti atšķiras, tāpēc visu to uzskaitīšana nav iespējama.

Alternatīvi jūs varat izmantot Runner kā Docker pakalpojumu, taču paliksim tikai pie tradicionālās instalēšanas, jo komandas lasītājam ir vieglāk lasāmas un saprotamas. Kad esat to instalējis vietējā darbstacijā, jums jāizpilda komanda:

$ gitlab-skrējēju reģistrs

Tas jums uzdos vairākus jautājumus, sākot ar jūsu GitLab-CI koordinatoru, kas būtu jūsu GitLab instance:

$ gitlab-skrējēju reģistrs
Lūdzu, ievadiet gitlab-ci koordinatora URL (piemēram,.g. https: // gitlab.com /):
https: // gitlab.piemērs.com

Pēc tam tā pieprasīs jūsu Runner marķieri, kuru ieguvām iepriekšējā sadaļā:

Lūdzu, ievadiet šī skrējēja gitlab-ci marķieri:

Your_Secret_Token

Tad, lai iegūtu kādu identificējošu aprakstu, jūs varat vienkārši izlaist jebkuru tagu pievienošanu, nospiežot :

Lūdzu, ievadiet šī skrējēja aprakstu gitlab-ci:

[Hostname]: Demonstrācija KI iestatīšanai, izmantojot Runner

Lūdzu, ievadiet šī skrējēja tagus gitlab-ci (atdalot ar komatu):

Reģistrēt skrējēju ... izdevās

Vissvarīgākais ir tas, ka jums tiks lūgts izpildītājs (vairāk par to vienā mirklī), mēs piemēra dēļ izvēlēsimies Docker.

Lūdzu, ievadiet izpildītāju: docker-ssh + machine, kubernetes, parallels, shell, ssh, virtualbox, docker + machine, docker, docker-ssh:

dokeris

Pēc tam ir jānorāda bāzes dokstacijas attēls, kurā notiks būvēšana, mūsu parauga lietotne izmanto mezglu, tāpēc mēs norādīsim mezgla attēlu:

Lūdzu, ievadiet noklusējuma Docker attēlu (piemēram,.g. rubīns: 2.1):

mezgls: jaunākais

Skrējējs ir veiksmīgi reģistrējies. Sāciet to brīvi, bet, ja tas jau darbojas, konfigurācija ir automātiski jāielādē!

Tagad kaut kas, kas šeit ir nedaudz jāpaskaidro, ir tas, kas tieši ir izpildītāji? KI darba plūsma ir tāda, ka moduļu veidošana, to testēšana utt. Ir pazīstama kā darbavietas un izpildītāji veic šos darbus. Ja kā izpildītāju izvēlējāties VirtualBox, tad GitLab skrējējs integrētos ar lokāli instalēto VirtualBox un palaistu CI darbus VM, ja atlasāt kubernetes, tas notiktu jūsu Kubernetes kopā, mākonī, ja atlasāt ssh, varat deleģēt KI uzdevumus uz attālo serveri.

Mūsu paraugprojekta pamatā ir Docker, tāpēc ir lietderīgi izmantot Docker kā mūsu izpildītāju. Jums ir jābūt Dokers ir uzstādīts lokāli priekš šī.

Ja izpildītājiem ir vairākas iespējas, Runner kļūst elastīgāks. Iespējams, vēlēsities veidot lokāli, jo projekta faili ir pārāk lieli vai arī vēlaties tos izpildīt attālā serverī ar 20 kodoliem un pusi terabaitu RAM, jo būvēšanas process ir intensīvs skaitļošanas ziņā, izpildītāja opcijas norādīšana dod jums šo elastību.

Visbeidzot, čaulā vēlaties sākt Runner pakalpojumu:

$ gitlab-runner starts

Redzot .gitlab-ci.yml darbībā

Tagad mēs esam veikuši visas šīs izmaiņas mūsu vietējā repo izveidoja visu lietotni.js, iepakojums.Json, Dockerfile un .gitlab-ci.yml faili. Iespējams, jūs esat veicis izmaiņas vietējā repozitorijā, palaižot:

$ git skatuves faila_nosaukums
$ git saistīt -m “Apņemties ziņojumu”

Spiedīsim izmaiņas mūsu attālajā GitLab.

$ git push -u izcelsme

Pēc tam jūs varat atvērt savu projektu GitLab, dodieties uz mans projekts → Cauruļvads un jūs redzēsiet šo atzīmi, kas blakus izpildītajai saistībai saka “nokārtots”. Turpmākajām saistībām būs arī tagi.

Tātad tie ir CI pamati, izmantojot GitLab un Runner. Ceru, ka jums patika ieraksts un no tā uzzinājāt kaut ko jaunu.

Peles kreisā klikšķa poga nedarbojas operētājsistēmā Windows 10
Ja ar klēpjdatoru vai galddatoru izmantojat īpašu peli, bet nedarbojas peles kreisās klikšķa poga kādu iemeslu dēļ operētājsistēmā Windows 10/8/7 šeit...
Rakstot Windows 10, kursors lec vai pārvietojas nejauši
Ja atklājat, ka peles kursors automātiski, nejauši lec vai pārvietojas pats, rakstot Windows klēpjdatorā vai datorā, daži no šiem ieteikumiem var palī...
Kā mainīt peles un skārienpaliktņu ritināšanas virzienu operētājsistēmā Windows 10
Pele un SkārienpaliktnisTas ne tikai padara skaitļošanu vienkāršu, bet arī efektīvāku un mazāk laikietilpīgu. Mēs nevaram iedomāties dzīvi bez šīm ier...