github - क्या गिटहब वेबहोक्स को तीन श्रेणियों में अलग करना है: मास्टर, पुल-अनुरोध और कुछ और-अन्य?



jenkins (1)

मैं क्या करने की कोशिश कर रहा हूं निम्नलिखित जेनकिंस ( http://jenkins-ci.org ) नौकरी विन्यास:

  1. <project>-master का एक सेट <project>-master नौकरियों से शुरू हो रहे हैं

    • उस विशेष परियोजना की मास्टर शाखा में एक धक्का
    • मैन्युअल रूप से, "बिल्ड नाउ" पर क्लिक करके
    • REST API का उपयोग करके एक स्क्रिप्ट द्वारा।

    मैंने इसे उपयुक्त रेफेसपीक निर्दिष्ट करके पूरा किया है, गीथहब वेबहूक आदि को जोड़ा गया। यह बहुत सरल था

  2. <project>-pr नौकरियों का एक सेट है जिसके द्वारा शुरू किया गया है

    • एक गीथहब पीआर निर्माण
    • पीआर के लिए एक टिप्पणी जो कि गीथहब पुल अनुरोध बिल्डर को चालू करता है
    • शाखा को एक धक्का जो विशेष पीआर के लिए इस्तेमाल किया गया था

    मैंने जेनकिंस को पहले दो कर दिया है। लेकिन मुझे इस सूची से # 3 आइटम करने का कोई रास्ता नहीं मिला क्योंकि गीथहब प्लगइन्स आसानी से नहीं मिल पा रहे हैं कि पुश पीआर शाखा में है या नहीं कोई भी विचार यह कैसे किया जा सकता है?

  3. <project>-branch की एक <project>-branch नौकरी करें जो किसी भी शाखा को किसी भी धक्का से प्रेरित हो। समस्या यह है कि मैं मास्टर करने के लिए और पीआरएस के लिए उपयोग की जाने वाली शाखाओं को धक्का नहीं देना चाहता। मैंने दिन के लिए संभव समाधान के लिए इंटरनेट को देखा है और कुछ भी नहीं आया है, इसलिए किसी भी संकेत को काफी सराहना की जाएगी।


  1. केवल मास्टर शाखा में बदलावों से शुरू होने के लिए नौकरी के लिए, आपको गिथूब वेबबुक के साथ गड़बड़ करने की आवश्यकता नहीं है। आप केवल git plugins शाखा का उपयोग निर्दिष्ट करने के लिए निर्दिष्ट कर सकते हैं कि यह नौकरी केवल मास्टर शाखा के लिए चलती है
  2. अनुशंसा करते हुए Github PUll अनुरोध बिल्डर प्लगइन का उपयोग करने के लिए एक नौकरी की स्थापना करना, यह आपके द्वारा सूचीबद्ध तीन स्थितियों के लिए केवल पीआर के लिए ट्रिगर करेगा

  3. जितना मुश्किल मुझे पता है ... जहां तक ​​मुझे पता है, जेनकिंस के लिए यह कोई आसान तरीका नहीं है कि एक शाखा को पुल का अनुरोध किया गया है या नहीं, क्योंकि पुल अनुरोध गिथूब के लिए विशिष्ट हैं, और जेनकींस शाखा का पता लगाने के लिए सिर्फ गिट का उपयोग करना है।

हालांकि, मेरे अनुभव से, इस तीसरे विकल्प के लिए, मैंने एक <project>-feature नौकरी की स्थापना की है, और इसे किसी भी शाखा से मिलान करने के लिए कॉन्फ़िगर किया है जो कि f/ साथ प्रीफ़िक्सेल है। इस तरह, यदि कोई डेवलपर अपनी शाखा के खिलाफ स्वचालित रूप से निष्पादित करने के लिए परीक्षण करना चाहता था, लेकिन इसके खिलाफ पुल का अनुरोध नहीं खोलना चाहता था, तो वह वहां शाखा बना सकता था जैसे कि f/add_a_thing , और यह स्वचालित रूप से धक्का पर परीक्षण ट्रिगर करेगा। इसके लिए काम करने के लिए, मैं नौकरी विन्यास में शाखा विनिर्देशक को f/* में सेट करूँगा।

वैकल्पिक रूप से, git प्लग इन शाखा विनिर्देशक को एक नियमित अभिव्यक्ति पैरामीटर के लिए अनुमति देता है मास्टर शाखा को अनदेखा करने के लिए आप नियमित अभिव्यक्ति का उपयोग कर सकते हैं हालांकि, अनुरोधित शाखाओं को पुल करने का एकमात्र तरीका है, अपने डेवलपर्स को नामकरण पद्धति, जैसे कि pr/add_a_thing करने के लिए, यह पहचानने के लिए कि यह शाखा इसके साथ एक पुल का अनुरोध करेगी।





jenkins