التكامل المستمر المحلي
حلقة «ادفع – انتظر – علامة حمراء – أصلح – ادفع» تهدر عشر دقائق في كل جولة. مع act تعمل أسطر سير العمل نفسها في حاويات Docker على جهازك، وGitcito هو من يقودها: اختر سير عمل، اضغط تشغيل، وشاهد نفس السجل الذي كان CI سيطبعه — قبل أن يغادر أي شيء جهازك.

تكامل، لا بيئة تشغيل مدمجة
Gitcito عمدًا لا يشحن act أو Docker — فتطبيق يجرّ معه بيئة تشغيل حاويات هو
نقيض عميل git. هذا تكامل اختياري: فعّله في الإعدادات → التكاملات (أو من
داخل مربع الحوار نفسه)، وسيكتشف Gitcito ما هو مثبَّت ويرشدك خلال البقية —
brew install act، وخدمة Docker قيد التشغيل، وانتهى الأمر. لا يعمل شيء حتى
تتحقق الشروط الثلاثة: التفعيل، وتثبيت act، وإمكانية الوصول إلى Docker.
ما الذي يفعله
- يسرد كل سير عمل تحت
.github/workflows، باسمه فيname:. - تشغيل ينفّذ سير العمل عبر act على شجرة العمل لديك — بما فيها تغييراتك غير المُلتزَم بها، وهذا هو المقصود تحديدًا: اختبر قبل أن تلتزم، لا بعد أن تدفع.
- يتدفق الإخراج مباشرةً إلى مربع الحوار؛ وإيقاف ينهي التشغيل. رمز الخروج 0 يعرض نجح، وأي شيء آخر يعرض فشل مع الرمز.
أحكام لكل التزام على المخطط

التشغيل المكتمل يثبّت نتيجته على الالتزام الذي اختبره: دورق صغير يعلّم الصف
بالأخضر أو الأحمر في المخطط، فترى بلمحة أي الالتزامات نجت من CI محليًا
بالفعل. يُخزَّن الحكم كملاحظة git تحت refs/notes/gitcito-ci — محلي على
جهازك، ولا يُدفع افتراضيًا أبدًا.
قاعدة الصدق: لا يُثبَّت الحكم إلا إذا كانت شجرة العمل لديك نظيفة. فالتشغيل فوق تغييرات غير مُلتزَم بها اختبر شيئًا لا يحتويه أي التزام، لذا يعرض نتيجته في مربع الحوار دون أن يعلّم شيئًا.
اختبار إيداع أو نطاق — من دون مغادرة فرعك
قسم اختبار إيداع أو نطاق في مربع الحوار يشغّل سير عمل على التزامات لست عليها. يُسحب كل التزام بحالة منفصلة (detached) إلى شجرة عمل مؤقتة (worktree) تحت مجلد النظام المؤقت، ويعمل act هناك، وتُزال شجرة العمل المؤقتة أيًا كانت نهاية التشغيل — فلا تتحرك شجرة عملك ولا فرعك أبدًا. ولأن هذا السحب نقي بحكم بنائه، يُثبَّت الحكم دائمًا على الالتزام الذي اختبره. والنقر بالزر الأيمن على التزام في المخطط يعرض مباشرةً تشغيل CI المحلي على هذا الإيداع.
التكلفة تُعلَن قبل أن يعمل أي شيء، ولا تُكتشف بعده: اكتب مراجعة أو نطاقًا
(main..HEAD أو HEAD~5.. أو sha)، واضغط معاينة، وسيعرض Gitcito كم
التزامًا يطابق المواصفة وأي أحدث N — الميزانية الصريحة، بحد أقصى 50 —
سيعمل فعلًا. يشغّلها المسح تسلسليًا (فـ act مع Docker ثقيلان بما يكفي
لتتنازع التشغيلات المتوازية على الجهاز)، ويبثّ سجل كل تشغيل، ويعلّم كل
التزام بالنجاح أو الفشل مباشرةً، وإيقاف يجهض بين الالتزامات مع إنهاء
التشغيل الجاري. توقّع دقائق حقيقية لكل التزام.
حد آخر يستحق المعرفة: شجرة العمل المؤقتة تحتوي ملفات الالتزام لكنها لا تحتوي سحوبات الوحدات الفرعية لمستودعك — فسير عمل يعتمد على وحدات فرعية مهيأة سيتصرف كما لو كان على نسخة مستنسخة حديثة من دونها.
الحدود
- act تقليد جيد جدًا لمشغّلات GitHub، لكنه ليس مثاليًا: الإجراءات التي تحتاج إلى خدمات تستضيفها GitHub، أو أسرار، أو صور مشغّلات غير مألوفة قد تتصرف بشكل مختلف. النجاح المحلي دليل قوي، لا ضمان.
- تشغيل واحد في كل مرة لكل مستودع؛ وبدء تشغيل آخر يلغي الأول.
- التشغيل على مستوى سير العمل فقط — اختيار مهام مفردة أو مصفوفات أو أحداث هو من اختصاص act؛ شغّله في الطرفية المدمجة عندما تحتاج إلى خيارات إضافية.
- أول تشغيل ينزّل صور المشغّلات — توقّع أن يكون بطيئًا مرة واحدة.
انظر أيضًا: الاستضافة وطلبات السحب · الطرفية المدمجة