Woodpecker CI
محرك CI خفيف يشغّل خطوط العمل في حاويات من ملف YAML
بديل لـGitHub Actions
يشغّل Woodpecker خطوات البناء والاختبار والنشر في حاويات كلما دفعت تغييرات إلى منصة git مثل Forgejo أو Gitea أو GitHub أو GitLab. هو تفرّع مجتمعي من Drone برخصة Apache-2.0، بخادم صغير ووكلاء منفصلين.
يناسبك إن كنت
- تستضيف منصة git خاصة وتريد CI يتصل بها
- تريد خطوط عمل بـ YAML وكل خطوة في حاويتها
- ترى Jenkins ثقيلًا على مختبر منزلي أو فريق صغير
انتبه إلى
- ينفّذ الوكلاء كودًا من المستودعات، فطلبات الدمج غير الموثوقة خطر حقيقي
- منظومة إضافاته أصغر بكثير من GitHub Actions
- ذاكرة البناء المؤقتة والصور تملأ أقراص الوكلاء ما لم تنظّفها
خطوط عمل بجانب الكود
تضيف مجلدًا أو ملفًا باسم .woodpecker إلى المستودع، وتسرد الخطوات مع صورة حاوية والأوامر المطلوبة، فيشغّلها Woodpecker مع كل دفع أو طلب دمج. كل خطوة حاوية جديدة، فبيئة البناء هي الصورة التي تختارها لا ما صادف تثبيته على الخادم.
يناسب من يستضيف منصة git خاصة ويريد CI يشبه GitHub Actions بشكل أبسط، دون نظام ثقيل مثل Jenkins. الإضافات مجرد صور حاويات، فخطوة النشر أو الإشعار غالبًا صورة واحدة وبضعة إعدادات.
ما يتطلبه تشغيله
الخادم خفيف ويحفظ حالته في SQLite أو PostgreSQL أو MySQL. الوكلاء يؤدون العمل، فاستهلاكهم للمعالج والذاكرة والقرص يعتمد على ما تبنيه، وذاكرة الصور المؤقتة قد تملأ الأقراص بسرعة فنظّفها. خذ نسخة احتياطية من قاعدة بيانات الخادم وأسراره.
ينفّذ الوكلاء كودًا عشوائيًا من المستودعات عبر Docker، وهذا قريب من root على جهاز الوكيل. لا تشغّل خطوط العمل لطلبات دمج غير موثوقة دون موافقة، واحصر الأسرار في المستودعات التي تحتاجها، وضع الوكلاء على جهاز يمكنك إعادة بنائه.