का उपयोग कर एकीकरण-प्रबंधक गिट वर्कफ़्लो ProGit में वर्णित किसी भी संशोधित एकीकरण-प्रबंधक वर्कफ़्लो को लागू करने का प्रयास कर रहा हूं।जेनकिन्स/हडसन
इसके बजाय एक integration manager
के मर्ज करते समय, मैं डेवलपर के लिए अपने कोड प्रकाशित करने से पहले स्थानीय स्तर पर मर्ज करना चाहते हैं, और मैं एक Quality Gateway
कि इस तरह के कोड कवरेज और 100 का न्यूनतम स्तर के रूप में हमारे सतत एकीकरण मानकों को लागू करता है, चाहते हैं कोड को अन्य डेवलपर्स द्वारा चेक किए जाने वाले धन्य भंडार में प्रवेश करने से पहले, पास करने का परीक्षण किया जाता है। विचार यह है कि धन्य भंडार में कोड हमेशा न्यूनतम मानक को पूरा करता है जिसे हम परिभाषित करते हैं और हमेशा बनाते हैं।
मैं चाहता हूं कि जेनकिंस गुणवत्ता गेटवे की भूमिका निभाए, केवल सफल होने पर धन्य भंडार को कोड दबाए।
अब तक, मैंने सिस्टम स्थापित किया है ताकि निम्नलिखित सार्वजनिक प्रतिनिधि हों: धन्य भंडार, जेनकींस के लिए बिल्ड सर्वर पर एक भंडार, जो एक नंगे रेपो को गिटोसिस के माध्यम से उपयोग किया जाता है, और निश्चित रूप से डेवलपर के स्वयं के भंडार ।
मेरे पास डेवलपर्स धन्य रेपो से खींच रहे हैं और एकीकरण रेपो को दबा रहे हैं। अब मैं जेनकिन्स को एकीकरण रेपो से धन्य रेपो में सफल निर्माण को धक्का देने की कोशिश कर रहा हूं।
अभी तक, मैंने जो देखा है, वह एकमात्र विकल्प है जो मैं प्राप्त करने की कोशिश कर रहा हूं, जेनकिन्स प्रोजेक्ट कॉन्फ़िगरेशन में पोस्ट बिल्ड एक्शन के गिट प्रकाशक सेटिंग्स में "Push Only If Build Succeeds
" विकल्प है। हालांकि, यह विकल्प आपको पुश यूआरएल या रिमोट को पुश करने के लिए निर्दिष्ट करने की अनुमति नहीं देता है।
जैसा कि मैं इसे समझता हूं, गिट प्रकाशक सेटिंग्स रेपो जेनकिन्स के क्लोन को अपने कार्यक्षेत्र में जेनकिन्स के सार्वजनिक रेपो में वापस धक्का देगी, लेकिन मैं एक अलग रिमोट, धन्य भंडार को धक्का देना चाहता हूं।
क्या किसी के पास कोई सुझाव है कि मैं जेनकिंस को धन्य रेपो को कैसे धक्का दे सकता हूं?
संपादित करें 0: मैं एक पोस्ट चरण मेरी धन्य भंडार करने के लिए धक्का आदेश पर अमल करने डालने की कोशिश की। यह काम करता प्रतीत होता है, इसमें कोई त्रुटि नहीं है। हालांकि कोई बदलाव नहीं धकेल दिया जा रहा है और लॉग Git सोचता है कि दिखाने के लिए सब कुछ अप टू डेट है:
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESSFUL
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1 minute 7 seconds
[INFO] Finished at: Fri Nov 18 16:10:50 UTC 2011
[INFO] Final Memory: 19M/45M
[INFO] ------------------------------------------------------------------------
channel stopped
[My Project] $ /bin/sh -xe /tmp/hudson5604254372179801803.sh + git push [email protected]:my-project.git --all
Everything up-to-date
मैं क्यों Git सोचता पुश करने के लिए कुछ भी नहीं है, क्योंकि वहाँ निश्चित रूप से है पता नहीं है।
दिलचस्प लग रहा है, लेकिन केवल एक चीज यह जोड़ती है कि हमारी वर्तमान प्रक्रिया में औपचारिक समीक्षा प्रक्रिया नहीं है। हमारी परियोजनाओं को मंत्रमुग्ध कर दिया गया है, इसलिए यदि वे निर्माण पास करते हैं तो हम जानते हैं कि वे परीक्षण और अन्य आवश्यकताओं को पार करते हैं जिन्हें हमने परिभाषित किया है।ऐसा लगता है कि एक और उपकरण हमारे पर्यावरण को जटिल बनाने के लिए उचित साबित करने के लिए पर्याप्त नहीं है (हमारी प्रक्रिया में)। मैं ध्यान में रखूंगा क्योंकि हमारी ज़रूरतें बदलती हैं, धन्यवाद! – chrisbunney
मैं जटिलता को सीमित करने की आवश्यकता को समझता हूं :-) मेरा मतलब है कि यह समीक्षा दोनों जोड़ता है और यह आपके आशीर्वाद रेपो के लिए प्रतिबद्ध होने से पहले प्रत्येक परिवर्तन पर सीआई/टेस्ट पास परिणामों की रिपोर्ट करता है। –
हाँ, जब हम उस चरण तक पहुंच जाएंगे तो यह अच्छा होगा :) – chrisbunney