GitHub रेपो पर जेनकींस निर्माण की वर्तमान स्थिति दिखाएं


182

क्या जेनकींस को मेरी परियोजना के GitHub Readme.md पर स्थिति दिखाने का एक तरीका है?

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

अभी भी अनजाने में कुछ ऐसा करने का जोखिम है जो निर्माण को तोड़ता है। GitHub प्रोजेक्ट पेज पर जाने वाले उपयोगकर्ताओं के लिए यह जानना अच्छा होगा कि वर्तमान मास्टर उस स्थिति में है।


9
यह डाउन-वोट क्यों किया गया? क्या जेनकींस उपयोगकर्ता-गाइड में कुछ स्पष्ट है जो मुझे याद आया? मैंने पहले हाथ से गूगल किया, और कुछ भी नहीं पाया।
जैस्पर ब्लूज

1
ट्रैविस बिल्ड सर्वर कुछ ऐसा कर सकता है, लेकिन मैं ओनेक्स पर जेनकिंस का उपयोग कर रहा हूं। यहाँ मैं इसके बाद की तरह हूँ: github.com/CocoaPods/CocoaPods
जैस्पर ब्लूज़


2
इसी तरह के सवाल का लिंक ट्रैविस की सिफारिश करता है, जो वर्तमान में आईओएस और ओएसएक्स का समर्थन नहीं करता है, इसलिए यह सवाल का जवाब नहीं देता है।
जैस्पर ब्लूज

4
यह डुप्लिकेट नहीं है .. ट्रैविस! =
जेनकींस

जवाबों:


166

ठीक है, यहाँ है कि आप जेनकिन्स को गीथहब बिल्ड स्टेटस सेट करने के लिए कैसे सेट कर सकते हैं। यह मानता है कि आप पहले से ही हर धक्का पर बनाने के लिए कॉन्फ़िगर किया गया GitHub प्लगइन के साथ जेनकिंस मिला है।

  1. GitHub पर जाएं, लॉग इन करें, सेटिंग्स पर जाएं , व्यक्तिगत एक्सेस टोकन , जनरेट नया टोकन पर क्लिक करें ।

    GitHub सेटिंग्स का स्क्रीनशॉट

  2. रेपो की जांच करें : स्थिति (मुझे यकीन नहीं है कि यह आवश्यक है, लेकिन मैंने इसे किया, और यह मेरे लिए काम किया)।

    GitHub टोकन पीढ़ी का स्क्रीनशॉट

  3. टोकन जेनरेट करें, उसे कॉपी करें।

  4. सुनिश्चित करें कि आप जिस GitHub उपयोगकर्ता का उपयोग करने जा रहे हैं, वह एक रिपॉजिटरी सहयोगी (निजी रिपॉजिट के लिए) है या आप जिस रिपॉजिटरी को बनाना चाहते हैं, उसके लिए पुश एंड पुल एक्सेस (संगठन रेपो के लिए) के साथ एक टीम का सदस्य है।

  5. अपने जेनकिंस सर्वर पर जाएं, लॉग इन करें।

  6. जेनकिंस प्रबंधित करेंसिस्टम कॉन्फ़िगर करें
  7. के तहत GitHub वेब हुक का चयन Let जेनकींस हुक यूआरएल ऑटो का प्रबंधन है, तो अपने GitHub निर्दिष्ट उपयोगकर्ता नाम और OAuth टोकन आप चरण 3 में मिला है।

    जेनकींस वैश्विक सेटिंग्स का स्क्रीनशॉट

  8. सत्यापित करें कि यह टेस्ट क्रेडेंशियल बटन के साथ काम करता है । सेटिंग्स सहेजें

  9. जेनकिंस नौकरी खोजें और GitHub पर सेट बिल्ड स्थिति पोस्ट-बिल्ड चरणों के लिए प्रतिबद्ध करें

    जेनकिंस नौकरी विन्यास का स्क्रीनशॉट

बस। अब एक परीक्षण का निर्माण करते हैं और यह देखने के लिए GitHub रिपॉजिटरी में जाते हैं कि क्या यह काम करता है। निर्माण की स्थिति देखने के लिए मुख्य भंडार पृष्ठ में शाखाओं पर क्लिक करें ।

मुख्य पृष्ठ का sensenshot जहाँ आप 'शाखाओं' पर क्लिक करते हैं

आपको हरे रंग के चेकमार्क देखने चाहिए:

GitHub शाखाओं का स्क्रीनशॉट बिल्ड स्टेटस के साथ


GitHub ने अब अपने प्राधिकरण वर्कफ़्लो को अपडेट किया है, उपयोगकर्ता अब निर्दिष्ट नहीं करते हैं कि क्या अनुमति देनी चाहिए, बल्कि अनुप्रयोगों को अनुरोध करना होगा कि उन्हें प्राधिकरण के दौरान क्या चाहिए और उपयोगकर्ता अनुरोधित अनुमतियों को अनुमोदित करता है।
इयान वॉन

6
इस प्लग वी 1.13.3 जेनकींस> 1,609 और Github के साथ काम करने के लिए प्रतीत नहीं होता है - मैं विकल्प "Let जेनकींस ऑटो का प्रबंधन हुक यूआरएल" नहीं मिल सकता है
Endre

2
मैं @ पाइलेवेन के साथ सम्‍मिलित हूं। मैं जेनबुक एलटीएस 1.625.3 का उपयोग जीथब प्लगिन 1.16.0 और जीथब एपीआई प्लगिन 1.71 के साथ कर रहा हूं। यह विकल्प दिखाई नहीं देता है। बल्कि मैं क्रेडेंशियल्स के लिए एक ड्रॉप डाउन देखता हूं, लेकिन कोई भी क्रेडेंशियल्स सूचीबद्ध नहीं हैं (भले ही मेरे पास क्रेडेंशियल्स सेट हैं)। एडवांस में जाने पर ये क्रेडेंशियल दिखाई देते हैं-> एडिशनल जीथब एक्शन को मैनेज करें -> लॉगइन और पासवर्ड को गिथब टोकन में बदलें।
शहजान

4
यह पुराना प्रतीत होता है; उत्तर-निर्माण की कार्रवाई के बाद इस उत्तर का उल्लेख अब पदावनत के रूप में चिह्नित किया गया है और एक दूसरा एक है
डेन्थ

1
अब पोस्ट बिल्ड स्टेप पैरामीटर बदल दिए गए हैं। @ एलेक्स के पास सही उत्तर है।
बिबेक मन्त्रि

50

इस बीच जेनकींस और गिटहब का यूआई थोड़ा बदल गया है और मुझे यह पता लगाने में थोड़ा समय लगा कि जेनकिंस को अब कैसे सही तरीके से कॉन्फ़िगर किया जाए। यहाँ स्पष्टीकरण जेनकिंस संस्करण 2.121.1 पर आधारित है।

मैं यह भी मानता हूं कि आपने पहले ही अपनी जेनकींस जॉब को वेबबुक या मतदान द्वारा ट्रिगर किया है। वे चरण हैं जो मैंने इसे काम करने के लिए उठाए हैं:

  1. Github कॉन्फ़िगर करें: OAuth स्कोप के साथ व्यक्तिगत एक्सेस टोकन बनाएं repo:status
  2. जेनकिंस कॉन्फ़िगर करें: Configure Systemऔर OAuth सीक्रेट को GitHub सर्वर के रूप में जोड़ें - Secret TextOAuth सीक्रेट को वहां लगाने के लिए एक प्रमाणीकरण विधि के रूप में उपयोग करें ।
  3. अपने जेनकींस जॉब को कॉन्फ़िगर करें: पोस्ट-बिल्ड एक्शन केSet GitHub commit status रूप में जोड़ें । सेट स्थिति के परिणाम के लिए ।One of the default messages and statuses
  4. GitHub पर अपना परिणाम देखें: जाँच करें कि क्या आपको बिल्ड की स्थिति मिली है और अपने GitHub कमिट पर निष्पादन अवधि का निर्माण करें।

Github कॉन्फ़िगर करें

पर्सनल एक्सेस टोकन बनाएं


यहां छवि विवरण दर्ज करें


यहां छवि विवरण दर्ज करें


यहां छवि विवरण दर्ज करें


जेनकिंस को कॉन्फ़िगर करें

यहां छवि विवरण दर्ज करें


यहां छवि विवरण दर्ज करें


यहां छवि विवरण दर्ज करें


यहां छवि विवरण दर्ज करें


यहां छवि विवरण दर्ज करें


जेनकिंस जॉब को कॉन्फ़िगर करें

यहां छवि विवरण दर्ज करें


यहां छवि विवरण दर्ज करें


यहां छवि विवरण दर्ज करें


परिणाम

अब आपको अपने कमिट और शाखाओं की स्थिति दिखाई देगी:

यहां छवि विवरण दर्ज करें


2
वाह अंत में एक समाधान मिला, बहुत बहुत धन्यवाद! उस "गुप्त पाठ" ने मुझे भ्रमित कर दिया।
हेड 01

जेनकिंस स्टेटस को आगे बढ़ाते नजर आ रहे हैं, लेकिन मेरा प्राइवेट रेपो उन पर नहीं चढ़ रहा है। कोई सुझाव?
पैट्रिक

अपडेट: मेरा मुद्दा मेरे रेपो की गोपनीयता से संबंधित था। मुझे अपने क्रेडेंशियल सेटअप के साथ एक समस्या होनी चाहिए।
पैट्रिक

अद्यतन: अंततः मुझे यह केवल तभी पता चला जब इसे वास्तविक गिट पुश द्वारा ट्रिगर किया गया था। बिल्ड को स्वयं चलाने से स्टेटस अपडेट सही तरीके से ट्रिगर नहीं होता है।
पैट्रिक

1
Manage Hooksजब हम बचाने यह unticked होना चाहिए है बॉक्स, पर प्रकाश डाला गया है, लेकिन इसके बाद के संस्करण छवियों में टिक नहीं कि मतलब?
पेप्लेक्सबॉट

37

मैंने जो किया वह काफी सरल है:

  1. हडसन पोस्ट टास्क प्लगइन स्थापित करें
  2. यहां एक निजी एक्सेस टोकन बनाएं: https://github.com/settings/tokens
  3. एक पोस्ट टास्क प्लगिन जोड़ें जो हमेशा सफलता देता है

    curl -XPOST -H "Authorization: token OAUTH TOKEN" https://api.github.com/repos/:organization/:repos/statuses/$(git rev-parse HEAD) -d "{
      \"state\": \"success\",
      \"target_url\": \"${BUILD_URL}\",
      \"description\": \"The build has succeeded!\"
    }"
    
  4. एक पोस्ट टास्क प्लगइन जोड़ें जो विफलता को "विफलता के रूप में चिह्नित करें"

    curl -XPOST -H "Authorization: token OAUTH TOKEN" https://api.github.com/repos/:organization/:repos/statuses/$(git rev-parse HEAD) -d "{
      \"state\": \"failure\",
      \"target_url\": \"${BUILD_URL}\",
      \"description\": \"The build has failed!\"
    }"
    
  5. आप परीक्षणों की शुरुआत में लंबित कॉल भी जोड़ सकते हैं

    curl -XPOST -H "Authorization: token OAUTH TOKEN" https://api.github.com/repos/:organization/:repos/statuses/$(git rev-parse HEAD) -d "{
      \"state\": \"pending\",
      \"target_url\": \"${BUILD_URL}\",
      \"description\": \"The build is pending!\"
    }"
    

पोस्ट का स्क्रीनशॉट कार्य कॉन्फ़िगरेशन का निर्माण करता है


आप यह भी कर सकते हैं कि पाइपलाइन से - उदाहरण के लिए, आप इसके माध्यम से कॉल कर सकते हैं shऔर यहां तक ​​कि जेनकिंस क्रेडेंशियल स्टोरेज का भी लाभ उठा सकते हैंwithCredentials
इवान कोलमिचेक

टीमसिटी के लिए आप उपयोग कर सकते हैं: confluence.jetbrains.com/display/TCD10/Commit+Status+Publisher
Natim

24

यह प्लगइन काम करना चाहिए: https://wiki.jenkins-ci.org/display/JENKINS/Embeddable+Build+Status+Plugin

आपको अपनी README.mdफ़ाइल में इस तरह बैज एम्बेड करने में सक्षम होना चाहिए :

निर्माण गुजर रहा है


6
अफसोस की बात है, ऐसा लगता है कि GitHub ने इन इमेज को कुछ इमेज होस्टिंग सर्विस पर कैशिंग करना शुरू कर दिया, और उन्हें अब गलत तरीके से प्रदर्शित किया जा रहा है।
axel22

अब यह ठीक काम करता है यदि आपने सही तरीके से पहुंच स्थापित की है (अनाम उपयोगकर्ता को बिल्ड स्थिति देखने में सक्षम होना चाहिए)
दिमित्री मेशकोव

11

कमिट स्थिति API आप "को देखने के लिए अनुमति देता है रेपो स्थितियां एपीआई "।

और 26 अप्रैल 2013 के बाद से, अब आप अपने GitHub रेपो शाखा पृष्ठ पर निर्माण स्थिति देख सकते हैं :

GitHub रेपो शाखाओं पर निर्माण की स्थिति

इसका मतलब यह है कि यह एक और तरीका है, GitHub परियोजना पृष्ठ पर जाकर, केवल जेनकिंस होने के बजाय उन स्थितियों को देखने के लिए।

30 अप्रैल, 2013 से, शाखा और टैग नामों के साथ-साथ प्रतिबद्ध SHAs की अनुमति देने के लिए प्रतिबद्ध स्थितियों के लिए API समापन बिंदु बढ़ाया गया है ।


मैं हिट करने के लिए URL कहाँ से डालूँ? क्या कोई प्लगिन है या क्या मुझे बिल्ड स्टेप में उपयोगकर्ता कर्ल करना है?
इयान वघन

@IanVaughan का क्या मतलब है "हिट"? क्या देखने के लिए? एक स्थिति देखने के लिए, यह एक होगा curl( डेवलपर।
Github.com/v3/repos/statuses/…

क्षमा करें, हाँ, मुझे पता था कि कर्ल का उपयोग किया जा सकता है, और मुझे एपीआई इंटरफ़ेस पता था, यह कर्ल को कहां रखा गया था, और यदि कर्ल से उच्च स्तर का अमूर्त उपलब्ध नहीं था, तो यह अधिक था? यानी मैं कमल POST जोड़ सकता हूं इससे पहले कि निर्माण शुरू होने के लिए प्रतिबद्ध / पीआर निर्माण कर रहा है, और फिर एक के बाद एक, लेकिन यह सब बहुत निम्न स्तर का लगता है, और उम्मीद कर रहा था कि मेरे लिए इस सामान के ऊपर एक उच्च स्तरीय प्लगइन था।
इयान वघन

मैंने तब से जानकी को पाया, जो मेरे उपयोग-मामले के लिए काफी भारी है, मुझे जो चाहिए वह करने लगता है।
इयान वघन


7

यदि आपके पास Githubप्लगइन स्थापित है Jenkins, तो आप इसे Post build actionsइस तरह से कर सकते हैं :

github पर सेट स्थिति बनाएँ



4
इस उत्तर में विवरण का अभाव है: मैं GitHub पर एक OAuth एक्सेस टोकन कैसे बनाऊं, ताकि GitHub प्लगइन एपीआई का उपयोग करने के लिए बिल्ड स्थिति सेट करने के लिए आवश्यक हो? इस टोकन पर किन अनुमतियों की आवश्यकता है? जेनकिंस कॉन्फ़िगरेशन में मैं उपयोगकर्ता नाम / टोकन कहां निर्दिष्ट कर सकता हूं?
मारियस गेदमिनस

2
यह वास्तव में उपयोगी नहीं है, आप इस संवाद खिड़की पर कैसे पहुंचे?
Oz123

5

अपने README.md में नीचे पंक्ति जोड़ें और अपने jenkins प्रोजेक्ट के अनुसार दोनों URL बदलें।

[![Build Status](https://jenkins../..project/lastBuild/buildStatus)](https://jenkins../..project/lastBuild/)

क्या ग्राफिक अपने आप लोड होता है? ऐसा लगता है कि यह मेरे लिए नहीं है ...
HX_unbanned

हाँ, यह काम नहीं करेगा। आपको अपना पेज रिफ्रेश करना होगा।
कौशल 12

3

जेनकिंस और गिटहब की संरक्षित शाखा की स्थापना के संबंध में। मैं जेनकिंस 2.6 का उपयोग कर रहा हूं, और ये कदम हैं जो मैंने इसे काम करने के लिए किए हैं:

आपके रिपॉजिटरी के GitHub वेबपेज पर:

  1. सेटिंग> शाखाओं पर नेविगेट करें।
  2. प्रोटेक्ट ब्रांच के तहत, एक ब्रांच द डाउन डाउन मेनू चुनें पर क्लिक करें और उस ब्रांच का चयन करें जिसे आप संरक्षित शाखा के रूप में सेट करना चाहते हैं।
  3. आवश्यकतानुसार विकल्पों को सक्षम करें।

जेनकिंस सर्वर पर: (सुनिश्चित करें कि आपके पास Git और GitHub Plugin स्थापित है)

  1. जेनकींस प्रबंधित करने के लिए नेविगेट करें> सिस्टम कॉन्फ़िगर करें।
  2. GitHub के तहत, API URL को https://api.github.com पर सेट करें । हालांकि यह डिफ़ॉल्ट मान है।
  3. क्रेडेंशियल के लिए अपने उत्पन्न टोकन का चयन करें। यदि आपने अभी तक कोई टोकन नहीं बनाया है, तो उन्नत पर क्लिक करें ... फिर अतिरिक्त क्रियाओं पर, आप अपने लॉगिन और पासवर्ड को टोकन में परिवर्तित कर सकते हैं और इसे अपने क्रेडेंशियल के रूप में उपयोग कर सकते हैं।

यह भी सुनिश्चित करें कि आपके जेनकिंस जिस GitHub खाते का उपयोग कर रहे हैं, वह भंडार के लिए एक सहयोगी है। मैंने इसे लिखने की अनुमति स्तर के साथ सेट किया है।

उम्मीद है की यह मदद करेगा।


2

मैंने एलेक्स से निर्देशों का पालन किया और इसने काम किया।

लेकिन, GitHub Enterprise के लिए आपको जेनकींस में सर्वर जोड़ते समय एपीआई URL को संशोधित करना होगा।

उदाहरण के लिए, यदि आपकी कंपनी creditcard.com है, तो आपका URL होगा

https://github.creditcard.com/api/v3/


1

अपने गितुब कमिट स्टेटस को अपडेट करें (जैसा कि @vonc द्वारा ऊपर वर्णित है), दुर्भाग्य से उनके पास रेपो स्टेटस एपीआई को लागू करने के लिए अभी तक है


1
वर्तमान में Github की स्थिति API का समर्थन करता है।
क्रॉज़ सिप

1

संपादित करें:

मैं अब इस दृष्टिकोण का उपयोग नहीं कर रहा हूं, कृपया अन्य उत्तरों में से एक का उपयोग करें।

अद्यतन: मैंने अपने विशिष्ट मामले के लिए क्या किया, (उत्तर ऊपर महान थे - धन्यवाद!)

चूँकि हमारा बिल्ड सर्वर इंटरनेट पर नहीं है, हमारे पास ghub में gh-pages शाखा में बिल्ड स्थिति प्रकाशित करने के लिए एक स्क्रिप्ट है।

  • बिल्ड स्टैम्प की शुरुआत विफल रही
  • निर्माण टिकटों की सफलता का अंत
  • प्रोजेक्ट परिणामों को प्रकाशित करने के लिए मुख्य प्रोजेक्ट के बाद चलता है -> बिल्ड-स्टेटस, एपीआई डॉक्स, टेस्ट रिपोर्ट और टेस्ट कवरेज।

GitHub छवियों को कैश करता है, इसलिए हमने .htaccess फ़ाइल बनाई है, जो बिल्ड-स्टेटस इमेज के लिए एक छोटी कैश टाइमआउट का निर्देश देती है।

निर्माण-स्थिति छवि के साथ निर्देशिका में इसे रखें:

ExpiresByType image/png "access plus 2 minutes"

यहाँ बिल्ड स्क्रिप्ट है। जीएच-पृष्ठों पर प्रकाशित होने वाला लक्ष्य '--publish.site.dry.run' है

400 से कम लाइनों के साथ, हमारे पास:

  • संकलित जाँच
  • इकाई और एकीकरण परीक्षण
  • परीक्षण रिपोर्ट
  • कोड कवरेज रिपोर्ट
  • एपीआई डॉक्स
  • जीथब को प्रकाशन

। । और यह स्क्रिप्ट जेनकिंस के अंदर या बाहर चलाई जा सकती है, ताकि:

  • डेवलपर्स इस स्क्रिप्ट को प्रतिबद्ध होने से पहले चला सकते हैं, एक टूटे हुए निर्माण की संभावना को कम करते हैं जो दूसरों को प्रभावित करता है।
  • एक विफलता स्थानीय रूप से पुन: पेश करना आसान है।

परिणाम:

प्रोजेक्ट मुख्य पृष्ठ में बिल्ड की स्थिति है, प्रत्येक बिल्ड के बाद अद्यतन किया गया है, नवीनतम एपीआई डॉक्स, परीक्षा परिणाम और परीक्षण कवरेज के साथ।


महान प्रतिक्रिया, मेरे उत्तर से अधिक सटीक। +1
वॉनसी

1
बिल्ड स्क्रिप्ट लिंक मर चुका है
Saikat

क्या आपके पास अपनी लिपि का लाइव लिंक है?
इयान

इस दृष्टिकोण का उपयोग करना बंद कर दिया है - मुझे लगता है कि अन्य उत्तर बेहतर होंगे।
जैस्पर ब्लूज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.