CI/CD مع إجراءات GitHub لـ Next.js وNestJS
خط أنابيب عملي: الوبر والاختبار والبناء والمعاينة والنشر المتحكم فيه دون طوابير لمدة ساعة أو أسرار مسربة.
علي مرتضوي
مؤسس بارادايس كود
يجب أن يقدم CI إشارة سريعة، وليس مسرحًا معقدًا
كل دقيقة من تأخير تعليقات العلاقات العامة تخلق اختصارات بشرية. قم بطبقة خط الأنابيب: عمليات الفحص الرخيصة أولاً (التنسيق/الوبر/فحص النوع)، ثم اختبارات الوحدة، ثم إنشاء E2E وتدخينه في مسار منفصل أو مشروط. إذا كان كل شيء متسلسلًا وثقيلًا، يقوم الفريق بكتم الإجراءات.
في monorepo، تم تغيير الحزم بناء/اختبار فقط. تعمل مرشحات المسار والتخزين المؤقت للتبعية على خفض التكلفة الحقيقية.
التخزين المؤقت والحتمية
استعادة ذاكرة التخزين المؤقت لمدير الحزم باستخدام مفاتيح ملف القفل. يتم إنشاء Lighten Next باستخدام ذاكرة تخزين مؤقت للإنشاء مناسبة لإطار العمل، ولكنها لا تعتمد أبدًا على ذاكرة تخزين مؤقت قذرة - فأنت بحاجة إلى مسار إعادة بناء نظيف.
قم بتثبيت العقدة في `.nvmrc`/Volta حتى لا يتكرر الأمر "يعمل على جهازي". استخدم نفس الإصدار في الإجراءات والإنتاج.
الأسرار والبيئات والأذونات
احتفظ بالأسرار في بيئات GitHub مع الموافقة على الإنتاج. منح سير العمل أقل الامتيازات (`المحتويات: قراءة`، `رمز التعريف` فقط عندما يكون OIDC مطلوبًا). تجنب طباعة قيم البيئة في السجلات.
بالنسبة إلى Nest وNext، قم بتقسيم المتغيرات حسب البيئة: يجب ألا تشير المعاينة مطلقًا إلى قاعدة بيانات الإنتاج - حتى للقراءة فقط.
المعاينات والتسليم التدريجي
تعمل عمليات نشر معاينة الواجهة الأمامية على جعل مراجعة المنتج حقيقية. بالنسبة لواجهات برمجة التطبيقات، فإن البيئة المرحلية ذات عمليات الترحيل الخاضعة للرقابة تتفوق على النشر مباشرة من الصفحة الرئيسية. قم بتصميم عمليات الترحيل في المسار مع القفل وعقلية التراجع - وليس كفكرة لاحقة.
يتم نشر ربط الإنتاج بعلامة أو موافقة. التراجع عن الممارسة؛ المستند غير المسجل غير موجود.
جودة بوابة الدمج
حماية الفرع: عمليات التحقق الخضراء ومراجعة الكود ومعاينة الحالة عند الحاجة. الحد من استثناءات الطوارئ ومراجعتها. يجب ألا يصبح "تخطي CI" عادة.
بالنسبة للتطبيقات التالية، يمكن أن تكون ميزانيات الحزمة أو Lighthouse CI على المسارات الرئيسية في نفس البوابة، إذا ظلت مستقرة.
إمكانية ملاحظة خط الأنابيب نفسه
مراقبة فترات العمل ومهاجمة الاختناقات شهريًا. يجب أن تصل إشعارات الفشل إلى قناة الفريق بروابط أثرية. إن خط الأنابيب المتعفن يقتل الثقة كما تفعل الاختبارات المتعفنة.
الهدف النهائي: من الدفع إلى الثقة التي يمكن إطلاقها في دقائق معدودة، مع مسار آمن للإنتاج - وليس السرعة الخام بدون مكابح.
الأسئلة الشائعة
هل يجب علينا تشغيل مصفوفة المتصفح على كل العلاقات العامة؟
عادة لا. متصفح واحد لدخان العلاقات العامة يكفي؛ ضع المصفوفة قيد التشغيل ليلاً أو ما قبل الإصدار.
هل تريد تشغيل عمليات ترحيل قاعدة البيانات في CI أو في تمهيد التطبيق؟
في خطوة نشر يتم التحكم فيها مع النسخ الاحتياطية والقفل، وليس عند بدء التشغيل العشوائي متعدد المثيلات.
هل نحتاج إلى عدائين مستضافين ذاتيًا؟
عندما تتطلب التكلفة أو الشبكة الخاصة أو الأجهزة الخاصة ذلك. بخلاف ذلك، يكون بدء تشغيل المتسابقين المُدارين أسهل وأكثر أمانًا.
المعرفة والمقالات
تحتاج تطبيق هذه المفاهيم في منتجك؟
بارادايس كود معك من الاستشارة حتى التسليم الكامل.