تمرين - دفع تغيير عبر البنية الأساسية لبرنامج ربط العمليات التجارية
يمكنك في هذه الوحدة التدرب على سير عمل التعليمات البرمجية الكامل عن طريق إجراء تغييرات طفيفة على موقع Space Game إلى GitHub.
تم تكليف مارا بمهمة تغيير بعض النص على الصفحة الرئيسية لموقع الويب Index.cshtml. في هذه الوحدة، ستتابعها.
دعونا نستعرض بإيجاز الخطوات التي يجب اتباعها لإكمال المهمة:
- مزامنة المستودع المحلي مع أحدث
main
فرع على GitHub - إنشاء فرع للاحتفاظ بالتغييرات
- قم بإجراء تغييرات التعليمات البرمجية التي تحتاجها، وتحقق منها محليا
- دفع فرعك إلى GitHub
- دمج أي تغييرات حديثة
main
من الفرع على GitHub في فرع العمل المحلي، والتحقق من أن التغييرات لا تزال تعمل - ادفع أي تغييرات متبقية، وشاهد Azure Pipelines تقوم ببناء التطبيق، وإرسال طلب السحب الخاص بك
إحضار أحدث فرع رئيسي
في الوحدة السابقة، قمت بإنشاء طلب سحب ودمج فرعك code-workflow
في main
الفرع على GitHub. الآن تحتاج إلى سحب التغييرات للعودة إلى main
الفرع المحلي الخاص بك.
يجلب git pull
الأمر أحدث التعليمات البرمجية من المستودع البعيد ويدمجها في المستودع المحلي. بهذه الطريقة، تعرف أنك تعمل باستخدام أحدث قاعدة تعليمات برمجية.
في المحطة الطرفية، شغّل
git checkout main
للتبديل إلى الفرعmain
:git checkout main
لسحب أحدث التغييرات، قم بتشغيل هذا
git pull
الأمر:git pull origin main
يمكنك عرض قائمة الملفات التي تم تغييرها. كخطوة اختيارية، يمكنك فتح ملف azure-pipelines.yml للتحقق من أنه يحتوي على تكوين البناء الكامل.
تذكر أن مستودع Git حيث يتعاون أعضاء الفريق (مثل على GitHub) يسمى بعيد. هنا، يحدد الأصل مستودعك على GitHub.
لاحقا، ستقوم بإحضار التعليمات البرمجية للبداية من مستودع Microsoft GitHub، والمعروف باسم المصدر.
إنشاء تطبيق الويب وتشغيله
للتأكد من أن لديك نسخة عمل لبدء التغييرات الخاصة بك، قم بإنشاء وتشغيل تطبيق الويب محليا.
في Visual Studio Code، انتقل إلى نافذة المحطة الطرفية وقم بتشغيل الأمر التالي
dotnet build
لإنشاء التطبيق:dotnet build --configuration Release
قم بتشغيل الأمر التالي
dotnet run
لتشغيل التطبيق:dotnet run --configuration Release --no-build --project Tailspin.SpaceGame.Web
تلميح
إذا رأيت خطأ في المستعرض يتعلق بخطأ في الخصوصية أو الشهادة، فحدد Ctrl+C من المحطة الطرفية لإيقاف تشغيل التطبيق.
ثم قم بتشغيل
dotnet dev-certs https --trust
وحدد نعم عند مطالبتك بذلك، أو راجع منشور المدونة هذا للحصول على مزيد من المعلومات.بعد أن يثق الكمبيوتر في شهادة SSL المحلية، قم بتشغيل
dotnet run
الأمر مرة ثانية وانتقل إلىhttp://localhost:5000
من علامة تبويب مستعرض جديدة لرؤية التطبيق قيد التشغيل.
تحقق من تشغيل التطبيق
في وضع التطوير، يتم تكوين موقع Space Game لتشغيله على المنفذ 5000.
في علامة تبويب مستعرض جديدة، انتقل إلى http://localhost:5000
لمشاهدة التطبيق قيد التشغيل.
يجب أن تشاهد هذا:
يمكنك التفاعل مع الصفحة، بما في ذلك لوحة المتصدرين. عند تحديد اسم لاعب، سترى تفاصيل حول هذا اللاعب.
عند الانتهاء، ارجع إلى نافذة المحطة الطرفية وحدد Ctrl+C لإيقاف تشغيل التطبيق.
إنشاء فرع ميزة
في هذا القسم، ستقوم بإنشاء فرع Git بحيث يمكنك العمل على الملفات دون التأثير على أي شخص آخر. لن يعرف أحد أنك تعمل على هذه الملفات حتى تدفعها إلى المستودع البعيد.
لإنشاء فرع، يمكنك استخدام git checkout
الأمر وإعطاء الفرع الخاص بك اسما، تماما كما فعلت في الجزء السابق.
قبل إنشاء فرع، من الجيد الالتزام باصطلاح التسمية. على سبيل المثال، إذا كان فرعك مخصصا للعمل على ميزة جديدة، فقد تستخدم feature/<branch-name>
. لإصلاح الأخطاء، يمكنك استخدام bugfix/<bug-number>
. في هذا المثال، سيكون feature/home-page-text
اسم الفرع الخاص بك هو .
في المحطة الطرفية الخاصة بك، قم بتشغيل الأمر التالي git checkout
:
git checkout -B feature/home-page-text
مثل السابق، فإن feature/home-page-text
يستند إلى الفرع main
.
إجراء التغييرات واختبارها محليا
في Visual Studio Code، افتح Index.cshtml في دليل Tailspin.SpaceGame.Web/Views/Home .
ابحث عن هذا النص بالقرب من أعلى الصفحة:
<p>An example site for learning</p>
تلميح
يوفر Visual Studio Code أيضا طريقة سهلة للبحث عن نص في الملفات. للوصول إلى جزء البحث، حدد أيقونة عدسة التكبير في الجزء الجانبي.
استبدل النص في الخطوة السابقة بالنص التالي "خطأ في كتابة"، ثم احفظ الملف:
<p>Welcome to the oficial Space Game site!</p>
لاحظ أن كلمة "منسية" خاطئة عن قصد. سنعالج هذا الخطأ لاحقا في هذه الوحدة.
في المحطة الطرفية الخاصة بك، قم بتشغيل الأمر التالي
dotnet build
لإنشاء التطبيق:dotnet build --configuration Release
قم بتشغيل الأمر التالي
dotnet run
لتشغيل التطبيق:dotnet run --configuration Release --no-build --project Tailspin.SpaceGame.Web
في علامة تبويب مستعرض جديدة، انتقل إلى
http://localhost:5000
لمشاهدة التطبيق قيد التشغيل.يمكنك أن ترى أن الصفحة الرئيسية تحتوي على النص المحدث.
عند الانتهاء، ارجع إلى نافذة المحطة الطرفية، ثم اضغط على Ctrl+C لإيقاف تشغيل التطبيق.
تثبيت فرعك ودفعه
هنا ستقوم بإعداد التغييرات الخاصة بك إلى Index.cshtml، وتثبيت التغيير إلى فرعك، ودفع فرعك إلى GitHub.
شغّل
git status
للتحقق لمعرفة ما إذا كانت هناك تغييرات غير مثبّتة على الفرع:git status
سترى أنه أُجري تعديل على Index.cshtml. مثل السابق، فإن الخطوة التالية هي التأكد من أن Git يتتبع هذا الملف المُسمى staging.
شغّل الأمر التالي
git add
لعرض Index.cshtml:git add Tailspin.SpaceGame.Web/Views/Home/Index.cshtml
شغّل الأمر التالي
git commit
لتثبيت الملف المرحلي بالفرعfeature/home-page-text
:git commit -m "Improve the text at the top of the home page"
شغّل الأمر
git push
هذا لدفع الفرعfeature/home-page-text
أو تحميله إلى مستودعك على GitHub:git push origin feature/home-page-text
كما كان الحال من قبل، يمكنك تحديد موقع فرعك على GitHub من المربع المنسدل للفرع.
شاهد Azure Pipelines تنشئ التطبيق
تماما كما فعلت سابقا، تقوم Azure Pipelines تلقائيا بقوائم انتظار البنية عند دفع التغييرات إلى GitHub.
كخطوة اختيارية، تتبع البنية أثناء انتقالها عبر البنية الأساسية لبرنامج ربط العمليات التجارية، وتحقق من نجاح البناء.
قم بمزامنة أي تغييرات على الفرع الرئيسي
في أثناء انشغالك بالعمل على الميزة، قد تكون هناك تغييرات أُجريت على الفرع البعيد main
. قبل إنشاء طلب سحب، من الشائع الحصول على الأحدث من الفرع البعيد main
.
للقيام بذلك، قم أولا بسحب الفرع أو التبديل إليه main
، ثم دمج الفرع البعيد main
مع الفرع المحلي main
.
بعد ذلك، تحقق من فرع الميزات، ثم ادمج فرع الميزة مع main
الفرع.
لنجرب العملية الآن.
في المحطة الطرفية، قم بتشغيل هذا
git checkout
الأمر للتحقق منmain
الفرع:git checkout main
لتنزيل أحدث التغييرات على الفرع البعيد
main
ودمج هذه التغييرات في الفرع المحليmain
، قم بتشغيل هذاgit pull
الأمر:git pull origin main
نظرًا إلى أنه لا يُوجد أحد أجرى تغييرات بالفعل على الفرع
main
، فإن الأمر التالي يخرك بأن كل شيء مُحدّث بالفعل.From https://github.com/username/mslearn-tailspin-spacegame-web * branch main -> FETCH_HEAD Already up to date.
للتحقق من فرع الميزة، قم بتشغيل
git checkout
:git checkout feature/home-page-text
دمج فرع الميزات الخاص بك مع
main
:git merge main
مرة أخرى، نظرا لعدم قيام أي شخص بالفعل بإجراء أي تغييرات على فرعك
main
، ترى أن كل شيء لا يزال محدثا.Already up to date.
إذا قمت بتضمين أي تغييرات، فقد ترغب في اختبار طلبك مرة أخرى للتأكد من استمرار عمل كل شيء.
دفع الفرع المحلي مرة أخرى
عند دمج التغييرات من المستودع البعيد في فرع الميزات المحلي، تحتاج إلى دفع الفرع المحلي مرة أخرى إلى المستودع البعيد مرة ثانية.
على الرغم من أنك لم تقم بدمج أي تغييرات من المستودع البعيد، دعنا نتدرب على العملية لمعرفة ما يحدث.
قم بتشغيل هذا
git push
الأمر لدفع التغييرات إلى GitHub:git push origin feature/home-page-text
يفيد الرد، مرة أخرى، بأنك على علم بآخر التحديثات بالفعل نظرًا إلى عدم إجراء أي تغييرات.
Everything up-to-date
إرسال طلب سحب
في هذا القسم، يمكنك إرسال طلب سحب تماما كما فعلت سابقا.
في المتصفح، سجل الدخول إلى GitHub.
انتقل إلى مستودع mslearn-tailspin-spacegame-web الخاص بك.
في القائمة المنسدلة، حدد الفرع الخاص بك
feature/home-page-text
.لبدء طلب السحب، حدد Contribute ثم Open pull request.
تأكد من أن القائمة المنسدلة الأساسية تحدد المستودع الخاص بك وليس مستودع Microsoft.
هام
مرة أخرى، هذه الخطوة مهمة لأنه لا يمكنك دمج تغييراتك في مستودع Microsoft.
عند العمل مباشرة مع المستودع الخاص بك، وليس نسخة المستودع، يتم تحديد فرعك
main
بشكل افتراضي.أدخل عنوانا ووصفا لطلب السحب.
- العنوان: تحسين النص في أعلى الصفحة الرئيسية
- الوصف: تلقى أحدث نص للصفحة الرئيسية من فريق المنتج.
لإكمال طلب السحب، حدد إنشاء طلب سحب.
لا تدمج هذه الخطوة أي تعليمة برمجية. يخبر الآخرين أن لديك تغييرات تقترح دمجها.
يتم عرض نافذة طلب السحب. كما كان من قبل، يؤدي طلب السحب إلى تشغيل Azure Pipelines لإنشاء تطبيقك بشكل افتراضي.
اختياريا، حدد ارتباط التفاصيل أو انتقل إلى مشروعك على Azure DevOps وشاهد تشغيل البنية الأساسية لبرنامج ربط العمليات التجارية.
عند الانتهاء من البناء، ارجع إلى طلب السحب الخاص بك على GitHub.
حدد Merge pull request، ثم حدد Confirm merge.
حدد Delete branch لحذف الفرع
feature/home-page-text
من GitHub.