YAML पाइपलाइन जारी करने के बराबर क्या है?
मैं Azure DevOps में देख रहा हूँ और मैं किसी चीज़ से हैरान हूँ: Microsoft क्लासिक के बजाय YAML पाइपलाइनों के उपयोग की दृढ़ता से अनुशंसा करता है; पर्याप्त रूप से उचित है, लेकिन उन्हें उन सभी कार्यक्षमता को बदलने की आवश्यकता है जो कि उत्तम दर्जे की सी पाइपलाइनों में थीं। मैं YAML पाइपलाइनों के साथ "रिलीज़ पाइपलाइन" कार्यक्षमता को बदलने के लिए कैसे हूं?
उदाहरण के लिए, क्लासिक रिलीज पाइपलाइनों के साथ, मैं उत्पादन के लिए तैनात करने के लिए एक पाइपलाइन स्थापित कर सकता था जिसमें मैन्युअल ट्रिगर था (देखें 'उपयोगकर्ता द्वारा मैन्युअल रूप से'):
https://docs.microsoft.com/en-us/azure/devops/pipelines/release/triggers?view=azure-devops#pull-request-triggers
इस के बराबर YAML पाइपलाइन क्या है? मैं स्पष्ट रूप से एक ट्रिगर नहीं चाहता हूं जो स्वचालित रूप से उत्पादन के लिए तैनात हो - मैं हमेशा चाहता हूं कि तैनाती को सख्ती से मैन्युअल रूप से शुरू किया जाए - लेकिन मदद लेख किसी भी YAML विकल्प प्रदान नहीं करता है।
जवाब
ऊपर डैनियल टिप्पणी के रूप में , यमल पाइपलाइन सीडी के लिए मल्टी-स्टेज यम पाइपलाइन का समर्थन करती है। आप अधिक जानकारी के लिए निरंतर वितरण के लिए Azure DevOps पाइपलाइन - मल्टी-स्टेज पाइपलाइन और YAML की जांच कर सकते हैं ।
एज़्योर डेप्स यमल मल्टी-स्टेज पाइपलाइन और क्लासिक रिलीज़ पाइपलाइन दोनों को सीडी के लिए इस्तेमाल किया जा सकता है, हालांकि उनके पास कुछ अंतर है । और जैसा कि मुझे पता है कि YAML पाइपलाइन में कोई भी फीचर manual trigger
क्लासिक रिलीज़ के बराबर नहीं हो सकता है ।
अब के लिए मैनुअल ट्रिगर YAML पाइपलाइन में समर्थित नहीं है , इस चर्चा को देखें । अच्छी खबर यह है कि उत्पाद टीम ने फीचर अनुरोध पर विचार किया है और नई सुविधा रोडमैप पर है । (शायद 2020 Q3 के लिए योजना पर)
वहां की टीम के अनुसार: वे जिस नई सुविधा के बारे में सोच रहे हैं, उसका दायरा "हमेशा मैन्युअल रूप से शुरू करें" के रूप में एक मंच को चिह्नित करने में सक्षम होना है। यदि अन्य चरण हैं जो इस चरण पर निर्भर करते हैं, तो वे तब तक इंतजार करना जारी रखेंगे जब तक कि यह चरण निष्पादित नहीं हो जाता।
manual trigger
यमल पाइपलाइन में फीचर के सही होने से पहले हमें कुछ समय तक इंतजार करना पड़ सकता है । आशा है कि नई सुविधा आपकी आवश्यकताओं को पूरा करेगी।
Microsoft का कहना है कि उनकी टीमें आंतरिक रूप से रिलीज़ फ़्लो ब्रांचिंग रणनीति: रिलीज़ फ़्लो: हाउ वी डू ब्रांचिंग ऑन द वीएसटीएस टीम का उपयोग करती हैं
रिलीज फ्लो का मतलब है कि रिलीज को ट्रिगर करने के लिए रिलीज ब्रांच बनाई जानी है, जो इस तरह दिख सकती है:
विज्ञप्ति / PRODUCTNAME-sprint02
इसलिए, ऐसी शाखा का निर्माण मैनुअल ट्रिगर के रूप में कार्य कर सकता है
मल्टी-स्टेज YAML पाइपलाइन में उत्पादन परिनियोजन चरण को ट्रिगर किया जाना चाहिए जब पाइपलाइन निष्पादन रिलीज शाखा संदर्भ होता है, जो एक condition:
और एक अभिव्यक्ति का उपयोग करना मुश्किल नहीं है जिसमें एक चेक होता है:
${{ startsWith(variables['Build.SourceBranch'], 'refs/heads/releases')
ps इसी तरह के विषय पर मेरा हालिया ब्लॉग: Azure DevOps - YAML पाइपलाइन और शाखापर रणनीति