macduty

الدليل

الانتقال من Cirrus Runners إلى Mac mini مخصص

لم تعد Cirrus Runners تقبل عملاء جددًا، والعقود الحالية تقترب من نهايتها. انقل مهام GitHub Actions الخاصة بـ macOS إلى Mac mini مخصص، بشكل أصلي أو باستخدام صور Tart نفسها.

وقت القراءة: ⁦60⁩ د، آخر تحديث ⁦2026-09-15⁩

في أبريل 2026 أعلنت Cirrus Labs انضمامها إلى OpenAI. توقفت Cirrus CI عن تشغيل المهام في 1 يونيو 2026. لا تقبل Cirrus Runners عملاء جددًا، ولا يُدعم العملاء الحاليون إلا حتى انتهاء عقدهم الحالي.

إذا كانت مهام GitHub Actions الخاصة بـ macOS تعمل على Cirrus Runners، فهي تحتاج إلى مكان جديد قبل ذلك التاريخ. يعرض هذا الدليل طريقتين لنقلها إلى Mac mini مخصص، وكيف تختار بينهما.

طريقتان للانتقال

المسار A، Runner أصلي. يعمل Runner الخاص بـ GitHub Actions مباشرة على macOS. إنه أبسط إعداد، مع أسرع عمليات بناء وذاكرات مؤقتة تبقى جاهزة بين المهام.

المسار B، أجهزة Tart الافتراضية. تشغل صور Cirrus لنظام macOS نفسها التي تستخدمها اليوم، داخل Tart، على جهاز Mac الخاص بك. تبدأ كل مهمة من جهاز نظيف، تمامًا كما في Cirrus.

Path A, native runner

macOS, no VMactions.runner service,one job at a timeIts own diskDerivedData and packagesstay warm

Fastest, and you install Xcode yourself.

Path B, Tart virtual machines

macOS host, TartClean VMone job, deletedClean VMone job, deletedThe same Cirrus images you run today.Apple's licence: two at a time, per Mac.

Nothing changes in the workflow except the label.

جهاز Mac واحد، وترتيبان. الاختيار بينهما هو موضوع الدليل كله.
Runner أصليأجهزة Tart الافتراضية
وقت الإعدادنحو 30 دقيقةنحو ساعة
البيئة نفسها كما في Cirrusلا، تثبت Xcode بنفسكنعم، الصور نفسها
جهاز نظيف لكل مهمةNoنعم
ذاكرات مؤقتة جاهزة بين المهامنعملا، إلا إذا ضمنتها في الصورة
عدد المهام المتزامنة لكل جهاز Macواحدة لكل Runnerحتى اثنتين (حد ترخيص Apple)

اختر A إذا كان فريقك يملك المستودع ويريد السرعة. اختر B إذا كنت تحتاج إلى أن يبدأ كل بناء من حالة معروفة ونظيفة، أو كنت لا تريد تغيير أي شيء في ملفات سير العمل لديك سوى التسمية (label).

قبل أن تبدأ

أعدّ قائمة بما تستخدمه ملفات سير العمل (workflows) لديك اليوم. ابحث عن أسطر runs-on التي تشير إلى صور Cirrus، على سبيل المثال:

.github/workflows
runs-on: ghcr.io/cirruslabs/macos-runner:sonoma

دون إصدار macOS، وإصدارات Xcode، وأي شيء تثبته مهامك عند البدء. ستحتاج إلى هذه القائمة في أي من المسارين.

المسار A: Runner أصلي

اتبع دليلنا «Runner مستضاف ذاتيًا لـ GitHub Actions على Mac mini»، ورابطه في أسفل هذه الصفحة. يغطي Xcode، وتسجيل الـ Runner، وتشغيله كخدمة.

امنح الـ Runner تسمية تصفه، مثل macduty-m4. ثم غير سطرًا واحدًا في كل ملف سير عمل:

.github/workflows
# before
runs-on: ghcr.io/cirruslabs/macos-runner:sonoma

# after
runs-on: [self-hosted, macOS, ARM64, macduty-m4]

شغّل ملف سير عمل واحدًا على الـ Runner الجديد بينما لا تزال Cirrus تعمل. وعندما ينجح، انقل البقية.

المسار B: الصور نفسها، داخل Tart

1. تثبيت Tart على جهاز Mac

ssh
brew install cirruslabs/cli/tart

2. سحب صورة من Cirrus

اختر الصورة الأقرب لما تشغله اليوم. تنشر Cirrus صورًا مع Xcode وبدونه:

ssh
tart clone ghcr.io/cirruslabs/macos-sequoia-xcode:latest ci-base

السحب الأول كبير، وغالبًا ما يتجاوز 50 GB، لذا خصص له بعض الوقت.

3. تشغيل الجهاز الافتراضي وتسجيل الدخول

ssh
tart run --no-graphics ci-base &
ssh admin@$(tart ip ci-base)

تأتي صور Cirrus بحساب مسؤول افتراضي. غير كلمة مروره قبل أي شيء آخر.

4. تسجيل الـ Runner داخل الجهاز الافتراضي

داخل الجهاز الافتراضي، سجل Runner لـ GitHub Actions بالطريقة نفسها كما في المسار A، مع فرق واحد: أضف --ephemeral، ليأخذ الـ Runner مهمة واحدة ثم يتوقف.

داخل الجهاز الافتراضي
./config.sh --url https://github.com/<owner>/<repo> --token <token> --ephemeral --labels tart-sequoia
./run.sh

5. جهاز افتراضي جديد لكل مهمة

على جهاز Mac نفسه، تنسخ حلقة صغيرة نسخة نظيفة من الصورة، وتشغل فيها مهمة واحدة، ثم تحذفها:

ssh
while true; do
  tart clone ci-base job
  tart run --no-graphics job &
  # wait for the job to finish, then:
  tart stop job
  tart delete job
done

عمليًا ستحتاج إلى سكربت يجلب أيضًا رمز تسجيل جديدًا لكل جهاز افتراضي. أدوات مثل Orchard، من الفريق نفسه، تتولى ذلك في الإعدادات الأكبر.

يسمح ترخيص Apple بتشغيل جهازين افتراضيين بنظام macOS كحد أقصى في الوقت نفسه على جهاز Mac واحد. لتشغيل مهام أكثر بالتوازي، أضف جهاز Mac آخر.

بعد الانتقال

  • تحقق من أوقات البناء. على M4 مخصص أو أحدث، يرى معظم الفرق عمليات بناء بسرعة Cirrus نفسها، وأسرع مع الذاكرات المؤقتة الجاهزة.
  • احتفظ بملفات سير العمل القديمة لمدة أسبوع. اترك نسخة من أسطر runs-on الخاصة بـ Cirrus في فرع إلى أن تمر الـ Runners الجديدة بإصدار كامل.
  • المستودعات الخاصة فقط. لا ينبغي أن تقبل Runners المستضافة ذاتيًا مهامًا من التفرعات (forks) العامة.

لماذا Mac mini مخصص

  • مبلغ شهري ثابت. لا فوترة بالدقيقة، ولا شيء لإعادة التفاوض عليه عند انتهاء العقد.
  • كل الأجيال. من M1 إلى M6 جنبًا إلى جنب، لتختبر على الشرائح الموجودة لدى مستخدميك.
  • لك وحدك. لا طابور انتظار، ولا جيران، ولا مهام لأي أحد آخر على جهازك.
  • مستضاف في الاتحاد الأوروبي، ويخضع للائحة العامة لحماية البيانات (GDPR).

تضع MacDuty أجهزة Mac mini من M1 إلى M6 في خزائن الخوادم لديها، مثبتًا عليها macOS، وجاهزة خلال دقائق. أضف مفتاح SSH الخاص بك من منطقة العملاء.

متوفر اليوم

هذه الأجهزة في الخزانة الآن. اختر واحدًا، واطّلع على ما يأتي معه، ولا تُنشئ حسابك إلا عند الطلب.

جارٍ التحقق من الخزائن

جهاز ⁦Mac mini⁩ خاص بك

اختر تكوينًا. وإن لم يكن متوفرًا، اترك بريدك الإلكتروني ونراسلك يوم تركيبه في الخزانة.

سنويًا: أقل بنسبة ⁦19%⁩ على الأقل من الدفع الشهري

  • 16GB

    ذاكرة موحدة، ⁦120 GB/s⁩

    النوى
    10 CPU, 10 GPU
    التخزين
    متاح
    متوفر
  • الأكثر اختيارًا
    24GB

    ذاكرة موحدة، ⁦120 GB/s⁩

    النوى
    10 CPU, 10 GPU
    التخزين
    متاح
    متوفر
  • 32GB

    ذاكرة موحدة، ⁦120 GB/s⁩

    النوى
    10 CPU, 10 GPU
    التخزين
    متاح
    متوفر
Visa Mastercard تحويل ⁦SEPA⁩الأسعار بعملة ⁦EUR⁩، وتُضاف ضريبة القيمة المضافة عند الدفع حيثما تنطبق. شهر واحد كحد أدنى، ثم يمكنك الإلغاء في أي شهر.

التالي