Actions: نظرة عامة¶
ملاحظة
تحتاج هذه الميزة إلى أمرين: تفعيل Actions على الـ repository من Settings ← Advanced Settings ← Enable Repository Actions، ووجود runner متاح يوفّره مدير الخدمة. إن لم يظهر تبويب Actions في الـ repository فالميزة غير متاحة بعد. لم نتحقق حتى الآن من توفّر runner مشترك على levantgit.com، فكل ما في هذا القسم ينطبق «إن كانت مفعّلة».
تعمل Actions في ليڤانت غيت (LevantGit) نظامَ CI/CD مدمجًا داخل الـ repository نفسه: تضع ملف
YAML في .gitea/workflows/ تحدّد فيه متى يعمل — عند كل push أو pull request مثلًا — وما الذي
ينفّذه: الاختبارات، أو البناء، أو فحص الكود. ينفّذ العملَ runner مستقل، والصياغة متوافقة مع
GitHub Actions إلى حدّ بعيد.
ما هي Actions؟¶
Actions هي نظام الـ CI/CD المدمج في Gitea، البرنامج الذي يقوم عليه ليڤانت غيت. تكتب ملف workflow بصيغة YAML داخل الـ repository، وتحدّد فيه متى يعمل — مثلًا عند كل push أو عند فتح pull request — وما الذي يفعله: تشغيل الاختبارات، بناء المشروع، فحص الكود، أو أي أوامر أخرى.
النظام مصمَّم ليكون متوافقًا مع GitHub Actions قدر الإمكان، واسمه مستوحى منه أيضًا. ولتجنّب الخلط نوضّح الكلمات التي ستقابلها:
- Actions: اسم الميزة نفسها في ليڤانت غيت (وهي «Gitea Actions» في وثائق Gitea).
- GitHub Actions: اسم الميزة المقابلة على GitHub.
- action (بالمفرد، وأحيانًا actions بالجمع): مكوّن جاهز تستدعيه من داخل الـ workflow
بالكلمة
uses:، مثلactions/checkout@v4أوactions/cache@v3.
أين تُكتب ملفات الـ workflows؟¶
ضع ملفات YAML في المجلد .gitea/workflows/ في جذر الـ repository، مثلًا
.gitea/workflows/build.yaml. يدعم ليڤانت غيت أيضًا المجلد .github/workflows/ للتوافق، فإن
نفّذت migration لـ repository من GitHub وفيه workflows جاهزة فقد تعمل دون أي تعديل (مع الفروق
المذكورة في صفحة المقارنة).
بنية الملف هي بنية GitHub Actions نفسها: اسم الـ workflow، وأحداث التشغيل في on:، و jobs
يحتوي كلٌّ منها على steps. مرجع الصياغة الكامل موجود في
وثائق GitHub،
وستجد مثالًا عمليًا في البداية السريعة.
من ينفّذ الـ jobs؟ (الـ runners)¶
ليڤانت غيت نفسه لا ينفّذ الـ jobs، بل يسلّمها إلى runner: برنامج مستقل اسمه
act runner يعمل على خادم منفصل، يستلم الـ job، وينفّذه
غالبًا داخل حاوية معزولة، ثم يعيد السجل والنتيجة إلى الواجهة. كل runner يحمل labels مثل
ubuntu-latest، والـ workflow يطلب label معيّنًا بالسطر runs-on:. أنت كمستخدم لا تُثبّت
شيئًا ولا تدير خوادم؛ توفير الـ runner وصيانته مسؤولية مدير الخدمة، وما عليك إلا أن تستخدم
label يوفّره.
تنبيه
الـ runner يصل إلى كود الـ repository وإلى الـ secrets التي تمرّرها له. لا تسجّل runner لا تثق به على الـ repository أو الـ organization، ولا تضع في الـ workflow secrets لا يحتاجها الـ job فعلًا.
ماذا ترى في الواجهة؟¶
عند تفعيل الميزة يظهر تبويب Actions في أعلى صفحة الـ repository. فيه قائمة بكل workflow run لكل workflow: حالته (ناجح، فاشل، قيد التنفيذ)، ومن أطلقه، وأي commit تسبّب به. اضغط على أي workflow run لترى سجل كل job خطوةً خطوة. كما تظهر الحالة بجانب الـ commit في صفحة الـ commits وفي الـ pull request.
حالة الميزة وحدودها¶
Actions ميزة مستقرة في Gitea وتُستخدم في مشاريع إنتاجية كثيرة. لكن تذكّر أن ليڤانت غيت خدمة مجانية تُقدَّم كما هي ضمن مبادرة مجتمعية من ليڤانت هوست، دون التزام دعم أو ضمان توفّر؛ لذلك لا تبنِ نشر مشروعك الحرج على افتراض أن runner مشتركًا سيكون متاحًا دائمًا. إن احتجت إلى ضمانات فابنِ الـ workflow بحيث يمكن تشغيله أيضًا محليًا أو في مكان آخر.
أسئلة شائعة¶
ما البديل عن GitHub Actions في ليڤانت غيت؟¶
البديل هو Actions المدمجة في Gitea، وهي المنصة التي يقوم عليها ليڤانت غيت. تكتب workflow بصيغة
YAML في .gitea/workflows/ بالصياغة نفسها تقريبًا، ويقرأ ليڤانت غيت المجلد
.github/workflows/ أيضًا. لكنها تحتاج تفعيلًا على الـ repository و runner متاحًا، ولم نتحقق
بعد من توفّر runner مشترك على levantgit.com.
أين أضع ملف الـ workflow في ليڤانت غيت؟¶
في المجلد .gitea/workflows/ في جذر الـ repository، مثل .gitea/workflows/build.yaml. ويُقرأ
المجلد .github/workflows/ أيضًا للتوافق، فقد تعمل workflows منقولة من GitHub دون تعديل، ما
دام يوجد runner يحمل الـ label المطلوب في runs-on ولم يعتمد الملف على ميزات خاصة بـ GitHub.
ما هو الـ runner ومن يوفّره؟¶
الـ runner برنامج مستقل (act runner) يعمل على خادم منفصل: يستلم الـ job، وينفّذه غالبًا داخل
حاوية معزولة، ثم يعيد السجل والنتيجة إلى الواجهة. أنت كمستخدم لا تثبّت شيئًا؛ توفير الـ runner
وصيانته مسؤولية مدير الخدمة، وما عليك إلا أن تطلب في runs-on الـ label الذي يوفّره.
هل Actions مفعّلة على levantgit.com؟¶
تحتاج Actions إلى تفعيلها لكل repository على حدة من Settings ← Advanced Settings ← Enable Repository Actions، وإلى runner متاح يوفّره مدير الخدمة. إن لم يظهر تبويب Actions في الـ repository فالميزة غير متاحة له بعد. ولم نتحقق حتى الآن من توفّر runner مشترك على levantgit.com، فكل ما في هذا القسم ينطبق «إن كانت مفعّلة».
ماذا بعد؟¶
- البداية السريعة: أول workflow لك في ٥ دقائق.
- الـ secrets: كيف تمرّر كلمات السر والـ tokens إلى الـ workflow بأمان.
- مقارنة مع GitHub Actions: ما الذي يختلف وما الذي لا يعمل بعد.
هذه الصفحة مبنية على وثائق Gitea (رخصة MIT) بعد ترجمتها وتبسيطها.