انتقل إلى المحتوى

البداية السريعة مع Actions

ملاحظة

تحتاج هذه الميزة إلى تفعيل Actions على الـ repository من SettingsAdvanced SettingsEnable Repository Actions، وإلى runner متاح يوفّره مدير الخدمة. إن لم يظهر تبويب Actions في الـ repository بعد التفعيل فالميزة غير متاحة بعد. لم نتحقق حتى الآن من توفّر runner مشترك على levantgit.com، فكل ما هنا ينطبق «إن كانت مفعّلة».

أول workflow لك في ليڤانت غيت (LevantGit) يحتاج ثلاث خطوات: فعّل Actions للـ repository من إعداداته، وأضف ملف YAML في المجلد .gitea/workflows/، ثم نفّذ push فينطلق التنفيذ ويظهر سجله في تبويب Actions. تنتهي منها في ٥ دقائق، ولا تحتاج تثبيت أي شيء على جهازك غير Git.

١. فعّل Actions على الـ repository

حتى لو كانت Actions متاحة في الخدمة، تبقى معطّلة افتراضيًا على كل repository جديد. لتفعيلها:

  1. افتح الـ repository ثم Settings.
  2. في التبويب الأول (Repository) انزل إلى Advanced Settings.
  3. فعّل الخيار Enable Repository Actions واضغط Update Settings.

بعد الحفظ يجب أن يظهر تبويب جديد باسم Actions في أعلى صفحة الـ repository.

٢. اكتب أول workflow

أنشئ في جذر الـ repository المجلد .gitea/workflows/ وضع فيه ملفًا باسم demo.yaml بهذا المحتوى:

name: LevantGit Actions Demo
run-name: ${{ gitea.actor }} is testing out LevantGit Actions 🚀
on: [push]

jobs:
  Explore-LevantGit-Actions:
    runs-on: ubuntu-latest
    steps:
      - run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event."
      - run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by LevantGit!"
      - run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
      - name: Check out repository code
        uses: actions/checkout@v4
      - run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
      - run: echo "🖥️ The workflow is now ready to test your code on the runner."
      - name: List files in the repository
        run: |
          ls ${{ gitea.workspace }}
      - run: echo "🍏 This job's status is ${{ job.status }}."

تستطيع أيضًا إنشاء الملف من الواجهة مباشرة: زر Add FileNew File واكتب المسار .gitea/workflows/demo.yaml كاملًا في حقل الاسم.

ستلاحظ أن هذا المثال يشبه كثيرًا مثال البداية في GitHub Actions، وهذا مقصود: Actions مصمَّمة لتكون متوافقة مع GitHub Actions حيثما أمكن. الفرق الوحيد هنا أن سياق github. يُكتب gitea.، مع أن الصيغتين تعملان (انظر الأسئلة الشائعة).

ما معنى runs-on؟

السطر runs-on: ubuntu-latest يطلب تنفيذ الـ job على runner يحمل الـ label ubuntu-latest. الـ label لا يُنشئ بيئة من العدم؛ يجب أن يطابق label يوفّره runner سجّله مدير الخدمة، وإلا بقي الـ job في حالة الانتظار بلا نهاية. ubuntu-latest هو الـ label الافتراضي المعتاد، لكن تحقّق من الـ labels المتاحة فعلًا قبل أن تعتمد عليها: افتح SettingsActionsRunners في الـ repository أو الـ organization، وستجد قائمة الـ runners المرئية للـ repository مع labels كلٍّ منها.

على levantgit.com تحديدًا

الـ runner المسجَّل حاليًا على الخدمة يحمل الـ label host لا ubuntu-latest. فإن بقي الـ job في الانتظار، جرّب runs-on: host. وتحقّق دائمًا من SettingsActionsRunners في الـ repository، فقد لا يكون هذا الـ runner متاحًا لمستودعك.

٣. نفّذ push للملف

إن كتبت الملف على جهازك فأنشئ commit ونفّذ push:

git add .gitea/workflows/demo.yaml
git commit -m "Add demo workflow"
git push

السطر on: [push] في الملف يعني أن الـ workflow يعمل عند كل push إلى الـ repository. و push الملف نفسه هو push، فسينطلق أول workflow run فورًا.

٤. افتح تبويب Actions واقرأ السجل

افتح تبويب Actions. ستجد الـ workflow المسمّى «LevantGit Actions Demo» وتحته workflow run جديد، حالته قيد الانتظار ثم قيد التنفيذ ثم ناجح (علامة خضراء) أو فاشل (علامة حمراء). اضغط عليه، ثم على اسم الـ job في الجهة اليسرى، لترى سجل كل step: الرسائل المطبوعة بـ echo، ونتيجة actions/checkout، وقائمة الملفات من ls.

نصيحة

إن بقي الـ workflow run في حالة الانتظار لدقائق طويلة فغالبًا لا يوجد runner يحمل الـ label المطلوب، أو أن الميزة غير متاحة بعد على الخدمة. راجع الـ labels المتاحة كما في الخطوة ٢.

تنبيه

بعض الـ actions الجاهزة قد لا تعمل بشكل صحيح في repositories تستخدم تجزئة SHA256، ومنها actions/checkout (انظر هذا الـ issue). الـ repositories العادية بتجزئة SHA1 غير معنيّة.

أحسنت، لديك الآن أول workflow يعمل. الخطوة التالية هي جعله يفعل شيئًا مفيدًا: تشغيل اختبارات مشروعك، أو بناء حزمة، أو فحص الكود عند كل pull request.

ماذا بعد؟

  • الـ secrets: تمرير كلمات السر والـ tokens إلى الـ workflow دون كتابتها في الملف.
  • الـ variables: قيم إعداد غير سرّية تُعاد استخدامها بين الـ workflows.
  • الـ badge: اعرض حالة الـ workflow في ملف README.

هذه الصفحة مبنية على وثائق Gitea (رخصة MIT) بعد ترجمتها وتبسيطها.