أخبار التقنية

GitHub Actions يضيف خطوات متوازية: وقت أقل داخل الوظيفة نفسها

GitHub Actions يضيف خطوات متوازية: وقت أقل داخل الوظيفة نفسها

شرح عربي سريع لميزة تشغيل خطوات GitHub Actions بالتوازي عبر background وparallel: متى تفيد، أين تنتبه، ولماذا لا تلغي الحاجة إلى jobs منفصلة.

في مشاريع كثيرة لا يكون بطء CI بسبب خطوة واحدة ضخمة، بل بسبب طابور صغير: ابن الواجهة، ثم ابن الخادم، ثم ابن التوثيق، ثم شغل الاختبارات. خبر GitHub الجديد مهم لأنه يكسر هذا الطابور داخل job واحدة، لا فقط بين jobs منفصلة.

في 25 يونيو 2026 أعلنت GitHub أن Actions بدأ يدعم تشغيل الخطوات بالتوازي عبر صياغة جديدة في ملفات workflow. الفكرة ليست “اجعل كل شيء أسرع تلقائيا”، بل امنح المطور طريقة أنظف من تشغيل أوامر في الخلفية بعلامة & ثم مطاردة سجلات متداخلة.

أيقونة GitHub Actions

ما الجديد؟

الصياغة الجديدة تدور حول خمس كلمات:

الكلمة متى تستخدمها؟
background: true لتشغيل خطوة في الخلفية والاستمرار إلى التالية
wait لانتظار خطوة أو خطوات محددة بالمعرف
wait-all لانتظار كل الخطوات الخلفية النشطة
cancel لإيقاف خطوة خلفية لم تعد تحتاجها
parallel لتشغيل مجموعة خطوات معا ثم الانتظار تلقائيا

أفضل مثال عملي: بناء أجزاء مستقلة في المستودع نفسه. بدلا من جعل build:frontend وbuild:backend وbuild:docs صفا واحدا، يمكن وضعها داخل parallel ثم تشغيل الاختبارات بعد اكتمالها كلها.

steps:
  - uses: actions/checkout@v6
  - parallel:
      - name: Build frontend
        run: npm run build:frontend
      - name: Build backend
        run: npm run build:backend
      - name: Build docs
        run: npm run build:docs
  - name: Run tests
    run: npm test

أين تنتبه؟

هذه ليست بديلا كاملا عن تقسيم workflow إلى jobs. إذا احتجت أنظمة تشغيل مختلفة، matrix واسعة، أو فصل صلاحيات وبيئات نشر، فـ jobs ما زالت الأوضح. أما إذا كانت الخطوات المستقلة تعيش على runner نفسه وتستفيد من نفس checkout والذاكرة المؤقتة، فالأسلوب الجديد يقلل الانتظار والسجلات تصبح أسهل من حيلة shell قديمة.

توثيق GitHub يذكر أيضا حدودا مهمة: يمكن تشغيل حتى 10 خطوات خلفية بالتزامن داخل job واحدة، ولا تعمل background أو parallel داخل composite action. كما أن نواتج الخطوة الخلفية لا تصبح متاحة إلا بعد wait أو wait-all.

الخلاصة: راجع workflow البطيء لديك وابحث عن خطوات مستقلة حقا. إن وجدت ثلاث عمليات بناء لا تعتمد على بعضها، فهذا تحديث صغير قد يوفر دقائق كل يوم من دون إعادة تصميم خط الأنابيب بالكامل.

المصادر: GitHub Changelog، GitHub Docs: Workflow syntax. مصدر الصورة: theSVG - GitHub Actions icon.

عرض الكل

مقالات ذات صلة ›