التكامل المستمر أمر بالغ الأهمية لأي مستودع نشط يحتاج إلى بناء واختبار روتيني. يدعم Github خطوط أنابيب CI في شكل Github Actions-builds التي تعمل في السحابة تلقائيًا بقليل من الإعداد.
ما هو التكامل المستمر؟
بينما يمكن نشر بعض قواعد الرموز ، مثل بعض تطبيقات الويب ، مباشرة من ملفات المصدر الخاصة بها ، يتطلب البعض الآخر معالجة إضافية وتجميعًا ، والأهم من ذلك اختبار الوحدة. يمكن أن تكون هذه البنيات معقدة وحتى كثيفة الموارد في حالة لغات مثل C ++.
التكامل المستمر هو عملية أتمتة الاختبار وبناء التزامات جديدة في كود المصدر الخاص بك. بشكل عام ، يتم استخدام هذا مع برنامج مثل Jenkins يعمل على "خادم بناء" الذي سيتعامل مع التجميع الفعلي.
تجميع الكود الآلي هو خدمة مفيدة لفرق البرمجيات يقدمها الآن موفرو السحابة ، بما في ذلك Github ، حيث يتكامل بشكل جيد مع بقية خدماتهم.
ما هي إجراءات جيثب؟
إجراءات Github هي مهام قائمة على السحابة يمكن استخدامها لأتمتة المستودع الخاص بك. يتم استخدامها بشكل شائع لتشغيل إصدارات مؤتمتة للالتزامات أو الإصدارات الجديدة ، والتي يمكن أن تكون مفيدة للاختبار المستمر للبرامج. ومع ذلك ، يمكن أيضًا استخدامها للأتمتة غير المرتبطة بـ CI ، مثل التعامل مع المشكلات وطلبات السحب ، أو تشغيل
cronوظيفة ، أو تشغيل الأوامر بناءً على الإجراءات في حسابك.
بقدر ما يذهب CI ، فإن إجراءات Github مفيدة للغاية.تتطلب منك معظم خطوط أنابيب CI إعداد برامج معقدة مثل Jenkins أو استخدام خدمة سحابية معينة مثل AWS CodePipeline. إجراءات Github بسيطة للغاية ، وتتطلب منك فقط الالتزام بملف التكوين
github / workflows /لتمكين إجراء.
علاوة على ذلك ، عادةً ما يكون Github قادرًا على تحديد نوع المشروع الذي تقوم بإنشائه وتقديم اقتراحات لتكوينات الإجراءات من مكتبة الأمثلة الخاصة به. على سبيل المثال ، تم إنشاء مشروع Java وتشغيله باستخدام عمليات إنشاء آلية في بضع دقائق فقط مع بعض التعديلات الطفيفة على

يمكن أن يكون لديك إجراءات متعددة في نفس الريبو ؛ على سبيل المثال ، ربما ترغب في إعداد عمليات إنشاء تلقائية لكل التزام في الفرع
dev
، لكنك تريد فقط إصدارات لكل إصدار جديد بعلامات على
masterفرع. يمكنك عمل ملفين YAML منفصلين بمعايير مختلفة.
بينما تكون الإجراءات مفيدة جدًا لإجراء عمليات الإنشاء والاختبار ، إلا أنها تستطيع أيضًا تشغيل الأوامر والاتصال بخدمات أخرى ، مما يسمح لها بأتمتة عمليات التسليم والنشر أيضًا.على سبيل المثال ، يمكن أن يكون لديك إجراء على
releaseفرع يأخذ كل إصدار جديد بعلامات وتحميله إلى خوادمك للنشر.
بشكل افتراضي ، ستنشر Github Actions builds الإنشاءات (كل ما تم إنتاجه بواسطة عملية الإنشاء) إلى ملف مضغوط لكل عملية تشغيل. يعمل هذا بشكل جيد إذا كنت تقوم فقط بتشغيل الاختبارات ، ولكن إذا كنت تريد إجراء التسليم التلقائي ، فيمكنك أيضًا إعدادها لنشر الإصدارات الجديدة تلقائيًا ، أو الدفع إلى سجل الحزمة / الحاوية مثل NPM أو Docker hub.
سيختلف التكوين الدقيق لمستودعك اعتمادًا على ماهية عملية الإنشاء الخاصة بك ، لكن Github يقوم بعمل جيد في تقديم أمثلة قوية للبدء بها ، والإعداد العام هو نفسه إلى حد كبير. إذا كنت ترغب في معرفة المزيد حول بدء استخدام إجراءات GH ، فيمكنك قراءة دليلنا حول إعدادها.
إجراءات جيثب التسعير
لحسن الحظ ، تمتلك Github الأموال اللازمة لرعاية برامج مفتوحة المصدر ، لذا فإن الإجراءات مجانية تمامًا للمستودعات العامة.يمكنك استخدامها بقدر ما تريد ، أو تخزين أكبر عدد تريده من أدوات البناء - لا يوجد حد صعب ما لم تكن مسيئًا ، تمامًا مثل باقي Github.
بالنسبة للمستودعات الخاصة ، يحتوي كل حساب تلقائيًا على 2000 دقيقة من وقت الإنشاء كل شهر ، وهو أمر سخي للغاية. هذا ما يقرب من يوم ونصف من البناء المستمر ، لذلك عليك القيام ببعض الإنشاءات الطويلة بجدية - أو الكثير من الالتزامات - لتحقيق هذا الرقم. من المرجح أن تصل إلى حد التخزين البالغ 500 ميغابايت للحسابات المجانية. ومع ذلك ، إذا كنت تبني على كل التزام ، مع أوقات إنشاء طويلة ، وتلتزم كثيرًا ، فيمكنك نفاد هذا الرقم.
يحصل مستخدمو Github Pro (4 دولارات شهريًا) على 3000 دقيقة و 1 غيغابايت من السعة التخزينية ، كما تفعل المؤسسات التي تستخدم خطة Github Team ، والتي تبلغ 4 دولارات لكل مستخدم شهريًا.
Github Enterprise ، التي تكلف 21 دولارًا لكل مستخدم ، شهريًا ، تمنح 50.000 دقيقة من دقائق الإنشاء ، وهي 35 يومًا متتاليًا من الإصدارات ، مما يتيح لك تشغيل الإصدارات على مدار الساعة طوال أيام الأسبوع ثم بعضها.
إذا انتهيت من أي خطة ، فستتم محاسبتك على الدقائق الإضافية المستخدمة. الأسعار عادلة جدًا ، مع 2000 دقيقة إضافية بتكلفة 16 دولارًا.
هل يجب عليك استخدام الإجراءات أم خادم البناء الخاص بك؟

يبدأ CI / CD بتتبع التحكم في الإصدار. عادةً ما يتم تشغيل الإنشاءات الآلية لكل التزام أو إصدار رئيسي ، وستتكامل معظم أنظمة خوادم الإنشاء المستقلة ، مثل Jenkins أو TeamCity ، مع مستودع
gitلتوفير هذه الوظيفة.
هذا يجعل حل CI الخاص بـ Github مفيدًا جدًا في المقارنة - فهو مدمج مباشرةً في الخدمة التي تستخدمها بالفعل وهو سهل للغاية في الإعداد والتشغيل. كل ما عليك فعله هو تثبيت ملف تكوين الإنشاء في مجلد
github، وسيقوم Github باستلامه وتشغيله. على الرغم من أن الخدمات المستقلة يمكن أن تكون مفيدة لعمليات النشر المؤسسية ، إلا أن بساطة استخدام Github Actions بالنسبة للمستخدم العادي أسهل حتى من تثبيت خادم إنشاء مخصص.
إجراءات Github يمكن استخدامها أيضًا لأكثر من مجرد إنشاءات آلية. إنهم يدعمون جميع أنواع أتمتة المستودعات ، بما في ذلك التعامل مع المشكلات وطلبات السحب.
مع ذلك ، فإن Github Actions ليست كاملة الميزات مثل تشغيل خادمك الخاص بها ، وإذا كنت تقوم بالكثير من الإنشاءات العادية أو المعقدة ، فيجب أن تنظر في إعداد خادم Jenkins. إذا كنت تقوم بالكثير من الإنشاءات كثيفة الاستخدام لوحدة المعالجة المركزية ، فيمكن أن تكون Jenkins مفيدة أيضًا لذلك ، ولكن Github Actions أيضًا تدعم استخدام الخادم الخاص بك لتشغيل البنيات.