النشر السريع أو كيفية نشر الواجهة الأمامية في 15 دقيقة

لطالما كان لدينا سؤال: ما مدى سهولة وسرعة نشر مشروع أمامي؟

فكرنا في أداة مثل Jenkins. يعرف العديد من الأشخاص الذين قاموا بتكوينه أن الأمر يستغرق الكثير من الوقت للتكوين ، والأهم من ذلك ، يتطلب الكثير من موارد النظام. رفعه على الخادم يعني تخصيص ذاكرة ونصف غيغابايت. إنه لمن دواعي سروري عندما يكون لديك 500 ميغابايت لكل شيء ، على سبيل المثال.

البديل هو مينا. هذا حل رائع ونستخدمه في مشاريع روبي. ولكن ماذا لو كان لديك واجهة أمامية فقط؟ ضع روبي واصنع حزمة؟ لا ، الأمر معقد للغاية. لدى مينا ، بالطبع ، وظائف رائعة ، لكننا نريد القيام بذلك على NodeJS بدون إيماءات غير ضرورية.

في النهاية ، كتبنا نصوص باش ، لكنها أزعجتنا. وقد توصلنا إلى فكرة كتابة الخدمة الصغيرة الخاصة بنا لنشر التطبيقات الأمامية ، والتي ستكون:

  • حزمة npm
  • لديك تكوين صغير وبسيط
  • يستغرق 10 دقائق لتكوينه و 5 دقائق للنشر
  • أن يكون لديك نظام تحرير (إذا حدث شيء ما بعد كل شيء خطأ ويقول أحدهم "إنه كذلك
كسر ، ثم يمكنك العودة بأمان وبسرعة إلى الإصدار السابق)

وقمنا بجعل Runy - أداة ملائمة وعملية لنشر الواجهة الأمامية.

كل ما تحتاجه لتكوينه والنشر الأول بعد تثبيت الحزمة هي ثلاثة أوامر:
الحرف الأول - قم بإنشاء تكوين وأدخل بياناتك فيه
الإعداد - إنشاء هيكل مشروع
نشر - نشر مشروعك

هذا كل ما في الأمر!

لقد عملت هذه الوحدة على تبسيط حياتنا! الآن يتم النشر في فريق واحد. سريع وسهل. عندما يأتي إلينا مطورين جدد ، يمكنك منحهم حق الوصول إلى خادم dev / stage حتى يتمكن الرجال من نشر أنفسهم. سيجد المطورون الصغار أيضًا أنها مفيدة ، ولا يحتاجون إلى حد دخول للاستخدام ، وفي المستقبل يمكنهم اكتشاف الوحدة واكتساب المعرفة الجديدة.

القليل عن الجزء التقني (يوجد دليل أكثر تفصيلاً على جيثب ). لدى Runy حاليًا الأوامر التالية: init ، و setup ، و النشر ، و unlock ، و rollback.

الأولي


يقوم بإنشاء ملف تكوين في موقع استدعاء الأمر. يجب عليك إدخال بياناتك فيه. كما ترى ، نحن نستخدم اتصال وكيل ssh ، لذلك لن تكون هناك كلمات مرور في التكوين.

// runy.js module.exports = { host: '0.0.0.0', //   username: 'username', //       port: 22, //   remotePath: '/your/project/path', //      git: 'link-to-your-git-repository', //  ( ssh)    agent: process.env.SSH_AUTH_SOCK, //   commands: [ //      'npm install', 'npm run build', ], }; 

الإعداد


في المسار المحدد في التهيئة ، يقوم بإنشاء مجلد الإصدارات (يقوم بتخزين الإصدارات في الأرقام 1 و 2 و 3 وما إلى ذلك) وملف .current.release (يتم تخزين رقم الإصدار الحالي فيه).

انشر


يتمتع هذا الفريق ببعض الحماية ، وفي الوقت نفسه يمكن لشخص واحد فقط نشر.

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

افتح


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

التراجع


إرجاع ارتباط رمزي إلى الإصدار السابق وحذف الإصدار الحالي.

ملاحظة لا يزال لدينا أفكار لتطوير هذه الأداة ، يمكنك أيضًا المشاركة في تطوير المشروع من خلال إنشاء / تنفيذ المهام هنا .

دع نشر كل مطور يصبح أكثر ملاءمة وأسرع.

Source: https://habr.com/ru/post/ar413495/


All Articles