2013-09-30 12 views
6

मैं एक Git परियोजना कि इतने के साथ जेनकींस स्थापित करने के लिए कोशिश कर रहा हूँ:जेनकींस/Git: निर्माण शाखाओं + मैनुअल निर्माण से नवीनतम किसी भी प्रतिबद्ध से

  1. यह एक पैटर्न मिलान शाखाओं से निर्माण करेगा (मूल/गुरु, मूल/सुविधा/*, मूल/हॉटफिक्स/ *, आदि) जब भी परिवर्तन, केंद्रीय भंडार के लिए धकेल दिया जाता है

  2. डेवलपर्स और परीक्षकों किसी भी संशोधन वे चाहते हैं के लिए एक निर्माण को गति प्रदान कर सकते हैं के रूप में निर्दिष्ट एक निर्माण पैरा मीटर जो एक टैग नाम, शाखा का नाम या प्रतिबद्ध हैश है। नौकरी के अन्य पैरामीटर हैं और हम कभी-कभी डिफ़ॉल्ट मानों के अलावा किसी अन्य चीज़ के साथ बिल्ड बनाना चाहते हैं।

मैं 1. मिला है Git सर्वर पर एक स्क्रिप्ट के बाद प्राप्त की स्थापना और जेनकींस में कई शाखा विनिर्देशक जोड़कर सही ढंग से काम।

2 करने के लिए, मैंने अतिरिक्त बिल्ड पैरामीटर GitRef जोड़ा और फिर $GitRef के साथ एक अतिरिक्त शाखा विनिर्देश जोड़ा। मैन्युअल रूप से एक निर्माण शुरू करने के बाद हर बार एक ही प्रतिबद्ध/शाखा से निर्माण करना होगा, जो भी पैरामीटर सेट किया गया था। अगर मैंने अन्य सभी शाखा विनिर्देशों को हटा दिया है, तो मैन्युअल बिल्ड अपेक्षा के अनुसार काम करेगा। लेकिन फिर हुक-ट्रिगर निर्मित केवल मूल/मास्टर ($GitRef का डिफ़ॉल्ट मान) से निर्मित होगा।

क्या मैं हर परियोजना के लिए दो नौकरियों के बिना भी संभव हासिल करने की कोशिश कर रहा हूं? यदि हां, तो इसे काम करने के लिए मुझे क्या करने की ज़रूरत है?

+0

आप अभी तक इस विषय में रुचि रखते हैं? – kikicarbonell

+0

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

+0

आपको "गिटलाब मर्ज अनुरोध बिल्डर प्लगइन" जैसी कुछ चाहिए (रेफरी: https://wiki.jenkins-ci.org/display/JENKINS/Gitlab+Merge+Request+Builder+Plugin) – kikicarbonell

उत्तर

1
इसके बजाय किसी अन्य शाखा विनिर्देशक के रूप में $GitRef का उपयोग करने का

, बस कोई डिफ़ॉल्ट मान के साथ एक स्ट्रिंग वैरिएबल के रूप में उपयोग। फिर, जेनकींस में अपने निर्माण चरण के पहले कदम के रूप में, एक स्क्रिप्ट है कि मान सेट है की जाँच करता है कि राशि: इस बिंदु पर

#!/bin/bash 
if [ -n $GitRef ] 
then 
    echo "Manually specified reference found. Building $GitRef" 
    git checkout $GitRef 
else 
    echo "No explicit branch specified, building $GIT_BRANCH" 
fi 

, सामान्य के अनुसार अपने निर्माण चलाने (जैसे Maven)। बिल्ड जो भी शाखा/टैग/प्रतिबद्धता को संकलित करना चाहता है, उसे चलाएगा, और यदि यह अस्तित्व में नहीं है तो जेनकिन्स को निर्माण में विफल होने से git checkout <bad_ref> का ख्याल रखना चाहिए।

2

आप Git Parameters Plugin आप उपयोगकर्ताओं को किसी विशेष का उपयोग कर एक पैरामिट्रीकृत निर्माण शुरू करने के लिए अनुमति दे सकते हैं प्रतिबद्ध आईडी, शाखा या टैग स्थापित कर लेते हैं।

फिर आप ** के रूप में और डिफ़ॉल्ट रूप से, जेनकींस का निर्माण करेगा शाखाओं पर नवीनतम प्रतिबद्ध अपने मानकों के लिए डिफ़ॉल्ट मान सेट कर सकते हैं।

संबंधित मुद्दे