Гит

ГитЛаб Руннер и ГитЛаб ЦИ

ГитЛаб Руннер и ГитЛаб ЦИ

Шта је континуирана интеграција (ЦИ)?

Непрекидна интеграција је следећи логичан корак након што имате систем контроле верзија као што је Гит и систем за даљинску контролу верзија као што су ГитЛаб или ГитХуб за заједничке напоре. Проблем са којим се суочавају велики пројекти је следећи - како долазе нови захтеви за повлачењем, они морају бити тестирани и затим интегрисани у главну грану, а овај напор може трајати од неколико сати до неколико недеља, у зависности од величине пројекта локација чланова тима итд.

Као и сваки такав проблем, логични корак је аутоматизација целокупне ригмароле тестирања. То чинимо постављањем окидача тако да кад год се новији комитови споје у грану, агент (ГитЛаб Руннер, на пример) аутоматски гради окружење и код, покреће све јединичне тестове и тестове интеграције против њега. Ако се наиђе на било какву грешку, даје упозорење и извештај о паду система, у супротном добијате зелени сигнал који каже да све функционише.

Наравно, доведени до своје логичне крајности, такође можете аутоматизовати примену, подесити аутоматско А / Б тестирање и у потпуности уклонити људску интервенцију из процеса. То се назива континуирана испорука и / или континуирана примена у зависности од нивоа аутоматизације. Али ми бисмо се у овом упутству фокусирали само на континуирану интеграцију.

Предуслови

Усредсредићемо се на постављање једноставног протока ЦИ у водичу помоћу ГитЛаб инстанце преко ХТТПС-а, о чему смо говорили у претходном посту.

Поред тога, такође претпостављамо да сте подесили кориснички налог у овој ГитЛаб инстанци и јесте спремиште (клонирано на вашем локалном рачунару) којим се управља под вашим корисничким именом. Управо ћемо ово спремиште користити за демонстрацију тока рада ЦИ. У водичу ће бити његово име мој пројекат.

Да све набројим:

  1. ГитЛаб инстанца
  2. Празно спремиште, названо ми-пројецт
  3. Локални клон овог спремишта
  4. Ваша локална Гит инстанца је конфигурисана за убацивање промена у даљински.

Прављење једноставне апликације

У овом спремишту, креирајмо једноставан Ноде.јс апп. Ова апликација је једноставан Екпресс.јс сервер који је предвиђен за примену у Доцкер контејнеру. Сервер даје ХТТП корисни терет са натписом „Хелло Ворлд“ у вашем прегледачу.

У корену вашег локалног спремишта креирајте датотеку апликација.јс и додајте следеће редове:

„користи строго“;
цонст екпресс = рекуире ('екпресс');
// Константе
цонст ПОРТ = 8080;
цонст ХОСТ = '0.0.0.0 ';
// Апликација
цонст апп = екпресс ();
апликација.гет ('/', (рек, рес) =>
рез.сенд ('Здраво, свет \ н');
);
апликација.слушајте (ПОРТ, ХОСТ);
конзола.лог ('Покреће се на хттп: // $ ХОСТ: $ ПОРТ');

Затим креирајте другу датотеку пакет.јсон и додајте му следеће:


"наме": "доцкер_веб_апп",
"версион": "1.0.0 ",
"десцриптион": "Чвор.јс на Доцкер-у ",
"аутор": "Јохн Дое",
"маин": "сервер.јс ",
"скрипте":
"старт": "сервер чвора.јс "
,
"зависности":
"екпресс": "^ 4.16.1 "

На крају, креирајте Доцкерфиле и додајте му следећи садржај:

ОД чвора: 8
# Креирајте директоријум апликација
ВОРКДИР / уср / срц / апп
# Инсталирајте зависности апликације
# Замењиви знак се користи за осигурање оба пакета.јсон И пакет-закључавање.јсон се копирају
ЦОПИ пакет *.јсон ./
РУН нпм инсталација
# Ако градите свој код за производњу
# РУН нпм инсталл --онли = продуцтион
# Извор апликације бундле
КОПИРАЈ…
ИЗЛОЖИТЕ 8080
ЦМД [„чвор“, „апликација“]

Процес израде ове апликације подразумевао би стварање контејнера чвора и инсталирање зависности (попут Екпресс.јс модул). Овај процес би се требао догодити без грешака. Ради једноставности, у овом водичу нећемо расправљати ни о каквом тестирању.

ГитЛаб Руннер Пипелине

Сада бисмо додали још једну датотеку у наше спремиште која би се звала .гитлаб-ци.имл . Ова датотека би садржала упутства за изградњу нашег пројекта. Сада, сваки пут када притиснемо урезивање на нашу ГитЛаб инстанцу, ГитЛаб би позвао Руннер за изградњу и тестирање пројекта.

Овај цевовод додељујемо разним послови који се могу изводити сви покренути независно један од другог, чинећи процес израде флексибилнијим. За горњи репо, ово је валидно .гитлаб-ци.имл креирајте ову датотеку у корену вашег спремишта:

слика: чвор: најновије
фазе:
- градити
цацхе:
стазе:
- ноде_модулес /
инсталл_депенденциес:
фаза: градити
скрипта:
- нпм инсталл

Имамо само једну фазу градити и управо је нпм инсталл као скрипта. Ово је наредба коју бисте морали ручно да покренете сваки пут када промена дође до вашег пројекта. ГитЛаб тркач би то учинио за вас. Покретач би могао да се инсталира у Кубернетес кластер, ВПС у облаку или на вашој локалној радној станици и ако је активан, сачекаће упутства од ГитЛаб сервера за извршавање градње.

Локално бисмо инсталирали и конфигурисали Руннер да би га аутоматизовали.

Добијање жетона тркача

Отворите своје спремиште на ГитЛаб-у и посетите његова ЦД / ЦИ подешавања. То је то Подешавања → ЦД / ЦИ унутар вашег спремишта за тестове.

Оставите поставку Ауто ДевОпс на подразумевано и кликните на ПРОШИРИТИ да проширите општа подешавања цевовода и биће вам приказан жетон тркача. Копирајте његову вредност и, наравно, чувајте је приватном ако цените свој пројекат.

Коришћењем овог токена, ваш локални извршни програм ГитЛаб Руннер моћи ће се безбедно регистровати на вашој ГитЛаб инстанци.

Инсталирање ГитЛаб Руннера

ГитЛаб-Руннер је мали лагани програм написан у програму Го који покреће ЦИ послови на вашој локалној машини и шаље резултате ГитЛабу да он размотри промене. То је једна извршна бинарна датотека која се може инсталирати на било који већи ОС. Следите упутства овде, за ваш одређени оперативни систем. Ове инсталације се веома разликују, па је пописивање свих њих неизводљиво.

Алтернативно можете користити Руннер као Доцкер услугу, али останимо само при традиционалној инсталацији, јер су наредбе једноставније за читање и разумевање за читач. Једном када га инсталирате на локалној радној станици, морате извршити наредбу:

$ гитлаб-руннер регистар

Ово ће вам поставити неколико питања која почињу са вашим ГитЛаб-ЦИ координатором који би био ваша ГитЛаб инстанца:

$ гитлаб-руннер регистар
Унесите УРЛ координатора гитлаб-ци (нпр.г. хттпс: // гитлаб.цом /):
хттпс: // гитлаб.пример.цом

Затим ће затражити ваш Руннер Токен, који смо добили у претходном одељку:

Унесите гитлаб-ци жетон за овог тркача:

Иоур_Сецрет_Токен

Затим за неки идентификациони опис, а можете једноставно прескочити додавање било којих ознака притискајући :

Унесите опис гитлаб-ци за овог тркача:

[Име хоста]: Демонстрација за подешавање ЦИ користећи Руннер

Унесите гитлаб-ци ознаке за овај тркач (одвојени зарезом):

Регистровање тркача ... успело

Што је најважније, тражиће од вас извршиоца (о овоме више за тренутак), ми ћемо за наш пример изабрати Доцкер.

Унесите извршиоца: доцкер-ссх + машина, кубернетес, паралеле, љуска, ссх, виртуалбок, доцкер + машина, доцкер, доцкер-ссх:

доцкер

Затим треба навести основну слику доцкера унутар које би се одвијала изградња, наша апликација за примере користи чвор, па ћемо одредити слику чвора:

Унесите подразумевану Доцкер-ову слику (нпр.г. рубин: 2.1):

чвор: најновије

Тркач се успешно регистровао. Слободно га покрените, али ако већ ради, конфигурацију треба аутоматски поново учитати!

Сада је нешто што треба мало објаснити овде шта су тачно извршиоци? Начин на који ЦИ рад тече је тако што су израда модула, њихово тестирање итд. Познати послови а извршиоци извршавају те послове. Ако сте изабрали ВиртуалБок за извршиоца, тада би се покретач ГитЛаб интегрирао са локално инсталираним ВиртуалБоком и покренуо ЦИ послове у ВМ-у, ако одаберете кубернетес, то би се догодило у вашем кластеру Кубернетес, у облаку, ако изаберете ссх, можете делегирати ЦИ задатке на удаљени сервер.

Наш узорак пројекта заснован је на Доцкер-у, тако да има смисла користити Доцкер као нашег извршиоца. Треба имати Доцкер инсталиран локално за ово.

Имајући више опција за извршитеље чини Руннер флексибилнијим. Можда ћете желети да градите локално јер су датотеке пројекта превелике или ћете можда желети да се изврше на удаљеном серверу са 20 језгара и пола терабајта РАМ-а, јер је процес израде рачунски интензиван, специфицирање опције извршиоца вам даје ту флексибилност.

И на крају, у својој љусци бисте желели да покренете услугу Руннер:

$ гитлаб-руннер старт

Види .гитлаб-ци.имл у акцији

Сада смо извршили све ове промене у нашем локалном репо-у креирали смо сву апликацију.јс, пакет.јсон, Доцкерфиле и .гитлаб-ци.имл датотеке. Претпоставља се да сте извршили промене у свом локалном спремишту покретањем:

$ гит стаге име_датотеке
$ гит цоммит -м „Објави поруку“

Пребацимо промене на наш удаљени ГитЛаб.

$ гит пусх -у порекло

Затим можете отворити свој пројекат у ГитЛаб-у, идите на мој пројекат → Цевовод и видећете ову ознаку са натписом „прошао“ поред обавезе коју сте извршили. Наредне обавезе такође ће имати ознаке.

Дакле, то су основе ЦИ-а који користе ГитЛаб и Руннер. Надам се да сте уживали у посту и научили нешто ново из њега.

Вулкан за кориснике Линука
Са сваком новом генерацијом графичких картица видимо да програмери игара помичу границе графичке верности и долазе на корак од фотореализма. Али упрко...
ОпенТТД вс Симутранс
Стварање сопствене симулације превоза може бити забавно, опуштајуће и изузетно примамљиво. Због тога морате да испробате што више игара како бисте про...
Водич за ОпенТТД
ОпенТТД је једна од најпопуларнијих игара за пословну симулацију. У овој игри морате створити диван посао превоза. Међутим, почет ћете у почетку око 1...