قم بإعداد سير العمل هذا لنشر تطبيقك تلقائيًا في الإنتاج وتبسيط عملية الإصدار.

Netlify عبارة عن نظام أساسي لاستضافة الويب ومجموعة شاملة من الأدوات لنشر تطبيقات الويب وإدارتها في السحابة.

لكن ميزاته تمتد إلى ما هو أبعد من ذلك - تتيح لك وظائفه التي لا تحتوي على خادم تشغيل التعليمات البرمجية من جانب الخادم بدون خادم مخصص.

استكشف كيفية إعداد خط أنابيب CI / CD لنشر واجهة برمجة تطبيقات Node.js REST على Netlify باستخدام إجراءات GitHub.

خطوط أنابيب CI / CD مع إجراءات GitHub: نظرة عامة

خطوط أنابيب التكامل المستمر والتسليم المستمر (CI / CD) هي سلسلة من العمليات الآلية المتسلسلة التي تخضع لها تطبيقات البرامج قبل شحنها إلى الإنتاج.

عادةً ما تتكون خطوط أنابيب CI / CD من عدة مراحل رئيسية ، بما في ذلك مراحل المصدر والبناء والاختبار والنشر.

في حين أنه من الممكن إجراء هذه المراحل يدويًا ، فإن التشغيل الآلي لها يوفر العديد من المزايا ، بما في ذلك:

  • التقليل من مخاطر الأخطاء البشرية.
  • تسريع عملية التحرير.
  • ضمان سير عمل متسق لشحن برامج الجودة إلى الإنتاج.

ما هي إجراءات جيثب؟

GitHub Actions هي أداة مدمجة في GitHub توفر مجموعة واسعة من الإجراءات التي تم إنشاؤها مسبقًا يمكنك استخدامه لتعريف سير العمل كرمز مباشرة في مستودع مشروعك لأتمتة CI / CD خطوط الأنابيب.

instagram viewer

يمكنك أيضًا إنشاء إجراءات مخصصة لتناسب احتياجات مشروعك المحددة ، مما يسمح لك بإنشاء ونشر التطبيقات لإنتاج خالٍ من المتاعب. تتمثل إحدى مزايا GitHub Actions في تكاملها السلس مع ميزات GitHub الأخرى ، مثل طلبات السحب وتتبع المشكلات.

هذا يجعل من الممكن بدء سير العمل بناءً على أحداث معينة ، مثل الالتزام الجديد الذي يضمن تشغيل خطوط أنابيب CI / CD تلقائيًا عند الحاجة.

قم بإعداد مشروع Node.js

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

مكدير اكسبرس نيتليفي
مؤتمر نزع السلاح - netlify

بعد ذلك ، قم بإنشاء ملف package.json ملف باستخدام npm ، مدير حزمة العقدة.

npm الحرف الأول

أخيرًا ، قم بتثبيت التبعيات المطلوبة في المشروع.

npm تثبيت صريح netlify-lambda serverless-http

ال netlify- لامدا تعمل الحزمة كخادم تطوير محلي يسهل اختبار الوظائف بدون خادم. خادم HTTP يساعد في تكييف تطبيقات Express.js مع تنسيق متوافق مع معالجات الوظائف التي لا تحتاج إلى خادم.

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

تدير هذه الوظائف المنطق من جانب الخادم ، وتعالج طلبات HTTP API ، وتخدم المحتوى الديناميكي ، وتوفر وظائف شبيهة بالواجهة الخلفية داخل نموذج بدون خادم.

يمكنك العثور على رمز هذا المشروع في ملف مستودع جيثب.

قم بإنشاء Express Web Server

قم بإنشاء ثلاثة مجلدات: حي, المهام، و src في الدليل الجذر لمجلد مشروعك.

قبل إعداد خادم Express ، قم بإنشاء ملف index.html ملف في حي مجلد. يعمل هذا الملف كعنصر نائب يسمح لـ Netlify بنشر تطبيق Express بنجاح وخدمة مسارات API.

الآن ، قم بإنشاء ملف src / app.js ملف وإضافة الكود التالي:

مقدار ثابت صريح = يتطلب("يعبر");
مقدار ثابت بدون خادم = يتطلب("بروتوكول http بدون خادم");

مقدار ثابت التطبيق = صريح () ؛
مقدار ثابت جهاز التوجيه = صريح. جهاز التوجيه () ؛

router.get ("/"، (مطلوب ، الدقة) => {
res.send ("مرحبا بالعالم!")
});

app.use (`/ .netlify / وظائف / التطبيق`، جهاز التوجيه) ؛

وحدة.exports = التطبيق ؛
وحدة.exports.handler = serverless (app) ؛

يحدد هذا الرمز خادم Express بمسار واحد لعنوان URL الجذر الذي يعالج طلبات GET. ال app.use تقوم الوظيفة بتسجيل البرامج الوسيطة للمسار مع تطبيق Express ، مما يضمن أن أي طلبات HTTP يتم إجراؤها على المسار /.netlify/functions/app سيتم التعامل معها بشكل صحيح بواسطة جهاز التوجيه ، حتى في بيئة الإنتاج.

وبالتالي ، إذا قمت بإضافة نقطة نهاية جديدة مثل /api/auth، سيكون متاحًا على /.netlify/functions/app/api/auth. أخيرًا ، يصدر الكود التطبيق السريع ووظيفة المعالج بدون خادم.

يسمح هذا بالاختبار المحلي للخادم ويضمن أنه يمكنك نشره كوظيفة بدون خادم على Netlify.

حدد ملف Netlify.toml

في الدليل الجذر ، قم بإنشاء ملف Netlify.toml ملف ، وأضف الكود التالي.

[يبني]
القاعدة = "/"
الأمر = "npm run build"
نشر = "/ dist /"
وظائف = "وظائف /"
[بناء.بيئة]
NODE_VERSION = "16"
[المهام]
External_node_modules = ["يعبر"]
node_bundler = "esbuild"
[[عمليات إعادة التوجيه]]
القوة = صحيح
من = "/ api / *"
الحالة = 200
إلى = "/.netlify/functions/app/:splat"
[[عمليات إعادة التوجيه]]
من = "/ *"
الحالة = 200
إلى = "/index.html"

يحدد الرمز إعدادات تكوين الإنشاء والنشر لتطبيق Express على Netlify. يتضمن إعدادات مثل الدليل الأساسي ، وأمر البناء ، ودليل النشر ، ودليل الوظائف.

بالإضافة إلى ذلك ، فإنه يحدد إعدادات إعادة التوجيه التي يجب أن تدير توجيه طلبات HTTP API ، مما يضمن توجيهها بشكل صحيح إلى وظائف Netlify بدون خادم.

قم بتحديث ملف Package.json

افتح ال package.json ملف وإضافة هذه الأوامر إلى كائن البرامج النصية.

"نصوص": {
"يبدأ": "netlify-lambda يقدم src",
"يبني": "netlify-lambda build src"
},

قم بتشغيل الأوامر التالية لإنشاء التطبيق وبدء تشغيله محليًا.

npm تشغيل البناء
بدء تشغيل npm

سيبدأ الخادم على المنفذ 9000. يمكنك المضي قدمًا واختبار API باستخدام Postman عن طريق تقديم طلبات إلى http://localhost: 9000 / .netlify / وظائف / تطبيق

أخيرًا ، قبل إعداد سير عمل إجراءات GitHub لأتمتة عمليات النشر على Netlify ، إنشاء مستودع على جيثب، ودفع ملفات المشروع.

انشر التطبيق السريع على Netlify

أولاً ، انشر واجهة برمجة التطبيقات على Netlify قبل تكوين سير عمل إجراءات GitHub. اتبع هذه الخطوات لنشر تطبيق Express على Netlify.

  1. رئيس لأكثر من نيتليفاي وإنشاء حساب وتسجيل الدخول إلى ملخص صفحة.
  2. حدد وانقر فوق المواقع فاتورة غير مدفوعة.
  3. اضغط على الاستيراد من Git زر وحدد جيثب كمنصة موفر Git. سيطالبك Netlify بالمصادقة مع GitHub لمنحه حق الوصول إلى حسابك ومستودعات المشروع.
  4. حدد مستودع Express project من قائمة المستودعات المعروضة.
  5. بعد تحديد المستودع ، تحتاج إلى تكوين إعدادات الإنشاء لعملية النشر. يبسط Netlify هذه العملية عن طريق الكشف التلقائي عن التقنية المستخدمة لإنشاء التطبيق وملء الحقول مسبقًا بإعدادات الإنشاء المطلوبة. في هذه الحالة ، أمر الإنشاء والنشر ودليل الوظائف.
  6. أخيرًا ، انقر فوق ملف نشر الموقع زر لإكمال العملية.

قم بإنشاء سير عمل إجراءات GitHub

اضغط على أجراءات علامة التبويب في مستودع GitHub الخاص بمشروعك. في ال التكامل المستمر ، حدد وانقر فوق قم بتكوين Node.js سير العمل.

من محرر GitHub ، أعد تسمية اسم الملف إلى Netlify.yml، احذف كود سير العمل boilerplate Node.js ، وأضف الكود أدناه:

اسم:يبنيونشرلنيتليفاي
على:
يدفع:
طلب سحب:
وظائف:
يبني:
يعمل على:أوبونتو -22.04
خطوات:
-الاستخدامات:الإجراءات / الخروج @ v3

# (بناء إلى ./dist أو دليل آخر... )

-اسم:نشرلنيتليفاي
الاستخدامات:nwtgck/[email protected]
مع:
نشر- دير:"./dist"
فرع الإنتاج:رئيسي
رمز جيثب:${{أسرار. GITHUB_TOKEN}}
نشر الرسالة:"النشر من إجراءات GitHub"
تمكين السحب طلب التعليق:خطأ شنيع
تمكين الالتزام التعليق:حقيقي
يستبدل-سحب-طلب-تعليق:حقيقي
env:
NETLIFY_AUTH_TOKEN:${{أسرار. NETLIFY_AUTH_TOKEN}}
NETLIFY_SITE_ID:${{أسرار. NETLIFY_SITE_ID}}
مهلة الدقائق:1

فيما يلي تفصيل لخصائص سير العمل:

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

أخيرًا ، التزم بالتحديثات التي تم إجراؤها على هذا الملف. يجب أن يقوم GitHub تلقائيًا بتشغيل سير العمل.

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

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

أضف متغيري البيئة مثل NETLIFY_SITE_ID و NETLIFY_AUTH_TOKEN إلى كل من متغيرات البيئة وأقسام أسرار المستودع في مستودع GitHub الخاص بك. بعد إجراء هذه التغييرات ، أعد تشغيل سير العمل. ستنشر Netlify تلقائيًا أي تغييرات لاحقة تدفعها باستخدام خط الأنابيب هذا.

انطلق واختبر واجهة برمجة التطبيقات باستخدام Postman عن طريق إرسال طلبات إلى عنوان URL هذا: /.netlify/functions/app.

تكوين خطوط أنابيب CI / CD باستخدام إجراءات GitHub و Netlify

من خلال استخدام وظائف Netlify التي لا تحتوي على خادم ، يمكنك نشر تطبيقات الويب الكاملة التي تشمل وظائف جانب العميل والخلفية على Netlify.

بالإضافة إلى ذلك ، يوفر إعداد خطوط أنابيب CI / CD للتطبيقات باستخدام إجراءات GitHub نهجًا مبسطًا لأتمتة عملية الإنشاء والنشر. يتيح لك ذلك تحديد تدفقات العمل التي تضمن عملية تطوير سلسة وموثوقة ، بدءًا من التفكير والتقدم حتى مرحلة الإصدار.