מדריך
Runner בהפעלה עצמית (self-hosted) של GitHub Actions על Mac mini
הקימו Runner בהפעלה עצמית של GitHub Actions על Mac mini ייעודי. התקינו Xcode, רשמו את ה-Runner, הריצו אותו כשירות ושמרו על בילדים מהירים ופרטיים.
30 דק׳ קריאה, עודכן 2026-09-15
ה-Runners של macOS שמתארחים אצל GitHub הם מכונות משותפות. הם נכנסים לתור בשעות עומס, מתחילים קר בכל פעם ומחייבים לפי דקה.
Runner בהפעלה עצמית על Mac mini משלכם מתחיל מיד, שומר את המטמונים שלו בין בילדים ועולה אותו דבר כל חודש.
המדריך הזה לוקח בערך שלושים דקות. תצטרכו:
- Mac mini עם Apple silicon וגישת SSH
- הרשאות אדמין ב-repository או בארגון ב-GitHub
- Apple ID, כדי להוריד את Xcode
1. הכנת ה-Mac
התחברו דרך SSH ומנעו מה-Mac להיכנס למצב שינה:
sudo pmset -a sleep 0 disksleep 0 displaysleep 0התקינו את Homebrew:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"אנחנו ממליצים על משתמש נפרד ל-Runner, כך שבילדים אף פעם לא ירוצו בחשבון האדמין שלכם:
sudo sysadminctl -addUser runner -fullName "CI Runner" -password -התחברו כמשתמש הזה לשלבים הבאים.
2. התקנת Xcode
הדרך הפשוטה ביותר דרך SSH היא `xcodes`:
brew install xcodesorg/made/xcodes
xcodes install --latest
xcodes selectאשרו את הרישיון וסיימו את ההפעלה הראשונה:
sudo xcodebuild -license accept
xcodebuild -runFirstLaunch
xcodebuild -downloadPlatform iOS3. רישום ה-Runner
ב-GitHub, פתחו את ה-repository שלכם, ואז Settings, Actions, Runners, New self-hosted runner. בחרו macOS ו-ARM64.
GitHub מציגה את הפקודות המדויקות, עם הגרסה הנוכחית וטוקן. הן נראות כך:
mkdir actions-runner && cd actions-runner
curl -o actions-runner-osx-arm64.tar.gz -L <download URL from GitHub>
tar xzf ./actions-runner-osx-arm64.tar.gz
./config.sh --url https://github.com/<owner>/<repo> --token <token>הטוקן פג אחרי שעה, אז בצעו את הרישום מיד. כש-`config.sh` מבקש תוויות (labels), הוסיפו כאלה שתשתמשו בהן ב-workflows, כמו `xcode` או `m4`.
4. הרצה כשירות
./svc.sh install
./svc.sh start
./svc.sh statusה-Runner מתחיל עכשיו יחד עם סשן המשתמש. אם ה-jobs שלכם מריצים בדיקות UI או צריכים את צרור המפתחות של ההתחברות (login keychain), הפעילו התחברות אוטומטית למשתמש של ה-Runner בהגדרות המערכת, משתמשים וקבוצות. אפשר לעשות את זה דרך שיתוף מסך. התחברות אוטומטית אינה זמינה כש-FileVault מופעל.
5. שימוש ב-workflow
name: iOS build
on: [push]
jobs:
build:
runs-on: [self-hosted, macOS, ARM64]
steps:
- uses: actions/checkout@v4
- name: Build
run: xcodebuild -scheme MyApp -destination 'generic/platform=iOS Simulator' buildדחפו commit. ה-job מופיע תחת Actions ומתחיל על ה-Mac שלכם תוך שניות.
6. תחזוקה שוטפת
- רק repositories פרטיים. ב-repository ציבורי, pull request מ-fork יכול להריץ קוד על ה-Mac שלכם. GitHub ממליצה שלא להשתמש ב-Runners בהפעלה עצמית ב-repositories ציבוריים.
- נקו מדי פעם. DerivedData וסימולטורים ישנים גדלים עם הזמן:
rm -rf ~/Library/Developer/Xcode/DerivedData
xcrun simctl delete unavailable- חתימה. שמרו את התעודות בצרור מפתחות ייעודי, או השתמשו ב-fastlane match.
- עדכונים. ה-Runner מעדכן את עצמו כברירת מחדל. עדכנו את Xcode לפי לוח הזמנים שלכם, לא באמצע שחרור גרסה.
למה Mac mini ייעודי
- אף אחד אחר לא עליו. בילדים מתחילים ברגע שאתם דוחפים.
- מטמונים חמים. DerivedData, חבילות Swift ו-CocoaPods נשארים על הדיסק, כך שבילדים אינקרמנטליים מהירים הרבה יותר.
- שבבים אמיתיים. בדקו על אותו Apple silicon שיש למשתמשים שלכם.
- חודש אחד במחיר קבוע. בלי חיוב לפי דקה, בלי הפתעה בסוף ספרינט עמוס.
MacDuty מחזיקה בארונות שרתים באיחוד האירופי מחשבי Mac mini מ-M1 עד M6, עם macOS מותקן. הוסיפו את מפתח ה-SSH שלכם מאזור הלקוח.
במלאי היום
אלה נמצאים בארון עכשיו. בחרו אחד, ראו מה הוא כולל, ופתחו חשבון רק כשאתם מזמינים.
בודקים את הארונות
Mac mini משלכם
בחרו תצורה. אם היא לא זמינה, השאירו אימייל ונכתוב לכם ביום שהיא מותקנת בארון.
שנתי: לפחות 19% פחות מתשלום חודשי
הבא