أتمتة سير العمل الخاص بك مع السنانير بوابة

الائتمان: أطلس

ما هي السنانير بوابة

خطاطيف Git عبارة عن نصوص برمجية يتم تشغيلها قبل أحداث معينة مثل الالتزام والدفع وإعادة التشغيل وما إلى ذلك نظرًا لأنها قائمة على الأحداث ، عندما تقوم بتشغيل أوامر git معينة ، ستقوم git بفحص الخطافات داخل مستودع git لمعرفة ما إذا كان هناك برنامج نصي مرتبط بـ يركض. تم العثور على hooks في الدليل .git / hooks.

مؤتمر نزع السلاح. جيت / السنانير

إذا قمت بسرد الملفات الموجودة في هذا الدليل ، فستشاهد نماذج السنانير التالية.

1. applypatch-msg.sample
2. ارتكاب msg.sample
3. post-update.sample
4. pre-applypatch.sample
5. قبل الالتزام
6. قبل الدفع. عينة
7. قبل rebase.sample
8. قبل تلقي. عينة
9. قم بإعداد-الالتزام-msg.sample
10.update.sample

كيفية استخدامها لتحسين سير العمل git الخاص بك

إذا كنت قد عملت في أي وقت من الأوقات في مشروع مفتوح المصدر مع الكثير من المساهمين أو ربما كنت تقود الفريق الفني في مشروع ما وكنت تبحث عن طرق لتحسين سير العمل في فريقك بطريقة تؤدي إلى حدوث أخطاء معينة في سير العمل والتي يكون المطورون عرضة للتجنب قبل الالتزام بها ، وربما كنت مطورًا يحب أن يكون لديه دائمًا لعبة A في 100 طوال الوقت ، وربما الآن هو الوقت المناسب لاستكشاف علاقات السنانير.

في هذه المقالة ، سأوضح لك كيفية استخدام ربط بوابة الدفع المسبق لتشغيل الاختبارات قبل دفع الرمز إلى فرعك البعيد. في هذا المنشور ، سأستخدم PHP.

إذا كنت تستخدم كتاب Mac ، فاتبعه. إذا كنت تستخدم جهاز كمبيوتر يعمل بنظام Windows ، فستكون أوامر shell مختلفة. لا يتم توفير أوامر Windows في هذا المنشور.

استنساخ هذا المستودع. يحتوي على مشروع تم إنشاؤه باستخدام Laravel ويحتوي على بعض اختبارات الوحدات المكتوبة باستخدام PHPUnit. بمجرد الانتهاء من استنساخها وإعدادها ، قم بتغيير الدليل إلى دليل السنانير وإنشاء ملف دفع مسبق. افتح هذا الأمر باستخدام محرر النصوص المفضل لديك ، وأنا أستخدم Atom.

مؤتمر نزع السلاح. جيت / السنانير
المس قبل الدفع
atom pre-push // افتح هذا الملف مع أي محرر نصوص تريده

من الناحية المثالية ، أريد أن أكون قادرًا على إجراء الاختبارات قبل دفع الرمز إلى فرعي البعيد. إذا انتهى البرنامج النصي للربط بـ 0 ، فسيظل كل شيء على ما يرام ويستمر git في دفع الرمز إلى فرعي البعيد. في حالة الخروج برمز غير صفري ، توقف git العملية.

السطر 7:
تقوم وظيفة exec بتشغيل الأمر لإجراء الاختبارات وهو البائع / bin / phpunit في هذه الحالة.

إذا كنت تستخدم أي إطار اختبار آخر مثل codeception ، فعليك استبدال البائع / bin / phpunit بالأمر المحدد لتشغيل الاختبارات في الإطار الذي اخترته. ستكون محتويات متغير الإخراج عبارة عن صفيف يتم ملؤه بكل سطر من الإخراج من الأمر.

السطر 9:
إذا كان رمز الخروج لا يساوي 0 ، فلن يعمل الاختبار بنجاح. يمكنك فحص محتويات متغير الإخراج وتحديد أي عنصر من الصفيف الذي تريد عرضه على الجهاز الطرفي. لقد قمت بعرض العنصر في الفهرس 14 والذي يعرض ملخصًا للاختبارات والنجاحات والإخفاقات. هذا الجزء هو حقا متروك لك. يمكنك إخراج ما تريد على المحطة ؛ خلاصة القول هي أن بوابة توقف وحدث الدفع لا يحدث على أي حال.

السطر 18:
رمز الخروج صفر يعني أننا جميعًا أخضر. يستمر Git مع حدث الدفع إلى فرعك البعيد.

ماذا بعد؟

اجعل ملف ما قبل الدفع قابلاً للتنفيذ لجعله يعمل بمثابة ربط.

chmod a + x قبل الدفع

انتقل الآن إلى إجراء تغيير بسيط على أي من الملفات الموجودة في المشروع وقم بإعادة تشغيل الملف (الملفات) الذي تم تغييره. يمكنك تعديل الكود الخاص بك لإحداث فشل فقط حتى نتمكن من رؤية الخطاف قيد التنفيذ على الفور.

الجا. && gc -m "بعض التغييرات الصغيرة"
بوابة دفع أصل فرع أنت على

إذا حدث فشل ، فسترى شيئًا يشبه ما هو موجود أدناه على الجهاز الطرفي:

ما فائدة هذا؟

1. قل أنك نسيت تشغيل أمر الاختبار قبل الدفع ، فهذا يوفر عليك الإحراج الذي قد تواجهه عندما يفشل البناء على github / bitbucket / gitlab.
2. إجراء الاختبار يدويًا طوال الوقت قبل الدفع هو مهمة متكررة ، ماذا نفعل بالمهام المتكررة؟ أعتقد ذلك أيضا! بالإضافة إلى أنه يزيد من الإنتاجية.
3. يمكنك القيام بأشياء رائعة حقًا مثل حساب إجمالي الوقت الذي استغرقته الاختبارات للتشغيل. وبهذه الطريقة ، يمكنك معرفة ما إذا كانت الاختبارات قد استغرقت وقتًا طويلاً للتنفيذ. الأمر متروك لك حقًا.

لا تتردد في استكشاف حالات الاستخدام الأخرى لمختلف السنانير بوابة. Git hooks هي أداة مثيرة للاهتمام لأتمتة سير عملك. شارك أفكارك عن طريق قسم التعليقات أدناه.

هل وجدت هذا المنشور مفيدا؟ يرجى إظهار بعض الحب والمشاركة.