GitHub Actions के लिए self-hosted macOS रनर
self-hosted macOS रनर आपके कंट्रोल वाला एक Mac है। यह GitHub की शेयर की गई क्लाउड मशीनों की जगह आपके GitHub Actions जॉब चलाता है। आप रनर को एक बार रजिस्टर करते हैं और वर्कफ़्लो को उसकी ओर पॉइंट करते हैं। फिर आपके बिल्ड ऐसे हार्डवेयर पर चलते हैं जो जॉब के बीच वॉर्म रहता है।
टीमें होस्टेड macOS रनर क्यों छोड़ती हैं
GitHub macOS रनर के लिए लगभग $0.062 से $0.102 प्रति मिनट लेता है। यह Linux की दर का लगभग दस गुना है। कभी-कभार के बिल्ड के लिए यह कीमत ठीक है। पर रोज़ शिप करने वाली टीम के लिए यह महंगी है। मशीन आपकी हो, तो तीन चीज़ें बदलती हैं:
- खर्च इस्तेमाल के साथ नहीं बढ़ता। फ़्लैट मासिक मशीन का खर्च एक जैसा रहता है, चाहे आप 1,000 मिनट चलाएँ या 20,000।
- कैश बने रहते हैं। DerivedData, CocoaPods, SwiftPM और npm के कैश लोकल SSD पर रहते हैं। इसलिए इन्क्रीमेंटल बिल्ड वह ज़्यादातर काम छोड़ देते हैं, जो नया रनर हर बार दोहराता है।
- एनवायरनमेंट स्थिर रहता है। आप Xcode एक बार पिन करते हैं। आपको किसी और के शेड्यूल पर आने वाले होस्टेड इमेज अपडेट के हिसाब से नहीं बदलना पड़ता।
कमियाँ, साफ़ शब्दों में
self-hosting की भी कमियाँ हैं। एक मशीन पर जॉब एक के बाद एक चलते हैं। इसलिए बड़े पैरेलल मैट्रिक्स के लिए ज़्यादा यूनिट चाहिए। अगर आप बाहरी, अनजान पुल रिक्वेस्ट बिल्ड करते हैं, तो रनर की सुरक्षा आपकी ज़िम्मेदारी है। इसीलिए GitHub self-hosted रनर को प्राइवेट रिपॉज़िटरी के लिए सुझाता है। और किसी को macOS अपडेट, Xcode इंस्टॉल और रनर सर्विस को चालू रखने का ज़िम्मा लेना पड़ता है।
MacRun इसी आख़िरी हिस्से को आपसे हटाने के लिए है। आपको डेडिकेटेड मशीन और फ़्लैट कीमत मिलती है। प्रोविज़निंग, निगरानी और वाइप हम संभालते हैं।
वर्कफ़्लो में क्या बदलता है
रनर रजिस्टर करना एक बार का कमांड है। उसके बाद पाइपलाइन में बस दो लाइनें बदलती हैं:
jobs: build: - runs-on: macos-latest + runs-on: [self-hosted, macOS, macrun-unit-01]
बाकी सब वैसा ही रहता है, आपके मौजूदा स्टेप, सीक्रेट और आर्टिफ़ैक्ट भी। पूरी प्रक्रिया सेटअप गाइड में है।
खुद बनाएँ या लीज़ पर लें
अगर आपके पास पहले से फ़ालतू Apple हार्डवेयर है और उसे संभालने वाला कोई है, तो अपने Mac पर self-hosting ठीक विकल्प है। अगर आप हार्डवेयर खरीदना, उसे रैक में लगाना और रनर सर्विस की देखभाल करना नहीं चाहते, तो लीज़ पर ली गई डेडिकेटेड मशीन लें। उसमें वही बचत है, बिना ऑपरेशन के काम के। अपना हिसाब कॉस्ट कैलकुलेटर पर लगाएँ।
अक्सर पूछे जाने वाले सवाल
self-hosted macOS रनर क्या है?
+
यह आपके कंट्रोल वाला Mac है, जो GitHub की शेयर की गई होस्टेड मशीनों की जगह आपके GitHub Actions जॉब चलाता है। आप Actions रनर एजेंट इंस्टॉल करते हैं और उसे अपनी रिपॉज़िटरी या ऑर्गनाइज़ेशन के साथ रजिस्टर करते हैं। फिर वर्कफ़्लो में runs-on लेबल से उसे चुनते हैं।
क्या self-hosted macOS रनर GitHub-होस्टेड से सस्ता है?
+
यह वॉल्यूम पर निर्भर है। GitHub-होस्टेड macOS का खर्च लगभग $0.062 से $0.102 प्रति मिनट है। फ़्लैट $139 प्रति माह वाला डेडिकेटेड रनर कम दर पर लगभग 2,242 मिनट प्रति माह पर बराबर हो जाता है। उसके बाद का हर मिनट मुफ़्त है।
क्या self-hosted रनर पब्लिक रिपॉज़िटरी के लिए सुरक्षित हैं?
+
GitHub self-hosted रनर को प्राइवेट रिपॉज़िटरी के लिए सुझाता है। वरना किसी फ़ोर्क का पुल रिक्वेस्ट आपकी मशीन पर अनजान कोड चला सकता है। अगर पब्लिक रिपो पर इन्हें इस्तेमाल करना ही है, तो फ़ोर्क वर्कफ़्लो के लिए अप्रूवल ज़रूरी करें। और रनर को हर उस चीज़ से अलग रखें जो आपके लिए अहम है।
क्या मुझे रनर सर्विस चालू रखनी होगी?
+
हाँ, जॉब लेने के लिए रनर का ऑनलाइन होना ज़रूरी है। MacRun पर एक निगरानी डेमन सर्विस पर नज़र रखता है। क्रैश होने पर वह इसे लगभग 30 सेकंड में फिर चालू कर देता है, इसलिए आपको इसकी निगरानी नहीं करनी पड़ती।