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 של GitHub Actions רץ ישירות על macOS. זו ההגדרה הפשוטה ביותר, עם הבילדים המהירים ביותר ומטמונים שנשארים חמים בין ג׳ובים.

מסלול B, מכונות וירטואליות של Tart. אתם מריצים את אותם אימג׳ים של macOS מ-Cirrus שאתם משתמשים בהם היום, בתוך 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 אחד, שני סידורים. הבחירה היא כל המדריך.
ראנר נייטיבמכונות וירטואליות של Tart
זמן הקמהבערך 30 דקותבערך שעה
אותה סביבה כמו ב-Cirrusלא, אתם מתקינים את Xcode בעצמכםכן, אותם אימג׳ים
מכונה נקייה לכל ג׳ובNoכן
מטמונים חמים בין ג׳וביםכןלא, אלא אם תבנו אותם לתוך האימג׳
ג׳ובים במקביל לכל Macאחד לכל ראנרעד שניים (מגבלת הרישיון של Apple)

בחרו ב-A אם הריפוזיטורי בבעלות הצוות שלכם ואתם רוצים מהירות. בחרו ב-B אם כל בילד חייב להתחיל ממצב נקי וידוע, או שאתם רוצים לא לשנות שום דבר ב-workflows חוץ מהתווית.

לפני שמתחילים

רשמו במה ה-workflows שלכם משתמשים היום. חפשו את שורות ה-runs-on שמצביעות על אימג׳ים של Cirrus, למשל:

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

רשמו את גרסת macOS, את גרסאות Xcode ואת כל מה שהג׳ובים שלכם מתקינים בהתחלה. תצטרכו את הרשימה הזאת בכל אחד מהמסלולים.

מסלול A: ראנר נייטיב

עקבו אחרי המדריך שלנו, “Runner בהפעלה עצמית (self-hosted) של GitHub Actions על Mac mini”, שמקושר בתחתית העמוד הזה. הוא מכסה את Xcode, רישום ה-Runner והרצה שלו כשירות.

תנו ל-Runner תווית שמתארת אותו, למשל macduty-m4. אחר כך שנו שורה אחת בכל workflow:

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

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

הריצו workflow אחד על ה-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, ומהירים יותר עם מטמונים חמים.
  • שמרו את ה-workflows הישנים לשבוע. השאירו עותק של שורות ה-runs-on של Cirrus בבראנץ׳ עד שהראנרים החדשים יעברו ריליס מלא.
  • ריפוזיטוריז פרטיים בלבד. 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⁩, מע״מ מתווסף בתשלום כשהוא חל. מינימום חודש אחד, ואז אפשר לבטל בכל חודש.

הבא