Git

GitLab Runner a GitLab CI

GitLab Runner a GitLab CI

Čo je kontinuálna integrácia (CI)?

Kontinuálna integrácia je ďalším logickým krokom po zavedení systému riadenia verzií ako Git a vzdialeného systému riadenia verzií ako GitLab alebo GitHub pre spoločné úsilie. Problém, ktorému veľké projekty čelia, je tento - Keď prídu nové požiadavky na stiahnutie, je potrebné ich otestovať a potom integrovať do hlavnej pobočky. Toto úsilie môže v závislosti od veľkosti projektu ľahko trvať od niekoľkých hodín do niekoľkých týždňov, umiestnenie členov tímu atď.

Ako každý iný takýto problém, logickým krokom je automatizácia celej postupnosti testovania. Robíme to tak, že nastavíme spúšťač tak, že vždy, keď sa novšie potvrdenia zlúčia do pobočky, agent (napríklad GitLab Runner) automaticky vytvorí prostredie a kód, spustí proti nemu všetky jednotkové testy a integračné testy. Ak sa vyskytne chyba, zobrazí varovanie a správu o zlyhaní, inak dostanete zelený signál, že všetko funguje.

Samozrejme, do logického extrému môžete tiež automatizovať nasadenie, nastaviť automatické testovanie A / B a úplne odstrániť ľudský zásah z procesu. Toto sa označuje ako nepretržité dodávanie a / alebo nepretržité nasadenie v závislosti od úrovne automatizácie. V tomto výučbe by sme sa ale zamerali iba na kontinuálnu integráciu.

Predpoklady

Zameriame sa na nastavenie jednoduchého toku CI v tutoriále pomocou inštancie GitLab cez HTTPS, ktorej sme sa venovali v predchádzajúcom príspevku.

Ďalej tiež predpokladáme, že ste si vytvorili používateľský účet v tejto inštancii GitLab a máte úložisko (klonovaný na vašom lokálnom počítači) spravovaný pod vašim používateľským menom. Je to toto úložisko, ktoré budeme používať na demonštráciu pracovného toku CI. V návode bude jeho názov môj projekt.

Zoznam všetkých položiek:

  1. Inštancia GitLab
  2. Prázdne úložisko s názvom my-project
  3. Lokálny klon tohto úložiska
  4. Vaša lokálna inštancia Git je nakonfigurovaná na odosielanie zmien do diaľkový.

Vytvára sa jednoduchá aplikácia

V tomto úložisku vytvorme jednoduchý Uzol.aplikácia js. Táto aplikácia je jednoduchý Express.server js, ktorý je určený na nasadenie v kontajneri Docker. Server vo vašom prehliadači zobrazí užitočné zaťaženie HTTP s nápisom „Hello World“.

V koreňovom adresári miestneho úložiska vytvorte súbor aplikácia.js a pridajte nasledujúce riadky:

„používať prísne“;
const express = require ('express');
// Konštanty
const PORT = 8080;
const HOST = '0.0.0.0 ';
// App
const app = express ();
aplikácia.get ('/', (požiadavka, res) =>
res.send ('Hello world \ n');
);
aplikácia.počúvať (PORT, HOST);
konzola.log ('Beží na http: // $ HOST: $ PORT');

Potom vytvorte ďalší súbor balíček.json a pridajte doň toto:


"name": "docker_web_app",
"verzia": "1.0.0 ",
"description": "Uzol.js na Docker “,
"author": "John Doe",
"main": "server.js ",
"skripty":
"start": "uzlový server.js "
,
"závislosti":
"express": "^ 4.16.1 "

Nakoniec vytvorte a Dockerfile a pridajte do nej nasledujúci obsah:

Z FROM uzla: 8
# Vytvorte adresár aplikácie
WORKDIR / usr / src / app
# Nainštalujte si závislosti aplikácií
# Na zabezpečenie oboch balíkov sa používa zástupný znak.json A balíček-lock.json sú skopírované
COPY balíček *.json ./
SPUSTIŤ inštaláciu za minútu
# Ak budujete svoj kód pre výrobu
# RUN npm install --only = production
# Zdroj balíka aplikácií
KOPÍROVAŤ…
EXPOZÍCIA 8080
CMD ["uzol", "aplikácia"]

Proces zostavenia tejto aplikácie by zahŕňal vytvorenie kontajnera uzlov a inštaláciu závislostí (napríklad Express.modul js). Tento proces by sa mal uskutočniť bez akýchkoľvek chýb. Pre jednoduchosť nebudeme v tomto návode rozoberať žiadne testovanie.

GitLab Runner Pipeline

Teraz by sme do nášho úložiska pridali ďalší súbor, ktorý by sa volal .gitlab-ci.yml . Tento súbor obsahuje pokyny na zostavenie nášho projektu. Teraz, kedykoľvek stlačíme potvrdenie na našu inštanciu GitLab, GitLab vyvolá bežca na zostavenie a otestovanie projektu.

Tomuto potrubiu priraďujeme rôzne pracovných miest ktoré môžu bežať všetky nezávisle na sebe, čo zvyšuje flexibilitu procesu zostavovania. Pre vyššie uvedené repo je toto platné .gitlab-ci.yml vytvorte tento súbor v koreňovom adresári svojho úložiska:

obrázok: uzol: najnovší
etapy:
- stavať
vyrovnávacia pamäť:
cesty:
- node_modules /
install_dependencies:
etapa: stavať
scenár:
- npm nainštalovať

Máme iba jednu etapu stavať a to má práve npm nainštalovať ako scenár. Toto je príkaz, ktorý by ste museli manuálne spustiť vždy, keď dôjde k zmene vášho projektu. Bežec GitLab by to urobil za vás. Runner by mohol byť nainštalovaný v klastri Kubernetes, VPS v cloude alebo na lokálnej pracovnej stanici a ak je aktívny, bude čakať na pokyny zo servera GitLab na vykonanie zostavenia.

Nainštalovali a nakonfigurovali sme Runner lokálne, aby sme ho automatizovali.

Získanie runner tokenu

Otvorte svoje úložisko na GitLab a navštívte jeho nastavenia CD / CI. To je Nastavenia → CD / CI vo vašom testovacom úložisku.

Ponechajte nastavenie Auto DevOps na predvolené nastavenie a kliknite na ROZBALIŤ rozbalíte nastavenia General Pipeline a zobrazí sa vám Runner Token. Skopírujte jeho hodnotu a, samozrejme, ak si svoj projekt ceníte, uchovajte ho v súkromí.

Pomocou tohto tokenu sa váš miestny spustiteľný súbor GitLab Runner bude môcť bezpečne zaregistrovať vo vašej inštancii GitLab.

Inštaluje sa GitLab Runner

GitLab-Runner je malý ľahký program napísaný v Go, ktorý spúšťa CI pracovných miest na vašom lokálnom počítači a odošle výsledky do GitLabu, aby tieto zmeny zvážil. Je to jediný spustiteľný binárny súbor, ktorý je možné nainštalovať na akýkoľvek hlavný operačný systém. Postupujte podľa pokynov pre váš konkrétny operačný systém. Tieto inštalácie sa divoko líšia, takže zoznam všetkých je nemožné.

Alternatívne môžete použiť Runner ako službu Docker, ale zostaňme len pri tradičnej inštalácii, pretože príkazy sú pre čitateľa jednoduchšie čitateľné a zrozumiteľné. Po nainštalovaní na lokálnu pracovnú stanicu musíte vykonať príkaz:

$ gitlab-runner register

To vám položí niekoľko otázok počnúc vaším koordinátorom GitLab-CI, ktorý by bol vašou inštanciou GitLab:

$ gitlab-runner register
Zadajte adresu URL koordinátora gitlab-ci (napr.g. https: // gitlab.com /):
https: // gitlab.príklad.com

Potom si vyžiada váš bežecký token, ktorý sme získali v predchádzajúcej časti:

Zadajte token gitlab-ci pre tohto bežca:

Your_Secret_Token

Potom pre nejaký identifikačný popis a môžete jednoducho preskočiť pridávanie akýchkoľvek značiek stlačením :

Zadajte popis gitlab-ci pre tohto bežca:

[Hostname]: Ukážka na nastavenie CI pomocou Runnera

Zadajte značky gitlab-ci pre tohto bežca (oddelené čiarkou):

Registrácia bežca ... bola úspešná

Najdôležitejšie je, že vás požiada o exekútora (viac o tom za chvíľu), pre príklad si vyberieme Dockera.

Zadajte exekútora: docker-ssh + stroj, kubernetes, parallels, shell, ssh, virtualbox, docker + stroj, docker, docker-ssh:

docker

Potom je potrebné zadať obrázok ukotviteľného panela Base, v rámci ktorého by sa zostavenie uskutočnilo, naša vzorová aplikácia používa uzol, takže zadáme obrázok uzla:

Zadajte predvolený obrázok Dockeru (napr.g. rubín: 2.1):

uzol: najnovšie

Bežec sa úspešne zaregistroval. Pokojne ho spustite, ale ak už beží, konfigurácia by sa mala znovu načítať automaticky!

Teraz tu treba niečo vysvetliť, čo to vlastne je exekútori? Pracovné toky CI sú také, že stavba modulov, ich testovanie atď. Sú známe ako pracovných miest a vykonávatelia týchto úloh vykonávajú. Ak ste si vybrali VirtualBox ako exekútora, potom by sa GitLab runner integroval s lokálne nainštalovaným VirtualBoxom a spustil úlohy CI vo VM, ak vyberiete kubernetes, stalo by sa to vo vašom klastri Kubernetes, v cloude, ak vyberiete ssh môžete delegovať úlohy CI na vzdialený server.

Náš ukážkový projekt je založený na Dockere, takže má zmysel používať Dockera ako nášho vykonávateľa. Musíte mať Docker nainštalovaný lokálne pre to.

Vďaka viacerým možnostiam pre exekútorov je program Runner flexibilnejší. Možno budete chcieť zostaviť lokálne, pretože projektové súbory sú príliš veľké, alebo sa budete chcieť spustiť na vzdialenom serveri s 20 jadrami a pol terabajtom pamäte RAM, pretože proces zostavovania je výpočtovo náročný, keďže špecifikácia možnosti vykonávateľa vám poskytne túto flexibilitu.

Nakoniec by ste vo svojom shelle chceli spustiť službu Runner:

$ štart gitlab-runnera

Vidieť .gitlab-ci.yml v akcii

Teraz sme všetky tieto zmeny vykonali v našom lokálnom repo, kde sme vytvorili celú aplikáciu.js, balíček.json, Dockerfile a .gitlab-ci.yml súbory. Pravdepodobne ste vykonali zmeny v miestnom úložisku spustením:

$ git fáza názov_súboru
$ git commit -m „Commit Message“

Presuňte zmeny do nášho vzdialeného GitLabu.

$ git push -u pôvod

Potom môžete svoj projekt otvoriť v GitLabe, prejsť na môj projekt → Potrubie a uvidíte značku označujúcu „prešiel“ vedľa spáchaného potvrdenia. Následné potvrdenia budú mať tiež značky.

Takže to sú základy CI pomocou GitLab a Runner. Dúfam, že sa vám príspevok páčil a dozvedeli ste sa z neho niečo nové.

Trackpad a ukazovateľ myši AppyMouse na obrazovke pre tablety so systémom Windows
Používateľom tabletov často chýba ukazovateľ myši, najmä keď notebooky bežne používajú. Dotykové smartphony a tablety majú veľa výhod a jediným obmedz...
Stredné tlačidlo myši nefunguje v systéme Windows 10
The stredné tlačidlo myši pomáha vám prechádzať dlhé webové stránky a obrazovky s množstvom údajov. Ak sa to zastaví, budete nakoniec používať klávesn...
Ako zmeniť ľavé a pravé tlačidlo myši na počítači so systémom Windows 10
Je úplnou normou, že všetky zariadenia počítačových myší sú ergonomicky navrhnuté pre pravákov. Existujú však dostupné myšacie zariadenia, ktoré sú šp...