النشر في Live و Staging باستخدام Deploybot
نشرت: 2022-06-30إذا كنت تعمل في مجال تطوير الويب لفترة من الوقت ، فمن المحتمل أنك أخطأت في نقل الملفات أثناء محاولتك تحديث أحد المواقع. في أفضل سيناريو ، يمكنك إضافة مجموعة من الملفات التي يمكن التعرف عليها بسهولة إلى دليل وإزالتها لإصلاح الخطأ. نعم ، إنه يكلفك وقتًا وهو أمر مزعج ، لكن لا ضرر من ذلك.
في أسوأ السيناريوهات ، تقوم بنقل مجموعة من ملفات السمات بشكل غير صحيح. ثم عليك أن تكتشف أيها تم استبدالها ، والتي لا تنتمي على الإطلاق ، وكيف ستستعيد حالة العمل المناسبة لموضوعك على وجه الأرض.
سنقوم اليوم بمعالجة حل هذه المشكلة باستخدام Git و Deploybot لأتمتة عملية النشر الخاصة بك.
ما هو النشر الآلي؟
يتكون النشر الآلي الأساسي من أربع قطع كما هو موضح في هذا الرسم التخطيطي.

يبدأ معظم المطورين برموزهم والخادم فقط. يقومون بإجراء تغييرات على نسخة العمل الخاصة بهم من الموقع ، ثم يقومون بدفع هذه التغييرات مباشرة إلى الخادم عبر FTP. أدوات مثل Coda أو Dreamweaver لها تكامل مباشر مع FTP بحيث يمكنك القيام بذلك من داخل بيئة الترميز الخاصة بك.
الخطوة التالية التي يتخذها العديد من المطورين هي إضافة موقع مرحلي بحيث لا يقوموا بتعديل الخادم المباشر مباشرة. يمكنك فعل ذلك بشيء مثل VVV أو MAMP. غالبًا ما يعني هذا أيضًا أنك تستخدم نظامًا للتحكم في الإصدار مثل Git لإدارة التغييرات التي تجريها على موقع العمل المحلي الخاص بك.
عندما تضيف موقعًا مرحليًا ، فإنك تضيف أيضًا التعقيد. كيف تحصل على تغييرات التعليمات البرمجية الخاصة بك من موقع العمل المحلي الخاص بك إلى موقع مرحلي حيث يمكن لعميلك رؤية التغييرات؟ نعم ، كما قلت سابقًا ، يمكنك استخدام عميل FTP أساسي مثل FileZilla أو Transmit أو Forklift لنقل الملفات أثناء إجراء التغييرات ، ولكن هذا عرضة للخطأ وهذا هو المكان الذي ستوفر لك فيه أتمتة عملية النشر الكثير من الوقت.
بدلاً من أخذ الملفات التي تقوم بتغييرها ودفعها إلى الخادم المرحلي ، فإنك تستخدم نظامًا آخر لاكتشاف التغييرات تلقائيًا في مستودع Git الخاص بك ودفع هذه التغييرات فقط إلى الموقع المرحلي الذي يمكن لعميلك استخدامه للتحقق من العمل.
لا يزال هذا يترك موقعك المباشر كتنشر يدوي ، وهو أمر مخيف كثيرًا لأنه قد يعني خسارة أموال حقيقية إذا قمت بإزالة موقع عمل مباشر. بدلاً من ذلك ، دعنا نفترض أنك ستقوم بإعداد نظام النشر الخاص بك للنشر تلقائيًا في التدريج ، وبعد ذلك سينشر نظامك بنقرة واحدة على البيئة الحية عندما تكون مستعدًا للانطلاق.
الآن لديك نظام يشبه هذا.

دعنا نتعمق في الأمر حتى أتمكن من توضيح كيفية إعداد عملية النشر هذه لكل عميل أعمل معه. هذه هي الخطوات التي أتخذها بمجرد أن أبدأ مشروعًا جديدًا. أتأكد دائمًا من إعداد عملية النشر الخاصة بي والعمل قبل أن أبدأ في القيام بأي عمل آخر في مشروع العميل.
كيفية هيكلة مستودع Git الخاص بك
خيارك الأول هو ما هو الدليل الذي ستقوم بإعداد النشر الآلي فيه؟ ما لم يطلب عميلي على وجه التحديد هذا التحكم الكامل في المصدر لتثبيت WordPress الخاص به ، فأنا أستخدم دليل wp-content لإعداد نظام النشر الآلي الخاص بي. يبدأ ذلك في Terminal بإصدار هذا الأمر الذي يهيئ مستودع git.
بوابة الحرف الأول
حان الوقت الآن لتجاهل الملفات التي لن ترغب في نشرها طوال الوقت. هذه هي ملفات مثل ملفات النسخ الاحتياطي والصور وأي من ملفات المشاريع المخصصة التي يضيفها العديد من محرري الأكواد إلى الدليل. يمكنك مشاهدة ملف .gitignore المعتاد أدناه.
config / app_config.yml
الملف config / database.yml
config / *. sphinx.conf
config / s3_credentials.yml
* ~
*.مخبأ
*.سجل
* .pid
tmp / ** / *
DS_Store
ديسيبل / cstore / **
ديسيبل / أبو الهول / **
doc / api
doc / التطبيق
doc / plugins
doc / *. نقطة
تغطية/*
ديسيبل / *. sqlite3
* .tmproj
* .sw؟
* .esproj
_ملحوظات*
dwsync.xml
podcast.xml
* .kpf
* تحميلات / *
* .swp
*.فكرة
* مشروع sublime
* .sublime-workspace
* / node_modules / *
العلامات
* .bak
مخبأ/*
managewp / *
مو-الإضافات / *
dp.php
التيار الصاعد/*
اللغات/*
ديسيبل
plugins / wp-Rocket / cache.json
لا تتردد في الإضافة أو الإزالة من هذا حسب الحاجة. يحتاج كل مشروع أعمل عليه تقريبًا إلى نوع من الإدخال المخصص لتجاهل بعض الملفات الخاصة بموقع العمل المحلي الخاص بي والذي سيكون لمواقع التدريج والمواقع الحية ملفها المخصص الذي لا أريد الكتابة فوقه.
من هنا حان الوقت لإنشاء الفروع التي ستحتاجها لبدء نظام النشر الخاص بك. أستخدم فرعين رئيسيين. الأول هو الفرع الرئيسي الذي يتوافق مع موقع الإنتاج المباشر الخاص بي. ثانيًا ، هو فرع أقوم بتسميته مرحليًا ويتوافق مع موقع التدريج الذي أريد أن يستخدمه عميلي كطريقة للتحقق من التغييرات التي نجريها.
عندما قمت بتهيئة مستودع Git ، فقد حصلت بالفعل على الفرع الرئيسي الخاص بك ، لذا استخدم هذا الأمر لإضافة فرع مرحلي وتحقق منه.
بوابة الخروج-ب التدريج
يقوم هذا الأمر بإنشاء فرع جديد والتحقق منه. إذا كنت مستخدمًا جديدًا لـ git ، فيمكنك العثور على مزيد من المعلومات حول الأوامر المتاحة في وثائق Git.
الآن ستحتاج إلى دفع مشروعك إلى نظام التحكم بالمصادر. Github و Bitbucket هما خياران شائعان يعملان مع نظام النشر الآلي الذي سنستخدمه يسمى Deploybot. عند إنشاء مستودع جديد باستخدام أي من الموقعين ، فسوف يعطونك المزيد من التوجيهات لإضافة مستودعك المحلي إلى نسختك عبر الإنترنت في Github أو Bitbucket.

- وثائق إعداد مستودع Bitbucket
- وثائق إعداد مستودع جيثب
إعداد Deploybot
عندما بدأت في العمل بشكل أكثر تعقيدًا كمطور ، ظل صديقي Duane يوصيني بـ Deploybot عندما اشتكيت عبر الإنترنت من العبث بالنشر اليدوي لبروتوكول FTP. استغرق الأمر عددًا من التوصيات قبل أن أفعل ما قيل لي أخيرًا ، لكنني الآن عميل Deploybot سعيد لسنوات.
في حين أن هناك طرقًا أخرى لنشر مواقعك ، فإن العديد منها يتضمن التفاعل مع Git Webhooks أو بعض ملفات تكوين النشر الآلي عبر محرر التعليمات البرمجية الخاص بك. هناك الكثير من القوة في تلك الأدوات الأخرى ، ولكن إذا كنت قد بدأت للتو في النشر الآلي ، فإن المضي قدمًا في شيء ما مثل Deploybot هو المكان المناسب للبدء.
للبدء ، قم بالتسجيل للحصول على حساب Deploybot وربط Github أو Bitbucket بحسابك. سأستخدم حساب Bitbucket الحالي الخاص بي اليوم. ابدأ بإضافة مستودع جديد إلى حساب Deploybot الخاص بك.


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

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

عند الانتهاء ، انقر فوق الزر حفظ في أسفل الصفحة للانتقال إلى تكوين الخادم الخاص بك.
في الصفحة التالية ، قم بتسميته كخادم مرحلي مرة أخرى وقم بوضع معلومات sFTP من موقعك. إذا لم تكن متأكدًا من مكان العثور عليها ، فاقرأ هذا الدليل المفيد.

مع إدخال معلومات sFTP الخاصة بك ، يمكنك التمرير لأسفل وحفظها. سيقوم Deploybot بعد ذلك باختبار اتصالك للتأكد من أن المعلومات التي قدمتها تعمل. حان الوقت الآن لإجراء النشر الأولي للموقع للتأكد من أن كل شيء يعمل. غالبًا ما أقوم بإضافة ملف test.txt إلى النشر كطريقة سهلة للتحقق من أن النشر يعمل بشكل صحيح.
لبدء النشر في محفوظات البيئة الخاصة بك وانقر فوق "نشر".

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

تحقق الآن من نشر ملفاتك على موقع التدريج ويمكننا إعداد النشر المباشر.
للنشر المباشر ، تأكد من عدم اختيار النشر التلقائي وتأكد من اختيار الفرع الرئيسي كمصدر للنشر. نريد أن يكون هذا نشرًا يدويًا عندما نكون مستعدين لدفع التغييرات إلى موقعنا المباشر.
للقيام بذلك ، ستحتاج إلى التحقق من الفرع الرئيسي الخاص بك ثم دمج التغييرات من الفرع المرحلي إلى الفرع الرئيسي.
يمكنك القيام بذلك باستخدام هذه الأوامر.
بوابة الخروج سيد
git merge staging
بوابة دفع الأصل الرئيسية
الآن عندما تنتقل إلى حساب Deploybot الخاص بك ، ستتمكن من نشر تغييراتك يدويًا تمامًا كما فعلنا مع نشرنا الأولي في بيئتنا المرحلية. بالنسبة لبيئتك الحية ، تأكد من تغيير رسالة النشر لتلائم التغييرات التي يتم دفعها إلى موقعك المباشر. يجب عليك أيضًا إنشاء نسخة احتياطية من موقعك. يمكنك القيام بذلك عن طريق الوصول إلى تنقل النسخ الاحتياطية على موقعك ثم إنشاء نسخة احتياطية يدوية.

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