Automatizujte svoj pracovný postup pomocou gitových háčikov

Kredit: Atlass

Čo sú to háky

Háčiky Git sú skripty, ktoré sa spúšťajú pred určitými udalosťami, ako je commit, push, rebase atď. Pretože sú založené na udalostiach, keď spúšťate určité príkazy git, git skontroluje háčiky v úložisku git, aby zistil, či je k nim priradený skript. spustiť. Háčiky sa nachádzajú v adresári .git / hooks.

cd .git / hooks

Ak uvediete zoznam súborov v tomto adresári, zobrazia sa nasledujúce ukážkové háčiky.

1. applypatch-msg.sample
2. commit-msg.sample
3. post-update.sample
4. pre-applypatch.sample
5. pre-commit.sample
6. vzorka pred tlačením
7. vzorka pred rebázou
8. pre-recieve.sample
9. pripraviť-potvrdiť-msg.sample
10.update.sample

Ako ich používať na zlepšenie vášho pracovného postupu v gite

Ak ste niekedy pracovali na open-source projekte s mnohými prispievateľmi alebo ste pravdepodobne technickým tímom, ktorý vedie projekt, a hľadáte spôsoby, ako vylepšiť pracovný postup vášho tímu tak, aby určité chyby pracovného postupu, ktoré vývojári vyvíjajú, boli náchylný k tomu, aby ste sa im vyhli skôr, ako sa k nim dopustia, možno ste vývojár, ktorý má stále chuť mať hru A vždy po 100, možno teraz je ten správny čas na skúmanie gitov.

V tomto článku vám ukážem, ako používať predtlačiaci gitový hák na spustenie testov pred zasunutím kódu do vzdialenej vetvy. V tomto príspevku budem používať PHP.

Ak používate knihu Mac, pokračujte ďalej. Ak používate počítač so systémom Windows, príkazy shellu sa budú líšiť. V tomto príspevku nie sú uvedené príkazy systému Windows.

Klonovanie tohto úložiska. Obsahuje projekt postavený s Laravelom a obsahuje niekoľko testov jednotiek napísaných pomocou PHPUnit. Akonáhle budete mať tento klonovaný a nastavený, zmeňte adresár na adresár git hooks a vytvorte pre-push súbor. Otvorte to pomocou svojho obľúbeného textového editora, používam Atom.

cd .git / hooks
dotyk predtlačiť
atom pre-push // Tento súbor otvorte pomocou ľubovoľného textového editora

V ideálnom prípade by som chcel mať možnosť spustiť testy skôr, ako posuniem kód do svojej vzdialenej vetvy. Ak háčkový skript skončí s 0, potom je všetko v poriadku a git pokračuje v tlačení kódu do mojej vzdialenej vetvy. Ak program ukončí nenulový kód, operácia git zastaví.

Riadok 7:
Funkcia exec spustí príkaz na vykonanie testov, ktoré sú v tomto prípade dodávateľom / bin / phpunit.

Ak používate iný testovací rámec, ako je kódovanie, mali by ste nahradiť dodávateľa / bin / phpunit konkrétnym príkazom na vykonanie testov vo vybranom rámci. Obsah výstupnej premennej bude pole naplnené každým riadkom výstupu z príkazu.

Riadok 9:
Ak výstupný kód nie je rovný 0, potom test neprebehol úspešne. Môžete skontrolovať obsah výstupnej premennej a určiť, ktorá položka poľa sa má zobraziť na vašom termináli. Zobrazil som položku v indexe 14, ktorá zobrazuje prehľad testov, úspešných a neúspešných pokusov. Táto časť je naozaj na vás. Z terminálu môžete vydávať, čo sa vám páči; spodný riadok je, že git sa zastaví a udalosť push sa rovnako nestane.

Riadok 18:
Nulový výstupný kód znamená, že sme všetci zelení. Git pokračuje udalosťou push do vašej vzdialenej vetvy.

Čo ďalej?

Vytvorte spustiteľný súbor pred tlačením, aby fungoval ako hák.

chmod a + x pre-push

Teraz pokračujte v malej zmene ktoréhokoľvek zo súborov v projekte a upravte zmenené súbory. Môžete vyladiť svoj kód a spôsobiť zlyhanie len preto, aby sme okamžite videli hák v akcii.

ga. && gc -m „niektoré malé zmeny“
git push origin the-branch-you-are-on

Ak dôjde k poruche, uvidíte na termináli niečo ako to, čo je nižšie:

Aká je jeho výhoda?

1. Povedzte, že ste pred tlačením zabudli spustiť testovací príkaz, ušetríte tým nepríjemnosti, ktorým môžete čeliť v prípade zlyhania zostavenia na github / bitbucket / gitlab.
2. Opakované vykonávanie testu manuálne pred tlačením je opakujúca sa úloha, čo robíme s opakovanými úlohami? Tiež som si to myslel! Navyše to zvyšuje vašu produktivitu.
3. Môžete robiť naozaj cool veci, ako je výpočet celkového času potrebného na vykonanie testov. Týmto spôsobom môžete okamžite zistiť, či testy trvali príliš dlho. Je to naozaj všetko na vás.

Neváhajte a preskúmajte ďalšie prípady použitia rôznych háčikov na git. Git hooks je zaujímavý nástroj na automatizáciu vášho pracovného toku. Podeľte sa o svoje myšlienky prostredníctvom sekcie komentárov nižšie.

Považujete tento príspevok za užitočný? Láskavo ukážte lásku a zdieľanie.