2012-03-28 15 views
8

के लिए सतत निर्माण प्रणाली मैं एक क्यूटी/सी ++ डेवलपर हूं।क्यूटी

  • लिनक्स
  • ओएस एक्स
  • Win32: मैं सेटअप करने के लिए एक सतत एकीकरण वातावरण जिससे स्रोत कोड करने के बाद, यह एक निर्माण प्रक्रिया है कि 3 प्लेटफॉर्म मैं उपयोग कर रहा हूँ के लिए कोड का निर्माण चलाता है चाहते हैं

यदि संभव हो, तो मैं इस तरह के पर्यावरण को कैसे सेटअप करूं। किसी भी संकेत या लिंक का स्वागत है। मैंने जेनकींस के बारे में पढ़ा है, लेकिन मुझे इसके लिए कोई अच्छा ट्यूटोरियल नहीं मिल रहा है।

+0

एसवीएन सिस्टम हो सकता है कि आप स्रोत कोड को एक एपीआई रखते हैं जिसका उपयोग आप ऐसी घटनाओं (जैसे प्रतिबद्ध) को कैप्चर करने के लिए कर सकते हैं? – badmaash

+2

यह एक प्रोग्रामिंग सवाल नहीं है। यह शायद http://programmers.stackexchange.com/ – Gray

उत्तर

0

निश्चित रूप से यह संभव है। अधिकांश संस्करण नियंत्रण प्रणाली सर्वर पक्ष पर कस्टम स्क्रिप्ट निष्पादित करने में सक्षम हैं। उनमें से कुछ (उदाहरण के लिए, गिट), हुक को स्थानीय स्तर पर प्राप्त करने के लिए है। git's post-commit hook पर एक नज़र डालें।

आपको केवल एक स्क्रिप्ट बनाने की आवश्यकता है जो क्रॉस-प्लेटफ़ॉर्म बिल्ड को ट्रिगर करेगा।

0

अधिकांश संस्करण नियंत्रण प्रणाली पोस्ट-प्रतिबद्ध हुक को अनुमति देते हैं ताकि आप निर्माण जैसी घटनाओं को दूर कर सकें। वैकल्पिक रूप से बिल्ड सिस्टम को स्रोत नियंत्रण भंडार को नियमित रूप से मतदान करने और अपने स्वयं के निर्माण शेड्यूलिंग को प्रबंधित करने के लिए कॉन्फ़िगर किया जा सकता है (इस प्रकार हम जेनकींस का उपयोग करते हैं)।

कुछ ध्यान में रखना है कि प्लेटफार्मों में पूर्ण निर्माण करने और उस अंतराल में चेक-इन की सामान्य संख्या में कितना समय लगेगा। यदि आपके पास उचित आकार वाली टीम या सीमित बिल्ड सर्वर संसाधन हैं, तो आपको बैचिंग चेक-इन निरंतर एकीकरण करने का एक बेहतर तरीका मिल सकता है। अन्यथा आपका निर्माण प्रणाली जल्दी पकड़ने की कोशिश कर समाप्त हो सकता है।

चाहे सभी लक्षित प्लेटफ़ॉर्म पर निर्माण करना संभव हो, यह आपकी टूल श्रृंखला पर निर्भर करता है।

2

दो मेरे मन में आ रहा है समाधान:

BuildBot

BuildBot एक उच्च अनुकूलन निरंतर एकीकरण प्रणाली पायथन में लिखा है। मास्टर घटक बिल्ड करने और ट्रिगर करने के लिए एक अच्छा वेब-आधारित जीयूआई प्रदान करता है; दास घटकों को लक्षित मशीनों पर रखा जाता है (आमतौर पर आभासी मशीनें लेकिन वे डेवलपर्स में से एक का मैक लैपटॉप हो सकती हैं)। डॉक्स एक बुनियादी प्रणाली बनाने के लिए पर्याप्त हैं, अनुकूलन थोड़ा मुश्किल हो सकता है (कम से कम यह मेरे लिए था)। वीसी सिस्टम द्वारा प्रदान किए गए प्रतिबद्ध/पुश हुक का उपयोग करके आप आसानी से मास्टर को सक्रिय कर सकते हैं और दासों में निर्माण को ट्रिगर कर सकते हैं। यह वृद्धिशील बिल्डों का भी समर्थन करता है (यदि आपकी परियोजना बड़ी है तो जरूरी है)।

CDash

CMake के लेखकों द्वारा विकसित, CDash एक वेब अनुप्रयोग संग्रह नेटवर्क के पार से आने वाले बनाता है, आप के लिए वास्तव में क्या नहीं कहा लेकिन मुझे लगता है कि यह एक कोशिश के लायक है है। बहुत शक्तिशाली यदि आपके पास डेवलपर्स की एक टीम है जो सर्वर पर अपनी मशीनों पर निरंतर निर्माण परिणाम सबमिट कर सकती है (और यदि आप सीएमके का उपयोग करते हैं तो यह लगभग पारदर्शी है)। आप बिल्डबॉट के रूप में सर्वर से बिल्ड को ट्रिगर नहीं कर सकते हैं, लेकिन आप क्रॉन के साथ वीएम का एक गुच्छा सेट कर सकते हैं जो परिवर्तनों की जांच करता है और यदि केस बनाता है और सीडीएश

+0

पर आधारित है जिसका मतलब है बिल्डबॉट? मुझे यूनिक्स और मैक पर जी ++ के साथ अपनी परियोजना का निर्माण करना है, लेकिन मुझे लगता है कि मैं इसे विंडोज़ के तहत संकलित करने के लिए एमएसवीसी 2008 का उपयोग कर रहा हूं। बिल्डबॉट हैंडल गैर-यूनिक्स सिस्टम के साथ कैसे संभव है? मैंने विंडोज़ के निर्माण के लिए तैयार वर्चुअल मशीन तैयार की है, लेकिन इस दृष्टिकोण में यह त्रुटि प्रवण है और बहुत स्वचालित नहीं है ... – linello

+0

मैं क्यूमेक का उपयोग कर विंडोज़ के तहत निर्माण करने के लिए मिनजीडब्लू टूलचेन का उपयोग करता हूं, लेकिन हम सीएमके में माइग्रेट करने की योजना बना रहे हैं, वीएस परियोजनाओं को संभाल सकते हैं। दोनों मामलों में बिल्डबॉट गुलाम बिल्ड कर सकता है। – Masci

+0

हम क्रॉस-प्लेटफार्म क्यूटी विकास (मैक, विंडोज, लिनक्स) के लिए बिल्डबॉट सीआई का उपयोग करते हैं और यह अच्छी तरह से काम करता है (एसवीएन और गिट भंडार)। हालांकि विभिन्न गिट शाखाओं के निर्माण के लिए समर्थन बेहतर हो सकता है। –

2

जेनकिंस सभी प्रमुखों के लिए प्लगइन के माध्यम से इस सुविधा का समर्थन करता है स्रोत नियंत्रण प्रणाली। यदि आप जेनकींस का उपयोग करने पर गंभीरता से विचार करते हैं (और मैं अत्यधिक अनुशंसा करता हूं), John Ferguson Smart's Jenkins: The Definitive Guide खरीदने पर विचार करें।

4

मैं भी कई कारणों से जेनकींस सुझाव देते हैं:

  • यह प्लेटफार्मों आप सूचीबद्ध सभी पर चलेंगे।
  • यह भंडार अद्यतन होने पर निर्माण शुरू करने के लिए कॉन्फ़िगर किया जा सकता है (संकेत: नौकरी को "पोल एससीएम" में कॉन्फ़िगर करें और आपको जेएनकिंस को भवन शुरू करने के लिए कहने के लिए अपने एससीएम उपकरण के साथ मिलना नहीं होगा)।
  • यह यूनिट परीक्षण के लिए अच्छा समर्थन (ज्यादातर प्लगइन के माध्यम से) प्रदान करता है। [आप सही हैं परियोजना इकाई परीक्षण कर रहा है,?]
  • कीमत सही

एक बड़ा मुद्दा है जा रहा है है AFAIK, क्यूटी नहीं वास्तव में है अन्य प्लेटफार्मों के लिए अच्छी तरह से पार संकलन करता है वह यह है कि । जेनकींस (और उचित प्लगइन्स) का उपयोग करके, आपको इसे हल करने में सक्षम होना चाहिए।

एक विधि जो जल्दी से दिमाग में आती है वह प्रत्येक प्लेटफॉर्म पर जेनकींस का उदाहरण है। प्रत्येक उदाहरण अपने मंच के लिए संस्करण बनाने के लिए ज़िम्मेदार है। निर्माण के अंत में, निर्मित कलाकृतियों को सभी एक साझा, साझा स्थान में डाल दिया जाता है।

+5

> [प्रत्येक प्लेटफ़ॉर्म पर जेनकींस का एक उदाहरण] - प्रत्येक प्लेटफ़ॉर्म पर जेनकिन्स गुलाम बेहतर होगा - इस तरह आपके पास एक केंद्रीय नियंत्रण है, प्रत्येक उदाहरण को अपडेट करने की आवश्यकता नहीं है, कलाकृतियों को मास्टर पर संग्रहीत किया जाता है। –