क्या आप एक चरण में एक निर्माण कर सकते हैं?


14

से जोएल परीक्षण :

क्या आप एक चरण में एक निर्माण कर सकते हैं?

मुझे लगता है मैं नहीं कह सकता हूँ। मैं वर्तमान में एक वेब ऐप पर काम कर रहा हूं जिसमें उन आइटमों की एक स्प्रेडशीट सूची है, जिन्हें तैनात करने के लिए किया जाना चाहिए। तो मेरा सवाल यह है कि मैं इसे कैसे स्वचालित कर सकता हूं ? क्या इसका संगठन व्यापक होना जरूरी है? नुस्खे / तकनीक?


3
यह निर्भर करता है कि सूची में आइटम क्या हैं? आदर्श रूप से, हां आपको इसे स्वचालित करने में सक्षम होना चाहिए।
कोई नहीं

4
en.wikipedia.org/wiki/Build_automation BTW: कुछ रहना एक कदम एक बहुत ज्यादा है :)
Mchl

सभी प्रकार - फ़ाइलों को स्थानांतरित करें, संग्रहीत प्रक्रियाओं को स्क्रिप्ट करें आदि - 14 चरण हैं!
billy.bob

2
एक अलग कोण से, सूची में क्या आपको लगता है कि आप स्वचालित नहीं कर सकते हैं?
तरण्णा

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

जवाबों:


10

बनाओ बिल्ड प्रक्रिया को एक चरण में स्वचालित कर सकता है। बनाओ बहुत ज्यादा तुम क्या चाहते हो कभी भी कर सकते हैं। मुझे यकीन नहीं है कि नीलम ऐसा क्यों सोचता है कि Make केवल C / C ++ पर लागू होता है। आप किसी भी प्रकार के कमांड को चलाने के लिए उपयोग कर सकते हैं। यह भी प्रोग्रामिंग से बंधा नहीं है, हालांकि यह वही है जो आमतौर पर इसके लिए उपयोग किया जाता है।


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

1
चूंकि कई 'निक्स ऐप / सिस्टम' के साथ इंस्टॉल किए गए हैं ।/configure; बनाना; स्थापित करें 'मुझे लगता है कि एक इंस्टालेशन इंजन के रूप में भी युगल होता है। यदि यह ऐसा कर सकता है, तो मुझे यकीन है कि यह ओपी के प्रश्न को हल कर सकता है।
JBRWilkinson

बनाओ, लेकिन वाक्यविन्यास बहुत अस्पष्ट है। आज तक मैंने 2 विकल्पों का सामना किया है: SCons (Make + makedepend) की तुलना में बहुत आसान और Makefile (मालिकाना) के निर्माण को स्वचालित करने के लिए एक उपकरण।
मैथ्यू एम।

@JbRWilkinson ... जैसा मैंने कहा कि आप जो चाहे बना सकते हैं;)
पेमदास

3

अपने वातावरण के आधार पर, आप मेक (C / C ++), एंट / मावेन (जावा), ग्रैडल (ग्रूवी) को देखना चाहते हैं - यही मैं उससे परिचित हूं। संभावना अधिक है आपके पर्यावरण के लिए एक लोकप्रिय समाधान है।


इसका ASP.NET / SQL वातावरण
billy.bob

@ m.edmondson - तो cruisecontrol.sourceforge.net शायद जाने के लिए अपना रास्ता है
bobah

ASP.NET के लिए एक और अच्छा निरंतर एकीकरण वातावरण TeamCity है। मैंने CruiseControl और TeamCity का उपयोग किया है और मैंने TeamCity का उपयोग करना थोड़ा आसान और थोड़ा अधिक शक्तिशाली पाया। लेकिन अब ऐसा नहीं हो सकता है।
रेशनलगीक

एनओटीई नेट एएनटी वैरिएंट है जिसे हमने क्रूज़ कंट्रोल के पूरक के रूप में अच्छी तरह से उपयोग किया है जिसका उपयोग मैं तैनाती के लिए कोड बनाने के लिए नहीं करूंगा, जहां आप कुछ अतिरिक्त चीजें शामिल करना चाहते हैं / सेट / पैरामीटर सेट और बदले और इतने पर । यही ANT / NANT में अच्छे हैं।
जॉन हॉपकिंस

मैं दूसरा @Jon हॉपकिंड सुझाव देता हूं - नेंट आपके पर्यावरण के लिए एक महान मैच है।
JBRWilkinson

3

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

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


0

यकीन है कि इसे स्वचालित करने का एक तरीका है। बावर्ची जैसे उपकरणों के साथ , एक नए सिरे से स्थापित सर्वर को स्थापित करना उतना ही आसान हो सकता है:

knife bootstrap ip.address -N aNameForTheServer -r "role[some functionality]"

मेरे मामले में उस एकल आदेश द्वारा निष्पादित कुछ कदम हैं:

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

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

कठपुतली एक समान प्रणाली है जो शेफ से थोड़ी पुरानी है और बेहतर विंडोज सपोर्ट दे सकती है।


0

यह जावा की दुनिया में मावेन के साथ सीधा है

mvn clean deploy

हमारे कॉन्फ़िगरेशन में, यह WAR फ़ाइल की सभी आवश्यक इमारत (आवश्यकतानुसार JAR निर्भरता में खींच), देव वेब सर्वर पर तैनाती और देव डेटाबेस पर डिब्बाबंद परीक्षण डेटा का निर्माण करता है। एक बार उस जगह पर मावेन आवेदन कार्यों को सत्यापित करने के लिए सेलेनियमआरसी के माध्यम से व्यापक कार्यात्मक परीक्षण को संभालता है।

इस एकल कमांड को एप्लिकेशन पूरी तरह से देव सर्वर क्लस्टर में तैनात किया जाता है, इसलिए यह तुरंत अन्य डेवलपर्स के साथ काम करने के लिए आसानी से उपलब्ध है (यह मानते हुए कि यह परीक्षा पास कर चुका है)। डेवलपर्स के स्थानीय स्तर पर काम करने की पुष्टि के बाद से देव तैनाती के लिए यह असामान्य है mvn clean install

स्नैपशॉट विरूपण साक्ष्य (डब्ल्यूएआर) को तब अन्य डेवलपर्स के साथ साझा करने के लिए मावेन भंडार में कॉपी किया जाता है (मानक मावेन deployव्यवहार के अनुसार)।

ठीक है, लेकिन आपने केवल देव को एक स्नैपशॉट तैनात किया है, परीक्षण और उत्पादन के बारे में क्या?

परीक्षण और (बाद में) उत्पादन सर्वर को वितरण को मावेन रिलीज प्रक्रिया के माध्यम से नियंत्रित किया जाता है जिसे हम मैन्युअल रूप से संभालना पसंद करते हैं ताकि कोई भी संदिग्ध उत्पादन के लिए देख सके। परीक्षक केवल जारी की गई कलाकृतियों के साथ काम करते हैं, स्नैपशॉट के साथ नहीं।

एक बार जब यह रिलीज़ हो जाता है तो एक सरल बिल्ड स्क्रिप्ट का उपयोग परीक्षण सर्वर क्लस्टर में WAR फ़ाइल को SFTP के लिए किया जाता है, फिर से किसी को कुछ भी गलत नहीं होने के लिए प्रक्रिया देखने के साथ।

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


0

मुझे लगा कि मैं जाँच कर सकता हूँ कि हमारे जोएल परीक्षण से एक ...

मैंने अजगर में एक बिल्ड सर्वर बनाया, इसे पाइक्रोन का उपयोग करके स्वचालित किया ।

कोड कमांड लाइन से VSS के साथ सिंक किया गया था, बोरलैंड मेक के साथ बिल्ड (अधिकांश IDEs आपके लिए फाइलें बनाएंगे चाहे वे उन्हें कॉल करें या नहीं। डेल्फी फाइल बनाने और उन्हें कॉल करने के लिए उपयोग करते थे। BPG फाइलें, अब वे कहते हैं। MSBuild XML फ़ाइलों को पुनः आरंभ करें और आप MSBuild का उपयोग कर सकते हैं) और त्रुटियों को एक XML फ़ाइल में रखा गया था जिसे मैं अभी जोड़ रहा था।

तो .. बस एक बैच फ़ाइल लिखें और इन चीजों को करें।

  1. सोर्स कंट्रोल से कोड को सिंक्रोनाइज़ करें
  2. गूंगा सामान (प्रोजेक्ट्स के लिए अलग-अलग कॉन्फिग फाइल्स) को डिलीट कर दें, जो आपको पता है कि आपको सब कुछ बनाने में सक्षम होने से रोक देगा।
  3. सब कुछ बनाएं (मैं सब कुछ बनाऊंगा, सभी भाई बनाऊंगा)।
  4. अपनी त्रुटियों और चेतावनी और सामान को लॉग इन करें, लेकिन निर्माण बंद न करें। (यदि आप वास्तव में होशियार हैं, तो आप उस फ़ाइल को चेक करने के लिए अंतिम व्यक्ति का नाम निकालेंगे जिसने निर्माण को तोड़ने और उसे एक गंदा भेजने के लिए बनाया था)
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.