पटरियों पर रूबी के लिए निरंतर एकीकरण? [बन्द है]


149

मैं रूबी ऑन रेल्स के लिए एक निरंतर एकीकरण समाधान की तलाश कर रहा हूं, लेकिन परिणामों से बहुत खुश नहीं हूं। मैं एक .NET शॉप से ​​आया था जो क्रूज़कंट्रोल.नेट का उपयोग करता था और वास्तव में इसके उपयोग और समृद्ध स्थिति / रिपोर्टिंग की आसानी से खराब हो गया था।

आदर्श रूप में मैं देख रहा हूँ:

  • स्पष्ट गिट / एसवीएन और टेस्ट :: यूनिट एकीकरण

  • रेक और / या कैपिस्ट्रानो के साथ एकीकरण

  • एक वेब इंटरफ़ेस बिल्ड की स्थिति दिखा रहा है

  • विफल बिल्ड की ईमेल सूचना।

  • डेस्कटॉप सूचना (ग्रोथ के माध्यम से संभावित)

  • बिल्ड स्टेटस के लिए REST API

  • यूआई में अन्य कोड विश्लेषण टूल और रिपोर्टिंग परिणामों को चलाने के लिए प्लगइन रूपरेखा


11
तो अब तीन साल बाद आपकी क्या पसंद है?
आंद्रेई

3
क्या मैं Circleci.com सुझा सकता हूं ?
पॉल बिगगर

जवाबों:


83

मैं बस यहाँ विकल्पों के माध्यम से गया था और सोचा था कि मैं उन्हें 2011 के अंत तक रोल करूँगा।

अखंडता

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

क्रूज़ कंट्रोल.आरबी

मृत सरल : आप बस इसे डाउनलोड करते हैं, अपनी परियोजना को जोड़ने के लिए एक कमांड लाइन चलाते हैं (ऐसा करने के लिए कोई यूआई नहीं है), और रेल एप्लिकेशन को चलाएं। लेकिन आपके प्रोजेक्ट को संपादित करने के लिए कोई UI नहीं है, और लिंक को प्रदर्शित करने से अलग कलाकृतियों के निर्माण के साथ कोई वास्तविक एकीकरण नहीं है: आपको परीक्षणों का कोई रेखांकन नहीं मिलता है, कोई ट्रेंड लाइन नहीं होती है, आदि मुझे routes.rbफ़ाइल प्राप्त करने के लिए भी समायोजित करना पड़ा । कोडिंग वर्किंग ( resources :projectsलाइन को अन्य सभी गैर-डिफ़ॉल्ट मार्गों से नीचे जाने की आवश्यकता है)।

TeamCity

यह भयानक लग रहा है , लेकिन वेतनमान अजीब से बाहर लगता है। 3 एजेंट मुफ्त और फिर जब आप निर्भर होते हैं तो आपको सैकड़ों डॉलर डोलने होते हैं। व्यक्तिगत बिल्ड बहुत अच्छा लगता है, लेकिन बजट नहीं है

जेनकिंस (नी हडसन )

यह एक जावा स्टालवार्ट है और इसे एक हजार विकल्पों के साथ लोड किया गया है , इसलिए यूआई भ्रमित है और यह आपकी परियोजनाओं को स्थापित करने के लिए एक काम है । लेकिन एक बार जब आप इसे सेट करते हैं, तो आपको बहुत सारे प्लगइन्स मिलते हैं जो कि कहीं से भी खींच सकते हैं, सबसे अधिक कुछ भी चला सकते हैं, और सबसे अधिक सब कुछ रिपोर्ट कर सकते हैं। OS X इंस्टॉलर जेनकिंस को इंगित करता है, /Users/Shared/Jenkins/Homeलेकिन उस निर्देशिका या chownइसे बनाने में विफल रहता है daemon(जो डिफ़ॉल्ट रूप से उपयोग होता है, और आपको एक नए jenkinsउपयोगकर्ता को बदलना चाहिए ताकि आप GitHub एकीकरण सेट कर सकें)।

अन्य

मैं वास्तव में इन कोशिश नहीं की, लेकिन सोचा था कि मैं क्यों उल्लेख करेंगे:

  • CI जो मैं चाहता हूँ की तुलना में अधिक GitHub रेपो के मालिक हैं, और इसके निर्माता भी इसका उपयोग नहीं कर रहे हैं; वे जेनकिंस पर हैं।
  • Cerberus बड़े करीने से छोटे लगते हैं, लेकिन उनके पास UI नहीं है और वे स्वचालित रूप से उन कलाकृतियों को प्रकाशित नहीं करते हैं, जहां अन्य उन्हें देख सकते हैं।
  • बिगटुना एक क्रूज़कंट्रोल.आरबी क्लोन है जो (पहले से न्यूनतम) सामुदायिक समर्थन के बिना है।
  • यदि आप JIRA और BitBucket का उपयोग करते हैं तो बांस वास्तव में साफ-सुथरा दिखता है, लेकिन हम न तो उपयोग करते हैं। यह दर्शाती है, लेकिन हम पहले से ही Capistrano में स्थापित किया है।

विकल्प

हम जेनकिंस के साथ गए थे , लेकिन मैं वास्तव में कामना करता हूं कि लाइटर-वेट समाधानों में से एक ने काम किया था।


8
ट्रैविस के बारे में क्या?
वानुआन

3
मैं एक बंद-स्रोत परियोजना पर काम करता हूं, इसलिए जब तक मैं उनके (खराब-शब्द वाले) दस्तावेज को गलत नहीं समझ लेता, ट्रैविस वास्तव में हमारे लिए कोई विकल्प नहीं है (कोई रास्ता नहीं है कि मैं उन्हें हमारे GitHub परियोजना तक पहुंच लिखने का अनुदान दे रहा हूं)। अगर मैं कुछ रत्नों को लिख रहा होता तो मैं एक पल में ट्रैविस पर कूद जाता, लेकिन वास्तविक रेल साइटों के लिए नहीं।
तल्लम

2
बस रिकॉर्ड के लिए, ट्रैविस सीआई जल्द ही एक प्रो (पेड और प्राइवेट) संस्करण जारी करने वाला है जो पहले से ही बीटा में है। $ 129 और $ 249 प्रति माह की छोटी परियोजनाओं के लिए यह थोड़ा महंगा है, लेकिन यह देखने लायक है: travis-ci.com
जोशुआ पिंटर

41

कैसे के बारे में CruiseControl.rb ?

वही भीड़ जिसने CruiseControl(विचार) और में लिखा था RubyRakeअपने अन्य उपकरणों को एकीकृत करने के लिए उपयोग करना बहुत आसान है , और अपनी सूचनाओं के लिए रूबी-ग्रोएल रत्न का उपयोग कर सकते हैं ।


मुझे खिड़कियों पर चलने में परेशानी हो रही है ... मेरे लिए साइट पर 'यह इतना आसान नहीं हो सकता' वीडियो में विज्ञापित के रूप में काम नहीं किया।
गिषु

मैंने सोचा था कि ब्रांडिंग के आधार पर - यह गुण है पर इसे बहाना नहीं होगा।
डैफिड रीस

इस परियोजना ने केवल हाल ही में बनाए रखा है और 2009 के बाद से एक नया संस्करण जारी नहीं किया है ... लेकिन यह काम करता है ..
स्कॉट Schulthess

3
cruisecontrol बहुत प्राचीन है और बहुत पुराना है।
ब्रैगबॉय

1
फरवरी के प्रारंभ (2013) तक विभिन्न सुरक्षा-संबंधी घटनाओं को देखते हुए, क्रूज़कंट्रोल.आरबी को उसके डिफ़ॉल्ट कॉन्फ़िगरेशन (जेम संस्करण आदि) में छोड़ना असाध्य है। मैं इसे रेल 3.0.20 के तहत चलाने में सक्षम हूं, लेकिन 3.2.11+ जाहिरा तौर पर काफी अधिक काम लेने जा रहा है। इस बिंदु पर, मैं विकल्प के लिए बहुत ही खुला हूं , जिम फियोराटो के समान आवश्यकताओं की सूची के साथ।
जेफ डिके

27

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

समुदाय भी बहुत सक्रिय है और सेलेनियम के साथ हडसन को हुक करने पर कई लेख आए हैं जो आप ब्राउज़र की ओर से रेल अनुप्रयोगों के परीक्षण के लिए सहायक हो सकते हैं।

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

मैंने क्रूज़कॉन्ट्रोल.नेट से टीम सिटी की ओर रुख किया और सुधार पर बिल्कुल चौंक गया। मैं हडसन के लिए आंशिक हूँ, क्योंकि इसके समान फीचर सेट और बहुत सक्रिय समुदाय के कारण।


2
टीसी के लिए +1। मेरे द्वारा देखे गए सर्वश्रेष्ठ सीआई के हाथ
मैट ब्रिग्स

4
आगाह किया कि उह के कारण हडसन के लिए कुछ राजनीतिक सामान नीचे जा रहा है, हम इसे ओरेकल के साथ रचनात्मक मतभेद कहेंगे। डेवलपर्स के थोक कांटे के साथ चलते हुए दिखाई देते हैं जिसे जेनकिंस कहा जाएगा; ओरेकल के पास कर्मचारी हैं और हडसन का समर्थन और विकास करना जारी रखेगा।
डोंडो ३१'११

4
अच्छा बिंदु डोंडो। हडसन के निरंतर विकास पर नज़र रखने के इच्छुक लोगों के लिए, आप जेनकिंस-ci.org
जूलियन

और यहां जेनकिन्स बनाम हडसन विकास गतिविधि की तुलना की जाती है: ohloh.net/p/compare?project_0=Jenkins&project_1=Hudson
वानुअन

13

सर्कल रेल (और अन्य वेब ऐप) के लिए एक उन्नत CI सेवा है । आपकी सूची से, यह निम्नलिखित का समर्थन करता है:

  • Git और Test :: यूनिट एकीकरण ( RSpec, ककड़ी, जैस्मीन, कोंच एकीकरण, और मनमाने अतिरिक्त कार्य आदेशों का समर्थन करता है )
  • रेक और / या कैपिस्ट्रानो के साथ एकीकरण ( कमांड चलाने और डीबी स्थापित करने के लिए रेक का उपयोग करता है, कैपिस्ट्रानो या हेरोकू का उपयोग करके निरंतर तैनाती का समर्थन करता है, या वास्तव में कुछ भी )
  • एक वेब इंटरफ़ेस बिल्ड की स्थिति दिखा रहा है
  • विफल बिल्ड की ईमेल सूचना।
  • डेस्कटॉप सूचना ( CCMenu / CCTray के माध्यम से )
  • बिल्ड स्टेटस के लिए REST API
  • UI में अन्य कोड विश्लेषण टूल और रिपोर्टिंग परिणामों को चलाने के लिए प्लगइन रूपरेखा ( हम निर्माण के भाग के रूप में उनकी स्थिति सहित मनमाना आदेश और समर्थन चला सकते हैं )

जोएल और मैंने स्टैकओवरफ़्लो पॉडकास्ट पर इस बारे में बातचीत करते हुए कुछ समय बिताया - इसकी जांच करें !


(एडिट) डिस्क्लेमर: पॉल बिगगर ने सर्किल की स्थापना की, क्योंकि वह अपने स्टैकओवरफ्लो प्रोफाइल में बताता है


8

सेमीफोर रूबी और रेल्स ऐप के लिए एक नया होस्ट किया गया सीआई ऐप है। यह GitHub के साथ एकीकृत है, इसके लिए किसी सेटअप की आवश्यकता नहीं है और इसमें एक साधारण UI है।


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

8

फरवरी 2015 को अपडेट किया गया

Codeship

Drone.io पर विकास की कमी थी, इसलिए मैंने कोडशिप पर स्विच किया और मैं इसका पूरा आनंद ले रहा हूं। यह सक्रिय रूप से विकसित और बेहतर है, इसमें शानदार डिज़ाइन है और यह बहुत तेज़ है। इसके अलावा, निचले स्तर के लिए यह वास्तव में मुफ़्त है (प्रति माह 100 बिल्ड तक) इसलिए यह ड्रोन.आईओ से सस्ता हो गया है।

मूल उत्तर

Drone.io

मैं बस http://drone.io/ के साथ रेल एप्लिकेशन पर हमारी मुख्य रूबी सेटअप करता हूं । केक का एक टुकड़ा था और इसे एक शानदार इंटरफ़ेस मिला। यदि आप एक सरल, होस्ट किए गए समाधान की तलाश कर रहे हैं, तो मैं कह सकता हूं ।


7

Tddium की जाँच करें । Tddium रूबी अनुप्रयोगों के निरंतर एकीकरण, तैनाती और इंटरैक्टिव परीक्षण का समर्थन करता है। यह सेलेनियम, हेडलेस वेबकिट और सोल के समर्थन के साथ एक प्रबंधित वातावरण प्रदान करता है। यह लाइव पोस्टग्रेज, MySQL, मोंगो, और रेडिस के उदाहरणों को होस्ट करता है। और यह स्वचालित रूप से बड़े परीक्षण सूट को समानांतर करता है।


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

7

ट्रैविस सीआई रूबी दुनिया में लोकप्रिय हो गया है: http://travis-ci.org/


ट्रैविस सीआई ओपन सोर्स प्रोजेक्ट्स के लिए अच्छा है लेकिन वास्तव में बंद सोर्स वाले के लिए नहीं। जेनकिंस दोनों मामले को कवर कर सकते हैं :-)
गैबोर गरामी

1
लेकिन खुला खट्टा नहीं है? github.com/travis-ci/travis-ci क्या आप अपने निजी ट्रैविस उदाहरण की स्थापना नहीं कर सकते हैं जैसा कि आप जेनकिंस के साथ करते हैं?
वानुअन

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

बंद परियोजनाओं के लिए अब ठीक है
aehlke


6

कई लोगों की तरह मैं cruisecontrol.rb का बहुत बड़ा प्रशंसक था, लेकिन मैंने हाल ही में अपनी परियोजनाओं को वफ़ादारी में बदल दिया है ।

लाइटवेट और सेटअप करने में आसान (cc.rb की तरह), लेकिन एक अच्छे इंटरफ़ेस के साथ।


5
मैंने सिर्फ वफ़ादारी स्थापित करने की कोशिश की और यह एक गड़बड़ है।
लॉरेंस

5

बिगटुन - रूबी में लिखा गया है, रेल का उपयोग करता है और अपने सीआई के रूप में उपयोग करता है।


3
यह सलाह दें कि BigTuna के लिए appelier.com लिंक एक समय सीमा समाप्त डोमेन के लिए एक मृत लिंक है। यह परियोजना अब जीथब पर पाई जा सकती है ।
जेफ डिके

5

आप सहकारिता दे सकते हैं एक स्पिन और देख हैं कि यह आपके लिए काम करता है (मैं संस्थापकों में से एक हूं)

क्लाउड निरंतर एकीकरण और परिनियोजन (विशेष हरोकू समर्थन के साथ)

आपके पहले चार आइटम पहले से ही लागू हैं और कई कंपनियों के लिए ठीक काम करते हैं

  • स्पष्ट गिट / एसवीएन और टेस्ट :: यूनिट एकीकरण
  • रेक और / या कैपिस्ट्रानो के साथ एकीकरण
  • एक वेब इंटरफ़ेस बिल्ड की स्थिति दिखा रहा है
  • विफल बिल्ड की ईमेल सूचना।

हम उन सुविधाओं पर भी काम कर रहे हैं:

  • डेस्कटॉप सूचना (ग्रोथ के माध्यम से संभावित)
  • बिल्ड स्टेटस के लिए REST API
  • यूआई में अन्य कोड विश्लेषण टूल और रिपोर्टिंग परिणामों को चलाने के लिए प्लगइन रूपरेखा

3

यहां किसी ने एटलसियन के बांस का उल्लेख किया है। रूबी सीआई पर बांस का उपयोग करके रूबी के बारे में एक अच्छा ट्यूटोरियल जैसा लेख है:

http://blogs.atlassian.com/news/2009/05/bamboo_customer_8.html


अफसोस की बात है कि अब यह एक मृत कड़ी है।
तल्लम



3

यह स्वयं करो। परीक्षण चलाने के लिए बैश स्क्रिप्ट लिखें और यदि परीक्षण पास हो तो तैनाती प्रक्रिया चलाएं। सूचनाएं चाहिए? सफलता / असफलता पर अपने आप को एक सादे ईमेल को गोली मारो। शेड्यूलर चाहिए? क्रॉन नौकरी। यह $ 0 / mo है। और आपके पास एक सुराग होगा कि आप क्या कर रहे हैं। मैं यह नहीं देखता कि किसी को $ 40 / मो का भुगतान करने से मुझे किसी भी तरह से अधिक कुशल बनाने में मदद मिलेगी।

उदाहरण के लिए विचार करें: गलत तरीके से कॉन्फ़िगर की गई परिसंपत्ति पाइपलाइन के कारण मेरी तैनाती विफल हो रही है (परिसंपत्तियां पहले से विफल हो जाती हैं)। यह इकाई, कार्यात्मक, एकीकरण, प्रतिगमन, या किसी अन्य परीक्षण के साथ पकड़ा नहीं जा रहा है। यह त्रुटि सीआई द्वारा नहीं पकड़ी जाएगी। जितना समय मैं एक bash स्क्रिप्ट लिखने में बिताऊंगा, उतना समय मेरे द्वारा CI वातावरण सेट करने में खर्च करने की मात्रा से कम होने की संभावना है, और मैं खुद को $ 40 / मो बचाऊंगा।

Juuuuuust चर्चा में मेरे दो पैसे फेंकने; )


1

रन कोड रन वह हो सकता है जिसकी आपको आवश्यकता है।

संपादित करें: लिंक हटा दिया गया क्योंकि यह अब पूर्व रन कोड रन साइट को संदर्भित नहीं करता है।


1
अब बंद होने वाला है। :(
एंड्रयू ग्रिम

1

और फिर, CI जो है :

यह एक पुराने जंग खाए हुए पिकअप ट्रक की तरह है: यह बदबूदार और स्थूल हो सकता है, लेकिन यह काम पूरा कर लेता है।

हम इसे दैनिक आधार पर उपयोग करते हैं।


1

मुझे केवल सीआई जो पसंद है, मेरे पास बाकी के सभी मुद्दे हैं, सीआई जो काम पूरा करने के लिए पूर्ण न्यूनतम हैं, सुपर एजाइल और विश्वसनीय हैं। हडसन स्रोत भयानक है, और यूआई मुझे अपील नहीं करता है।


0

मैंने सिर्फ RubyOnRails + SVN / GIT के लिए एक बहुत ही सरल सतत एकीकरण ऐप प्रकाशित किया है। शायद आपको इसे आज़माना चाहिए:

http://github.com/felipegiotto/Inotegration/tree/master

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

अगर आपको पसंद आए तो कृपया मुझे कुछ प्रतिक्रिया भेजें ..

सादर,

फेलिप Giotto।


0

यदि आप "कमिट अक्सर" दर्शन की सदस्यता लेते हैं तो हर कमिटमेंट के बाद CI चलाना बहुत महंगा लगता है। कैसे हर कुछ घंटों में एक साधारण क्रोनजॉब चलाने के बारे में और एक देव मेलिंग सूची में परिणाम ईमेल करें?


या, कैसे लगभग हर घंटे में एक बार बदलाव के लिए केवल चुनाव के लिए अपने CI सर्वर को सेट करें? अधिकांश CI ऐप्स इस सेटिंग का समर्थन करते हैं।
जर्हिनस्मिथ

2
गिट के साथ आप अक्सर कमिट कर सकते हैं लेकिन शायद ही कभी धक्का दें।
वानुआन

0

मैंने इसके लिए सिर्फ एक हडसन / जेनकिंस को कॉन्फ़िगर किया है। Ci_reporter मणि JUnit आउटपुट को स्वरूपित करने में मदद कर सकता है, हडसन से क्या उम्मीद है, और हडसन के पास एक रेल प्लग है, इसलिए मैं आरसीओवी कवरेज, परीक्षण रिपोर्ट, रेल आँकड़े और भी बहुत कुछ देख सकता हूं।


क्या आप अन्य विकल्पों के साथ अपने सेटअप की तुलना कर सकते हैं?
आंद्रेई

जैसा कि मैं अपने उत्पादन परियोजनाओं के लिए रेल 2.3.x का उपयोग कर रहा हूं, वर्तमान में नहीं, क्योंकि सबसे अन्य विकल्प के लिए रेल 3.x की आवश्यकता है। हालांकि, जब मैं कर सकता हूं, मैं इसका परीक्षण करूंगा, और अपने अनुभवों को प्रकाशित करूंगा।
गबरू गरामी

मैंने रेन 3.x के साथ जेनकिंस की भी कोशिश की और यह बहुत अच्छी तरह से काम करता है। मैंने कुछ अन्य समाधानों की भी कोशिश की (उदाहरण के लिए इंटीग्रिटीऐप), लेकिन चूंकि मैं जेनकिन्स का उपयोग दूसरी परियोजनाओं के परीक्षण के लिए करता हूं, इसलिए यह इसके लिए अंतिम समाधान बन गया। इसका मतलब यह नहीं है कि इंटीग्रिटीऐप या अन्य सामान खराब हैं, इंटीग्रिटीऐप बहुत अच्छा सामान है, हालांकि मुझे जेनकिंस थोड़ा ज्यादा पसंद है।
गबरू गरामी

0

आपको CloudMunch को भी देखने पर विचार करना चाहिए। बिल्ड मेटाडेटा के समृद्ध सेट के साथ, यह आपको अलग-अलग भाषाओं को आपके कोडबेस के हिस्से के रूप में अनुमति देने के लिए एक पॉलीग्लॉट प्लेटफ़ॉर्म प्रदान करता है।

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