Автоматизирайте работния си процес с куки за git

Кредит: Atlass

Какво представляват кукичките

Git куките са скриптове, които се изпълняват преди определени събития като компилиране, push, rebase и т.н. Тъй като те са базирани на събития, когато изпълнявате определени git команди, git ще провери куките в хранилището на git, за да провери дали има свързан скрипт за се изпълнява. Куките се намират в директорията .git / hooks.

cd .git / куки

Ако изброите файловете в тази директория, ще видите следните примерни куки.

1. applypatch-msg.sample
2. ангажиране-msg.sample
3. post-update.sample
4. предварително приложете.пример
5. предварително ангажиране.пример
6. предварителна проба.пример
7. pre-rebase.sample
8. предварително получаване.пример
9. подготвям-ангажирам-msg.sample
10.update.sample

Как да ги използвате, за да подобрите работния си процес в git

Ако някога сте работили по проект с отворен код с много сътрудници или може би сте техническият екип ръководещ проект и търсите начини да подобрите работния процес на вашия екип по такъв начин, че да възникнат определени грешки в работния процес, които разработчиците са склонни са да се избягват, преди да бъдат ангажирани, може би сте разработчик, който обича да има своите A игра на 100 през цялото време, може би сега е подходящото време да изследвате git куки.

В тази статия ще ви покажа как да използвате git куката за предварително натискане, за да стартирате тестове, преди да натискате код към вашия отдалечен клон. В този пост ще използвам PHP.

Ако използвате книга с Mac, следвайте това. Ако използвате компютър с Windows, командите на черупките ще бъдат различни. Командите на Windows не са предоставени в тази публикация.

Клонирайте това хранилище. Той съдържа проект, изграден с Laravel и съдържа някои тестове на единици, написани с PHPUnit. След като го клонирате и настроите, променете директорията в директорията на git hooks и създайте файл за предварително натискане. Отворете това с любимия си текстов редактор, аз използвам Atom.

cd .git / куки
докоснете предварително натискане
pre-push atom // Отваряне на този файл с всеки текстов редактор, който харесвате

В идеалния случай искам да мога да стартирам тестовете, преди да насоча кода към отдалечения си клон. Ако скриптът на куката излиза с 0, тогава всичко е наред и git продължава да бута кода към отдалечения ми клон. Ако излезе с ненулев код, git спира операцията.

Ред 7:
Функцията exec задейства командата за стартиране на тестовете, която в този случай е vendor / bin / phpunit.

Ако използвате друга тестова рамка като кодецепция, тогава трябва да замените vendor / bin / phpunit със специфичната команда, за да стартирате тестовете в избраната от вас рамка. Съдържанието на изходната променлива ще бъде масив, попълнен с всеки ред на изход от командата.

Ред 9:
Ако изходният код не е равен на 0, тестът не се изпълни успешно. Можете да разгледате съдържанието на изходната променлива и да определите кой елемент от масива, който искате да покажете на вашия терминал. Аз показах елемента в индекс 14, който показва обобщение на тестовете, пропуските и неуспехите. Тази част наистина зависи от вас. Можете да извеждате каквото искате на терминала; долният ред е, че git спира и push събитието не се случва така или иначе.

Ред 18:
Нулев изходен код означава, че всички сме зелени. Git продължава с push събитието към отдалечения ви клон.

Какво следва?

Направете изпълняващия се файл, за да го изпълнява като кука.

chmod a + x pre push

Сега продължете да направите малка промяна във всеки от файловете в проекта и поставете на етап променените файлове (файлове). Можете да настроите кода си, за да задействате неуспех, така че веднага да видим куката в действие.

га. && gc -m „малка промяна“
git push origin the-branch-you-are-on

Ако има повреда, ще видите нещо като това, което е по-долу на вашия терминал:

Каква е ползата от това?

1. Кажете, че сте забравили да изпълните тестовата команда, преди да натиснете, това ви спестява неудобството, с което може да се сблъскате, когато изграждането се провали на github / bitbucket / gitlab.
2. Провеждането на теста ръчно през цялото време преди натискането е повтаряща се задача, какво правим с повтарящите се задачи? И аз така мислех! Плюс това увеличава вашата производителност.
3. Можете да направите наистина готини неща като изчисляване на общото време, необходимо за тестовете. По този начин можете веднага да знаете дали тестовете отнеха твърде много време, за да се изпълнят. Всичко зависи от вас.

Чувствайте се свободни да разгледате други случаи на използване за различните куки за git. Git куки е интересен инструмент за автоматизиране на работния процес. Споделете мислите си чрез секцията за коментари по-долу.

Смятате ли, че тази публикация е полезна? Любезно покажете малко любов и споделяйте.