المواقع الإلكترونية
معاينة النشرات للطلبات المسحوبة
Preview deploys give every pull request its own live URL, built from that branch's code, so reviewers can click through the actual change instead of reading a diff and guessing. Each preview updates…
معاينة عمليات النشر تعطي كل طلب سحب عنوان URL مباشر خاص به، مبني من رمز الفرع هذا، بحيث يمكن للمراجعين النقر من خلال التغيير الفعلي بدلاً من قراءة الفرق والتخمين. يتم تحديث كل معاينة عند دفع التزام جديد ويتم تنظيفها تلقائياً عند إغلاق طلب السحب.
مكان وجود معاينة عمليات النشر
افتح Websites، انقر على الموقع، افتح قائمة Environments في شريط علامات التبويب الخاص بالموقع، واختر Preview. تحمل الصفحة عنوان Preview deploys.
تنفصل المعاينات عن الإعداد. الإعداد عبارة عن نسخة واحدة طويلة الأجل من الموقع التي تدفعها بشكل مقصود؛ المعاينة عبارة عن بيئة قصيرة الأجل يتم إنشاؤها لكل طلب سحب والتخلص منها لاحقاً. تستخدم العديد من الفرق كليهما. اطلع على Staging Environments للنصف الآخر.

إعداد النشر من Git أولاً
المعاينات ليست ميزة مستقلة. فهي تعيد استخدام مفتاح النشر وأمر البناء لموقع الإنتاج، لذا يجب أن يحتوي الموقع على تكوين نشر Git يعمل بشكل صحيح قبل تمكين المعاينات.
إذا لم يتم تكوين Git Deploy، تقول الصفحة Set up Git deploy first وتقدم زراً Go to Git deploy بدلاً من نموذج التفعيل. اعمل من خلال Deploying a Site From Git، ثم عد.
إذا كان Git Deploy متصلاً ولكن بدون أمر بناء، فإن صفحة Preview تعرض تحذيراً. ستفترض المعاينات أن المستودع مبني بالفعل، مع ملفات ثابتة في الجذر. هذا صحيح لموقع HTML عادي وخاطئ لأي شيء يتم تجميعه، لذا عيّن أمر بناء على صفحة Git Deploy إذا كان مشروعك يحتاج واحداً.
تفعيل المعاينات
- في بطاقة Enable preview deploys، اكتب المستودع في نموذج
owner/repo. ليس عنوان URL، وليس عنوان SSH: فقط القطعتان، على سبيل المثالacme/marketing-site. - انقر على Enable.
أي شيء لا يتطابق مع owner/name يتم رفضه برسالة Repo must be in owner/name format.
بعد التفعيل مباشرة، يعرض KPanel سر التوقيع الخاص بـ webhook في بطاقة بعنوان Copy your webhook secret now، مع تحذير بأنك لن تراه مرة أخرى.
انسخ السر قبل مغادرة الصفحة. يتم إنشاؤه مرة واحدة وغير قابل للاسترجاع لاحقاً. إذا فقدته، الحل هو إعادة إنشاؤه، مما يؤدي إلى إبطال الحل القديم ويعني تحديث webhook المستودع على أي حال.
إضافة Webhook إلى المستودع الخاص بك
تعرض البطاقة المكونة Webhook URL لصقها في إعدادات المستودع الخاص بك، ضمن Webhooks. كوّنه باستخدام:
- Payload URL: عنوان webhook الموضح على الصفحة.
- Secret: القيمة التي نسختها للتو.
- Content type: JSON.
- Events: أحداث طلب السحب، بالإضافة إلى الدفع، بحيث يتم إعادة بناء المعاينة للالتزامات الجديدة في طلب سحب مفتوح.
بمجرد وضع ذلك في مكانه، سيؤدي فتح طلب سحب إلى بناء معاينة خلال بضع دقائق. تتحقق مهمة خلفية عن عمل معاينة جديد كل دقيقة، لذلك لا حاجة لالتزام بأي شيء في KPanel.
عناوين URL للمعاينة
تحصل كل معاينة على اسم مضيف خاص بها من النموذج pr-<pull-request-number>-<site-id>.kapsulecloud.app، مغطى بشهادة عام بحيث يتم تقديمه عبر HTTPS بدون خطوة شهادة من جانبك.
الطريقة الموثوقة لفتح واحد هي الزر Open على صف المعاينة في Recent previews، الذي يحمل عنوان URL الدقيق الذي تم تقديمه لهذا البناء. الصق هذا الرابط في طلب السحب بحيث لا يضطر المراجعون إلى العثور على KPanel على الإطلاق.
قراءة قائمة المعاينات الحديثة
يسرد قسم Recent previews أحدث المعاينات، الأحدث أولاً. يعرض كل صف رقم طلب السحب والعنوان والفرع والالتزام والحالة:
| الحالة | المعنى |
|---|---|
| BUILDING | النسخ والبناء الآن |
| LIVE | العرض على عنوان URL الخاص به للمعاينة |
| FAILED | فشل البناء. وسّع السجل لترى السبب |
| DESTROYED | تم تنظيفه، عادة لأن طلب السحب مغلق |
انقر على Toggle build log على صف لتوسيع مخرجات البناء الخاصة به في السطر. هذا السجل هو أول مكان للبحث عندما تفشل المعاينة، وهو نفس الإخراج الذي ستنتجه عملية البناء محلياً.
إذا كانت القائمة فارغة، تقول الصفحة ذلك: افتح طلب سحب على المستودع وسيتم بناء معاينة خلال دقائق.
تدوير سر Webhook
انقر على Regenerate secret في البطاقة المكونة. يطلب منك KPanel التأكيد، ويوضح بشكل صريح أن السر الحالي يتوقف عن العمل على الفور وستحتاج إلى تحديثه في إعدادات webhook الخاصة بمستودعك بعد ذلك.
يتم عرض السر الجديد مرة واحدة، في نفس بطاقة المرة الواحدة كما هو الحال من قبل. انسخه، ثم حدّث webhook في المستودع الخاص بك. بين هاتين اللحظتين، يتم رفض تسليمات webhook الواردة، لذا قم بالخطوتين متتاليتين.
أعد إنشاء السر عندما يترك شخص لديه حق الوصول إلى مسؤول المستودع، أو إذا تم لصق السر في أي وقت في مكان لا يجب أن يكون موجوداً، مثل قناة دردشة مشتركة أو تذكرة.
إيقاف المعاينات
انقر على Disable. يتم إيقاف التكوين ويتم حذف السر المخزن. تتوقف المعاينات الموجودة عن إعادة البناء.
قم بالتنظيف بحذف webhook في المستودع الخاص بك أيضاً. سيبدأ بالفشل بدلاً من القيام بأي شيء ضار، لكن webhook الذي يرجع أخطاء إلى الأبد يعتبر ضوضاء في سجل التسليم الخاص بمستودعك.
التكاليف والصيانة
تقوم المعاينات بالبناء والخدمة على رمز حقيقي، لذا فهي تستخدم نفس الموارد مثل أي نشر آخر على الموقع. تحافظ عادتان على التحكم فيها:
- أغلق طلبات السحب التي لم تعد تعمل عليها. يحتوي طلب السحب المغلق على تنظيف معاينة تلقائياً.
- لا تشير المعاينات إلى بيانات اعتماد الإنتاج. امنحهم مفاتيح اختبار من خلال علامة التبويب Secrets من بيئة preview، الموجودة بالضبط لذلك لا يمكن الخلط بين تكوين المعاينة والإنتاج.
عنوان URL للمعاينة ليس خاصاً. إنه اسم مضيف حقيقي يمكن الوصول إليه علناً مع شهادة صحيحة، وأي شخص لديه الرابط يمكنه فتحه. لا تستخدم معاينة لمراجعة أي شيء يحتوي على بيانات عملاء حقيقية، ولا تبدأ بيئات المعاينة من قاموس قاعدة بيانات الإنتاج.
استكشاف الأخطاء
لا يتم بناء أي شيء عند فتح طلب سحب. تحقق من التسليمات الأخيرة للـ webhook في المستودع الخاص بك. رمز 401 أو 403 يعني أن السر لا يطابق، لذا أعد إنشاؤه وحدّث كلا الطرفين. عدم وجود تسليم على الإطلاق يعني أن webhook غير مشترك في أحداث طلب السحب.
تبني المعاينة ولكنها تعرض قائمة دليل أو 404. دليل الإخراج على صفحة Git Deploy لا يطابق المكان الذي يكتب فيه البناء الفعلي. ترث المعاينات هذا الإعداد من الإنتاج.
البناء يفشل فقط في المعاينة. السبب الأكثر شيوعاً هو اعتماد أو متغير بيئة موجود في الإنتاج ولكن لم يتم إضافته أبداً إلى بيئة المعاينة. تحقق من علامة التبويب preview على صفحة Secrets.
عنوان URL للمعاينة يتوقف عن العمل. انظر إلى الحالة على صفه. DESTROYED يعني أن طلب السحب أغلق وتم استرجاع البيئة، وهي السلوك المقصود.
أين تذهب بعد ذلك
- Deploying a Site From Git، التكوين الضروري.
- Storing App Secrets For a Site لأوراق اعتماد لكل بيئة.
- Staging Environments لنسخة ما قبل الإنتاج الدائمة.