हडसन (या इसके कांटा Jenkins) स्थापित करने के लिए वास्तव में कड़ी मेहनत नहीं है; यह हम आंतरिक रूप से उपयोग करते हैं। हम सिर्फ आईफोन बिल्डों को नहीं चलाते हैं - असल में, आईफोन बिल्ड के लिए केवल एक अकेला मैक मिनी सेट अप है, और यह अपेक्षाकृत हालिया जोड़ है। कुछ समय के लिए हमारे पास अन्य विभिन्न प्लेटफार्मों के लिए आधा दर्जन अन्य दास हैं।
Meet Hudson पृष्ठ पर आप "टेस्ट ड्राइव" लिंक के माध्यम से इसके साथ खेल सकते हैं ताकि यह महसूस हो सके कि इसे सेट करना कितना आसान है। (यह उन चीजों में से एक है जिसने मुझे बेच दिया; यह शुरू करना वास्तव में आसान था, लेकिन अभी भी कॉन्फ़िगर करने योग्य, एक्स्टेंसिबल और शक्तिशाली है जो हमें पिछले कुछ वर्षों में विस्तारित रखने के लिए पर्याप्त है। यह वास्तव में हाथों की एक पतली ढेर को बदल देता है। लुढ़का स्क्रिप्ट और प्रोग्राम, जो लेखक होने के बावजूद, मैं आराम करने के लिए देखकर बहुत खुश था।)
हमारे पास एक बेवकूफ मैक ओएसएक्स सर्वर पर चल रहे हडसन बैकएंड हैं, लेकिन ऐसा कोई कारण नहीं है कि आप इसे नहीं चला सकें कहीं भी कहीं भी (लिनक्स, विंडोज़, मैक)।
निर्माण के लिए यह विन्यस्त करने के लिए के रूप में - यह ज्यादातर xcodebuild
बुला और इसे पारित -project
और -configuration
तर्क, परियोजना विन्यास में खोल स्क्रिप्ट के बारे में 6 लाइनों है।
उदाहरण:
cd ${WORKSPACE}/Engineering/
set -e
set -v
xcodebuild -project foo.xcodeproj -alltargets -configuration Distribution clean
xcodebuild -project foo.xcodeproj -alltargets -configuration Release clean
xcodebuild -project foo.xcodeproj -alltargets -configuration Debug clean
xcodebuild -project foo.xcodeproj -alltargets -configuration Distribution
xcodebuild -project foo.xcodeproj -alltargets -configuration Release
xcodebuild -project foo.xcodeproj -alltargets -configuration Debug
हम अभी तक एक सेवा के रूप में चलाने के लिए गुलाम सेट नहीं किया है - इस TODO सूची में है। जब भी हम मिनी को चालू करते हैं, हम अभी इसे जेएनएलपी के माध्यम से लॉन्च करते हैं।
रिपोजिटरी एसवीएन है, और हडसन मास्टर हमारे लिए https ऑथ जानकारी याद रखने का ख्याल रखता है।
हम सक्रिय रूप से Email-ext प्लगइन का उपयोग करते हैं, और एक बिल्ड टाइमआउट प्लगइन और एक ऑडिट ट्रेल प्लगइन है क्योंकि सिस्टम का उपयोग करने वाले बहुत से अन्य लोग हैं और कुछ बिल्ड अच्छी तरह से व्यवहार नहीं कर रहे हैं। हमने Warnings प्लगइन और Static Code Analysis plugins के साथ संक्षेप में प्रयोग किया है, साथ ही उन परियोजनाओं पर उपयोग करने की आवश्यकता है (हमारे पास आमतौर पर निर्माण में त्रुटियों के रूप में चेतावनियां होती हैं, लेकिन हम कुछ परियोजनाओं पर पीसी-लिंट और अन्य टूल्स का उपयोग करते हैं; आउटपुट समेकित और यहां ट्रैक किया गया बहुत अच्छा है)। अंत में सभी महत्वपूर्ण Chuck Norris और Emotional Hudson प्लगइन्स।
हम वर्तमान में किसी भी आईफोन बिल्ड पर यूनिट परीक्षण (शर्मनाक!) नहीं चला रहे हैं, और हम बिल्डों को संग्रहीत करने के लिए हडसन में निर्मित सामान्य "आर्काइव आर्टिफैक्ट्स" कार्यक्षमता का उपयोग करते हैं। इन्हें हडसन वेब इंटरफ़ेस के माध्यम से अधिकृत उपयोगकर्ताओं के माध्यम से एक्सेस किया जा सकता है। मुझे कोई संदेह नहीं है कि आपके यूनिट परीक्षणों को ढांचे के भीतर चलाने के लिए मुश्किल नहीं होगी।
</fanboy >
हमारा केवल वास्तविक मुद्दों पर मैक मिनी एएफपी और एसएमबी के साथ क्या करना पड़ा है - सब पर हडसन के साथ कुछ नहीं है, और अधिक बस हमारी आंतरिक नेटवर्क के बुनियादी ढांचे। और मिनी मेरे स्वाद के लिए थोड़ा धीमा है - हम आमतौर पर सिद्धांत पर सुंदर मांसपेशियों के निर्माण दास चलाते हैं कि त्वरित ऑटोबल्ड टर्नअराउंड एक अच्छी बात है। कुछ कारणों से मिनी को इस कारण से एसएसडी उपहार दिया जा सकता है।
मैक ओएस एक्स सर्वर संकलन के संबंध में कुछ भी विशेष नहीं जोड़ता है। – Seth
@shader ऐसा लगता है कि आपने उस सामग्री को हटा दिया है। – ThomasW