Orbit

نشر مشروعك

Once a repository is connected, Orbit deploys on every push to your production branch: it clones the commit, installs dependencies, runs your build, packages the output and starts serving it. This…

بمجرد توصيل مستودع، ينشر Orbit على كل دفع إلى فرع الإنتاج الخاص بك: فهو ينسخ الالتزام، ويثبت التبعيات، ويشغل البناء، ويعبئ المخرجات ويبدأ في خدمتها. يغطي هذا الدليل دورة النشر الكاملة، وكيفية تشغيل واحد يدويًا، والعناصر التحكم التي تحدد متى يُسمح للنشر بالبث المباشر.

كيفية عمل النشر التلقائي

كل دفع إلى الفرع المعين كـ Production branch في Settings، ثم Git، ينشئ نشرًا. بعد ذلك ينفذ Orbit:

  1. استقبال حدث الدفع من GitHub أو GitLab أو Bitbucket.
  2. وضع النشر في قائمة الانتظار وتخصيص فتحة بناء له.
  3. استنساخ المستودع الخاص بك في هذا الالتزام بالذات.
  4. استعادة node_modules المخزن مؤقتًا إذا كان تخزين مؤقت للبناء متاحًا في خطتك.
  5. تشغيل أمر التثبيت (npm ci أو yarn install أو pnpm install، المكتشفة من ملف القفل الخاص بك).
  6. تشغيل أمر البناء.
  7. عبوة دليل المخرجات في تعرض النشر وتحميله.
  8. تبديل البيئة لخدمة التعرض الجديد.

تعرض صفحة تفاصيل النشر هذه كـ Build phases المسماة: Clone و Cache restore و Install و Cache save و Build و Upload و Done. ينتهي معظم المشاريع في دقيقة إلى ثلاث دقائق.

نظرة عامة على مشروع Orbit تعرض أحدث بناء

حالات النشر

الحالةالمعنى
Queuedفي انتظار فتحة بناء. تعرض صفحة النشر موضعك في قائمة الانتظار
Awaiting approvalمعلقة لأن Require approval for production مفعلة. يجب على شخص ما الموافقة عليها
Buildingتثبيت التبعيات وتشغيل أمر البناء الخاص بك
Deployingانتهى البناء، يتم وضع التعرض الجديد أمام حركة المرور
Succeeded (shown as Live)خدمة حركة المرور. يحمل النشر شارة CURRENT
Failedحدث خطأ في خطوة البناء أو النشر. افتح السجل لمعرفة أين
Cancelledتوقف قبل الانتهاء، بواسطتك أو بفرع أحدث إلى نفس الفرع
Rolled backحل محله الاسترجاع إلى بناء سابق

مراقبة البناء قيد التقدم

يعرض Overview للمشروع البناء الحالي مع سجل بث مباشر في لوحة Latest build. انقر فوق Full details لفتح صفحة تفاصيل النشر، التي تضيف شريط تقدم البناء والوقت المتبقي المقدر وموضع قائمة الانتظار والمسار الزمني للبناء مقسم حسب المرحلة.

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

تشغيل نشر يدويًا

هناك أربع طرق للنشر بدون دفع التزام جديد.

إعادة نشر أحدث التزام

  1. افتح المشروع.
  2. افتح علامة التبويب Deployments.
  3. انقر على النشر الذي تريده لفتح صفحة تفاصيله.
  4. انقر فوق Retry build. استخدم More retry options، ثم Retry with cleared cache، إذا اشتبهت في وجود تبعية مخزنة مؤقتًا.

النشر الآن

زر Deploy now في علامة التبويب Deployments ينشئ بناء طازجًا لرأس الإنتاج الحالي.

جدولة نشر

يمكن جدولة النشر لوقت مستقبلي. ينتقي Orbit الالتزام في اللحظة التي تجدول فيها، لذا فإن البناء الذي يتم تشغيله لاحقًا هو الرمز الذي وافقت عليه، وليس ما وصل بينهما.

نوافذ النشر

نافذة النشر عبارة عن عنوان URL سري ينشئ بناءً عند إرسال شيء ما طلب POST إليها. استخدمها لإعادة البناء من CMS بدون رأس أو وظيفة cron أو خط أنابيب CI. قم بإعدادها في علامة التبويب Hooks للمشروع. انظر Triggering Deployments Via Deploy Hooks.

إعدادات البناء

Orbit يكتشف الافتراضيات المعقولة لمعظم المشاريع. تجاوز أي منها في Settings، ثم Build settings:

الحقلعنصر نائب عند الترك فارغًاأمثلة
أمر التثبيتnpm ci (auto-detected)npm ci و yarn install --frozen-lockfile و pnpm install
أمر البناءnpm run build (auto-detected)npm run build و next build و vite build و astro build
دليل الإخراجdist (auto-detected)dist و .next و out و build و .output
دليل الجذر/ (monorepo subdirectory)apps/web
إصدار Node.jsافتراضي المنصة18 و 20 و 22

اترك حقلاً فارغًا للحفاظ على القيمة المكتشفة تلقائيًا. التفاصيل الكاملة، بما فيها القيم لكل إطار عمل والأخطاء التي تسبب فشل النشر الأول، موجودة في Configuring Your Build Command and Output Directory.

يفعل تعيين Root directory أكثر من مجرد تغيير دليل العمل. يتم تخطي الدفعات التي تغير الملفات فقط خارج هذا المسار تلقائيًا، لذا لا تعيد بناء monorepo كل تطبيق على كل التزام.

تحديد متى يُسمح بالنشر

لدى Orbit عدة بوابات مستقلة. كل منهم يعيش في Settings.

أقفال النشر

استخدم قفلاً لتجميد الإنتاج أثناء حادث أو نافذة صيانة أو تجميد الرمز.

  1. افتح المشروع.
  2. انقر فوق Lock deploys.
  3. أضف سببًا اختياريًا.

أثناء القفل، يتم تخطي نشري الإنتاج المشغلة بالدفع بصمت وتقرأ لافتة Production deploys are locked مع سببك. النشر اليدوي لا يزال يعمل، وهو مقصود: القفل يوقف نشر عرضي، وليس الإصلاح الذي تحاول نشره. انقر فوق Unlock deploys لرفعه.

المطلوب الموافقة لـ الإنتاج

قم بتشغيل Require approval for production ضمن Deploy protection. ثم توقف نشري الإنتاج المشغلة بالدفع في Awaiting approval حتى يفتح شخص ما النشر وينقر فوق Approve أو Reject. لا تتأثر نشري لوحات التحكم ونوافذ النشر.

المطلوب نجاح المرحلة الإعدادية أولاً

Require staging success before production يحتفظ بنشر الإنتاج المشغل بالدفع حتى تنشر بيئة المرحلة الإعدادية نفس الالتزام بنجاح. يمكن لشخص ما أن يوافق يدويًا على تخطي الانتظار.

فحوصات CI المطلوبة

بوابة النشر على CI الخاص بك ضمن CI required checks. على GitHub، أدخل أسماء وظائف Actions مفصولة بفواصل وجميعها يجب أن تمر. على GitLab، أي قيمة غير فارغة تنتظر خط الأنابيب بالكامل. فشل CI يلغي نشر Orbit تلقائيًا.

جدول تجميد النشر

Deploy freeze schedule يمنع نشري المشغلة بالدفع خارج النوافذ المعتمدة: كتلة نهاية الأسبوع أو نطاق ساعة مسموح به أو كليهما. جميع الأوقات بتوقيت UTC. النشر اليدوي ونوافذ النشر غير متأثرة.

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

تخطي البنايات التي لا تحتاجها

  • مسارات مجاهلة: أنماط glob مفصولة بفواصل. إذا طابق كل ملف في دفعة، يتم تخطي البناء. *.md,docs/** يوقف التزام التوثيق من تشغيل النشر.
  • أنماط تجاهل الفرع: يتم تخطي الدفعات من الفروع المطابقة بالكامل. dependabot/*,renovate/* هي الحالة الشائعة.
  • نشر علامات Git: النشر للإنتاج عند دفع علامة مطابقة باستخدام glob مثل v*.

بناء ذاكرة التخزين المؤقت

Orbit يخزن node_modules مؤقتًا بين البنايات في خطط Liftoff و Apex. عند استخدام تثبيت مخزن مؤقتًا، يعرض النشر شارة Cache hit وتكون مرحلة التثبيت أقصر بكثير. بدلاً من ذلك يعرض بناء بارد Cold build.

لفرض إعادة تثبيت كاملة، افتح Settings، ثم Clear build cache، وأكد. يتم تشغيل النشر التالي لكل بيئة بتثبيت كامل من الصفر.

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

عندما يسوء النشر

يمكن لـ Orbit أن تمسك بنشر سيء لك بدلاً من تركه مباشرًا:

  • الاسترجاع التلقائي عند الفشل يستعيد آخر نشر صحي تلقائيًا إذا فشل نشر الإنتاج.
  • فحص الصحة يجلب مسارًا تختاره بعد كل نشر إنتاج. استجابة غير 2xx في غضون 15 ثانية تستعيد النشر الصحي السابق.
  • اختبارات الدخان تشغل طلبات GET ضد ما يصل إلى 10 مسارات بعد كل نشر ناجح وتسجل نجح أو فشل. في الاقتران مع الاسترجاع التلقائي، فشل اختبار الدخان يسترجع النشر.

لإرجاع نشر بنفسك، انظر Rolling Back a Deployment. لمعرفة سبب فشل البناء، انظر Troubleshooting Failed Builds.

هل تحتاج إلى مساعدة إضافية؟

راسلنا على البريد الإلكتروني support@kapsulehost.com أو افتح محادثة في KPanel.

فتح KPanel