إنشاء قالب خط أنابيب
تُكتَب قوالب خطوط الأنابيب في إعدادات مساحة العمل. عنصر خطوط الأنابيب في الشريط الجانبي لمساحة العمل هو طابور التشغيلات لا قائمة القوالب، ولا إجراء فيه لإنشاء قالب.
لما يعنيه كل نوع خطوة ومفتاح جسم وحقل إعداد، انظر أنواع خطوات خط الأنابيب.
إنشاء قالب
قسم بعنوان “إنشاء قالب”- انتقل إلى الإعدادات ← مساحة العمل ← قوالب خطوط الأنابيب
(
/workspaces/<workspace-id>/settings/pipelines). - انقر قالب جديد.
لا حوار للمعرّف. يفتح المحرّر فورًا على هيكل مبذور
باسم خط أنابيب جديد، وبمعرّف يُخصَّص تلقائيًا (pipeline_1 ثم
pipeline_2، …). انقر العنوان في الترويسة لإعادة تسميته.
اللوحة ليست فارغة: عقدة دخول Trigger، وعقدة وكيل موجّه بعنوان
Step، وحارس terminal يختم التشغيل. الحارس غير مرسوم. يعيد المحرّر توصيل
ذلك الطرف المخفي إلى كل عقدة بلا مخرج يمكن بلوغها، فالعمل الذي توصله بعد
Step يبقى يعمل.
إضافة العقد
قسم بعنوان “إضافة العقد”يبقى الشريط الجانبي مكتبة العقد على يسار المحرّر. صفِّها بمربع البحث في العقد واسحب عنصرًا إلى اللوحة. تستقر العقدة حيث تفلتها، بلا اتصال وارد.
| عقدة اللوحة | نوع الخطوة | ما تفعله |
|---|---|---|
| سكربت Bash | listen | يشغّل سكربت صدفة مع استبدال {{state}}، بلا إرسال وكيل |
| فتح محادثة | listen | يفتح المساحة الظاهرة الوحيدة للتشغيل وسحبها، وتنضم عقد الوكيل إلى هذه الغرفة |
| استنساخ فرع طلب السحب | listen | يكتشف فرع رأس طلب السحب عبر gh pr view ويستنسخه في دليل التشغيل |
| نشر تعليق على طلب السحب | listen | ينشر النتائج المجمَّعة على طلب السحب كتعليق مراجعة على GitHub |
| مراجع (موجّه) | listen | يرسل وكيل مراجعة متخصصًا، ويُعلَّق حتى يسلّم الوكيل نتيجته |
| تجميع (دمج) | join | ينتظر عدة فروع سابقة، ثم يطلب من وكيل تجميع مخرجاتها |
| موجّه مخصّص | listen | عقدة عامة يحركها موجّه، وتمر عبر جسم promptAgent |
| النشر في مساحة | listen | يرسل رسالة إلى مساحة مراسلة |
| شرط / تفريع (router) | router | يفرّع المسار حسب قيمة في الحالة |
| إن وُجد ملف (router) | router | يوجّه "true" حين يوجد مسار تحت النسخة، وإلا "false" |
| وجود أي ملف (router بـ OR) | router | يوجّه "true" حين يوجد أي مسار من القائمة |
| كل الشروط (router بـ AND) | router | يوجّه "true" فقط حين يوجد كل مسار في القائمة |
| إرسال الفريق | listen | يرسل فريقًا كاملًا ويُعلَّق حتى ينتهي |
| بوابة الموافقة | listen | يتوقف انتظارًا لقرار موافقة |
| لكل عنصر (map) | forEach | يصيغ موجّهًا لكل عنصر، ثم يرسل الوكيل مرة واحدة بهذه الموجّهات مضمومة |
| استدعاء خط أنابيب فرعي | listen | يشغّل قالبًا آخر كخطوة متداخلة |
| تنظيف أشجار العمل | listen | يزيل أشجار العمل المعزولة القديمة، بشكل حتمي وبلا إرسال وكيل |
تجمعها المكتبة تحت التدفق والمنطق ومراجعة PR والوكلاء والمراسلة والكود. لا توجد مجموعة Demo.
توصيل العقد
قسم بعنوان “توصيل العقد”لكل عقدة عمل مقبض إخراج دائري على حافتها اليمنى. اسحب من ذلك
المقبض إلى عقدة أخرى لوصلها. مشغّلات البدء كذلك: لكل واحد مقبضه، فسلك يخرج من
جدولة لا يخرج معه من تشغيل يدوي. انقر إضافة خطوة (+) بعد العقدة
مباشرة لتدرج نوعًا بعدها. مرّر المؤشر فوق منتصف حافة قائمة وانقر × لفصل الاتصال.
تُحرَّر الاتصالات أيضًا من العقدة التي تستقبلها:
- حدّد العقدة التالية. تفتح لوحة إعداداتها على اليمين.
- انزل إلى المشغّلات من وانقر شريحة كل عقدة سابقة ينبغي لهذه العقدة أن تستمع إليها. النقر على شريحة محددة يزيل الاتصال.
- إن كانت عقدة سابقة من نوع router، يظهر قسم مفاتيح التوجيه تحت
الشرائح، وفيه حقل مفتاح التوجيه من <عقدة> لكل حافة router. أدخل
المفتاح الذي تُطلقه تلك الحافة:
trueأوfalseلعقد وجود الملف، أو اسم الحالة لوضع تفريع.
كل عقدة مشغّل نقطة دخول. قد تستمع العقدة إلى عدة خطوات تسبقها وتغذّي عدة خطوات تليها، ويجب أن يبقى المخطط غير حلقي. لا شيء في المحرّر يمنع توصيل حلقة، فتحقق من عملك.
حارس terminal مستبعد من اللوحة، فلا يمكن تحديده.
يعيد المحرّر توصيله إلى كل عقدة بلا مخرج يمكن بلوغها كلما تغيّر المخطط، فالعمل
الذي توصله بعد عقدة Step المبذورة يبقى يعمل. المخطط الفارغ (مشغّل
بلا خطوات عمل تليه) يدرج المشغّل نفسه حتى يكتمل التشغيل فورًا.
تهيئة عقدة
قسم بعنوان “تهيئة عقدة”حدّد عقدة لتفتح لوحة إعداداتها. الحقول التي تظهر تعتمد على جسم العقدة.
لكل عقدة التسمية ومفاتيح الإدخال (مفصولة بفواصل) (مفاتيح الحالة التي تُقرأ وقت التنفيذ)، وتحت متقدم: المخفِّض والمهلة (مللي ثانية) ومحاولات الإعادة والمتابعة إذا فشلت هذه الخطوة ومخطط الإخراج (JSON). تستطيع عقد listen وjoin تبديل النوع بينهما.
فتح محادثة
قسم بعنوان “فتح محادثة”تضيف منتقي المستودعات المطلوب استنساخها (مستودعات مساحة العمل التي تُسحَب، والفراغ يعني لا شيء)، واسم المساحة، وخانة فتح محادثة فيها. حين تُفعَّل تلك الخانة، يسمّي حقل اسم المحادثة المجرى الذي تُفتح به الغرفة. عقد الوكيل تنضم إلى هذه الغرفة، ولا تفتح غرفة خاصة بها.
وكيل الموجّه
قسم بعنوان “وكيل الموجّه”تضيف الوكيل (الوكيل الذي يُرسَل)، وقالب الموجّه (استخدم {{key}}
للإشارة إلى المدخلات أو مخرجات الخطوات السابقة)، ومفتاح الإخراج.
المهلة (مللي ثانية) تُقاس بال_مللي ثانية_ لا بالثواني. 900000 يساوي 15 دقيقة.
إدخال 900 يمنح الخطوة 0.9 ثانية.
وضع المحادثة الذي تعمل تحته عقدة وكيل الموجّه ليس له حقل في المحرّر على
عقدة الوكيل. يُحمَل في extras['mode'] (chat أو plan أو review) على عقدة
فتح محادثة التي أنشأت الغرفة (الافتراضي review). ضبطه
على خطوة وكيل يُتجاهل. يُطابَق المفتاح حرفيًا، وأي كتابة أخرى
تُتجاهل بصمت.
سكربت Bash
قسم بعنوان “سكربت Bash”تضيف سكربت Bash. لا حقول لدليل العمل ولا للبيئة، فكلاهما غير قابل للضبط:
- تشترك كل خطوة bash في التشغيل في دليل العمل
<cc_root>/pipelines/<runId>/. - يُحقَن
GITHUB_TOKENمن مخزن بيانات الاعتماد، فتعملghوgit clone https://x-access-token:$GITHUB_TOKEN@…بلا إعداد. - يُطلَق السكربت بوصفه الملف التنفيذي الحرفي
bash، فيجب أن يكونbashعلىPATHلمضيف الخادم. هذا اعتبار يخص Windows.
التوجيه
قسم بعنوان “التوجيه”تقيّم عقدة router شرطًا وتعيد مفتاح توجيه. يُطلق المحرّك
الحافة التالية التي يطابق مفتاح توجيهها فقط، ويعلّم سائر الفروع
متخطاة.
تحديد عقدة router يستبدل حقل مفتاح الإخراج بمحرّر الشرط.
اختر أحد أوضاعه الأربعة:
- وجود ملف/ملفات — أي منها: يوجّه
"true"حين يوجد أي مسار من القائمة. - وجود الملفات — كلها: يوجّه
"true"فقط حين يوجد كل مسار في القائمة. - مقارنة: تقارن قيمة في الحالة بقيمة ثابتة.
- تفريع: يوجّه حسب قيمة مفتاح حالة، مع الحالة الافتراضية.
ثم اضبط مفاتيح التوجيه المطابقة على الحواف الخارجة (انظر توصيل العقد).
يدعم الجسم مجموعات and وor وnot المنطقية، لكن هذا النموذج لا يتيح
كتابتها. تحتاج إلى شجرة محمولات مكتوبة يدويًا تحت
extras.predicate. المفردات الكاملة للمحمولات والمعاملات في
أنواع خطوات خط الأنابيب.
الدمج
قسم بعنوان “الدمج”لا إعداد خاصًا بها: تنتظر اكتمال كل خطواتها السابقة.
بوابة الموافقة
قسم بعنوان “بوابة الموافقة”ترسل البوابة وكيل الاعتماد إلى محادثة مخفية ومعه موجّه البوابة
وتُعلَّق. يطلب المعتمِد قرارك في المحادثة ويسلّمه
عبر submit_output بالشكل { "decision": "approved" | "rejected", "reason": "..." }.
يستقر القرار تحت مفتاح الإخراج (الافتراضي approval_decision)، فيستطيع
تفريع لاحق أن يتفرّع عليه.
اضبط الوكيل على المعتمِد وقالب الموجّه على سؤال البوابة. تُحسم البوابة
عبر submit_output بالشكل { "decision": "approved" | "rejected", "reason": "..." }. عقد مراجع (موجّه) تسلّم بالطريقة نفسها.
إرسال الفريق
قسم بعنوان “إرسال الفريق”تضيف معرّف الفريق ووضع الإرسال. يعرض المنتقي وضعين فقط:
allParallel: مهمة لكل عضو، وتُعلَّق حتى يكتمل الجميع.manager: يُرسَل القائد، وهو الذي يفوّض.
أي قيمة مخزّنة أخرى تتصرف كـ allParallel. اضبط المخفِّض على append لـ
جمع نتيجة كل عضو في قائمة تحت مفتاح الإخراج.
لكل عنصر واستدعاء خط أنابيب فرعي
قسم بعنوان “لكل عنصر واستدعاء خط أنابيب فرعي”يمر لكل عنصر على مفتاح الحالة items افتراضيًا (extras.iterableKey /
extras.itemKey على العقدة). يصيغ موجّهه مرة لكل عنصر ({{item}}
افتراضيًا) ويرسل الوكيل مرة واحدة بهذه الموجّهات مضمومة.
المجموعة الفارغة تكتمل فورًا بقائمة فارغة. ليس هذا إرسالًا
متوازيًا لكل عنصر.
يُعلَّق استدعاء خط أنابيب فرعي حتى يبلغ التشغيل الفرعي حالة نهائية، ثم
يدمج الحالة النهائية للفرع تحت مفتاح الإخراج (الافتراضي subflow_result).
وجّهه إلى الفرع بـ extras.templateId. لا يستطيع القالب استدعاء نفسه. التشغيل
الفرعي الفاشل أو الملغى يُفشل خطوة الأب، فتُطبَّق عندئذ سياسة إعادة المحاولة والمتابعة عند الفشل الخاصة بتلك الخطوة.
إعلان المدخلات والسماح بالتشغيل اليدوي
قسم بعنوان “إعلان المدخلات والسماح بالتشغيل اليدوي”كلاهما خلف تشغيل يدوي في ترويسة المحرّر.
- انقر تشغيل يدوي.
- فعّل السماح بالتشغيل اليدوي. يُحفَظ هذا المفتاح فورًا، فهو ينشئ
(أو يحذف) صف المشغّل
manualالذي يجعل القالب يظهر في صفحة التشغيل. - اضبط الحد الأقصى للتشغيلات المتوازية إن أردت سقفًا (اتركه فارغًا لغير المحدود).
البدايات الزائدة تنتظر في حالة
queuedحتى يتحرر مكان. - انقر إضافة مدخل لكل حقل ينبغي أن يجمعه التشغيل اليدوي:
| الحقل | الوصف |
|---|---|
| المفتاح | مفتاح الحالة الذي تُخزَّن تحته القيمة، ويُشار إليه بـ {{key}} |
| التسمية | تسمية العرض (الافتراضي هو المفتاح) |
| النوع | نص، نص متعدد الأسطر، رقم، مفتاح تبديل، قائمة اختيار، مستودع |
| الخيارات (مفصولة بفواصل) | خيارات مفصولة بفواصل، لقائمة الاختيار فقط |
| القيمة الافتراضية | قيمة مملوءة مسبقًا |
| النص النائب | نص التلميح داخل الحقل الفارغ |
| نص المساعدة | نص مساعد تحت الحقل |
| مطلوب | هل يمنع نموذج التشغيل الإرسال حين تكون القيمة فارغة |
مدخل مستودع يعرض منتقيًا لمستودعات مساحة العمل، ويملأ
repo_id وrepo_local_path وrepo_full_name، وإن كان للمستودع بعيد على GitHub
يملأ أيضًا repo_owner وrepo_name في حمولة التشغيل.
- انقر حفظ في الحوار. تُدمَج تعديلات المدخلات في المسودة، وتُحفَظ حين تحفظ القالب.
الحفظ والتفعيل
قسم بعنوان “الحفظ والتفعيل”- انقر حفظ في ترويسة المحرّر. تعرض الترويسة «تغييرات غير محفوظة» إلى أن تفعل ذلك.
- ارجع إلى الإعدادات ← مساحة العمل ← قوالب خطوط الأنابيب وتأكد أن مفتاح صف القالب مفعّل. يرفض المحرّك بدء قالب معطّل، والقالب المعطّل لا يظهر في صفحة التشغيل.
- لبدء التشغيل تلقائيًا، اسحب مشغّلًا من مكتبة العقد إلى اللوحة. انظر إعداد مشغّلات خط الأنابيب.
أدلة ذات صلة
قسم بعنوان “أدلة ذات صلة”- تشغيل خط أنابيب يدويًا
- إعداد مشغّلات خط الأنابيب
- مراقبة تشغيلات خطوط الأنابيب
- أنواع خطوات خط الأنابيب