कई वातावरणों के लिए मैट्रिक्स बिल्ड
भाषाओं, ऑपरेटिंग सिस्टम या कॉन्फ़िगरेशन के कई संस्करणों पर कार्य समानांतर रूप से चलाने के लिए मैट्रिक्स रणनीतियों का उपयोग कीजिए।
कई वातावरणों के लिए मैट्रिक्स बिल्ड, CoddyKit पर DevOps बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह DevOps बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
मैट्रिक्स निर्माण क्या होते हैं
GitHub Actions की एक शक्तिशाली सुविधा मैट्रिक्स निर्माण से आपका स्वागत है! कल्पना कीजिए कि आपको अपने कोड का कई अलग-अलग परिवेशों में परीक्षण करना है, जैसे विभिन्न ऑपरेटिंग सिस्टम या प्रोग्रामिंग भाषा के संस्करण।
हर संयोजन के लिए अलग कार्यप्रवाह बनाने के बजाय, मैट्रिक्स निर्माण आपको चर का एक समूह परिभाषित करने देते हैं और GitHub Actions उन चरों के हर संभावित संयोजन के लिए आपके कार्य अपने-आप चलाता है।
मैट्रिक्स निर्माण का उपयोग क्यों करें
मैट्रिक्स निर्माण इन कार्यों के लिए बेहद उपयोगी होते हैं:
- विभिन्न प्लेटफ़ॉर्म पर परीक्षण: यह सुनिश्चित करना कि आपका ऐप्लिकेशन Windows, macOS और Linux पर काम करता है।
- एकाधिक संस्करणों के साथ संगतता: Node.js, पाइथन या आपके डेटाबेस के विभिन्न संस्करणों पर परीक्षण करना।
- समानांतर निष्पादन: इन सभी परीक्षणों को एक साथ चलाना और काफी समय बचाना।
ये आपको कुशलता से परीक्षण के व्यापक दायरे तक पहुँचने में सहायता करते हैं।
मैट्रिक्स का मूल वाक्य-विन्यास
आप किसी कार्य के strategy अनुभाग में मैट्रिक्स परिभाषित करते हैं। strategy.matrix के अंदर आप एक या अधिक चर सूचीबद्ध करते हैं और प्रत्येक चर के लिए मानों की एक सूची देते हैं।
इसके बाद GitHub Actions हर संयोजन के लिए एक कार्य बनाता है। आइए देखें कि यह कैसा दिखता है:
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [14, 16, 18]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm testउदाहरण: Node.js के कई संस्करण
पिछले अंश में हमने node-version चर को तीन मानों: 14, 16 और 18 के साथ परिभाषित किया था।
कार्य की यह एकल परिभाषा तीन अलग-अलग कार्य शुरू करेगी। इनमें से प्रत्येक ubuntu-latest पर चलेगा, लेकिन Node.js का अलग संस्करण उपयोग करेगा। इससे यह सुनिश्चित होता है कि आपका प्रोजेक्ट इन सभी संस्करणों पर काम करता है।
एकाधिक मैट्रिक्स चरों को संयोजित करना
आप केवल एक चर तक सीमित नहीं हैं! आप अपने मैट्रिक्स में कई चरों को संयोजित कर सकते हैं। उदाहरण के लिए, आप अलग-अलग Node.js संस्करणों के साथ विभिन्न ऑपरेटिंग सिस्टमों पर परीक्षण करना चाह सकते हैं।
बस strategy.matrix के अंतर्गत और अधिक कुंजी-मान युग्म जोड़ें। कार्यों की कुल संख्या प्रत्येक चर के मानों की संख्या के गुणनफल के बराबर होगी।
उदाहरण: OS और Node.js का मैट्रिक्स
यहाँ Ubuntu और Windows, दोनों पर Node.js के 16 और 18 संस्करणों के साथ परीक्षण करने के लिए मैट्रिक्स सेट अप करने का तरीका दिया गया है।
इससे 2 (OS) * 2 (Node.js संस्करण) = 4 अलग-अलग कार्य बनेंगे।
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
node-version: [16, 18]
steps:
- uses: actions/checkout@v3
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test‘शामिल करें’ के साथ संयोजन अनुकूलित करना
कभी-कभी आपको ऐसे विशिष्ट संयोजनों की आवश्यकता होती है जो डिफ़ॉल्ट कार्तीय गुणनफल में शामिल नहीं होते, या आप कुछ निर्माणों के लिए अतिरिक्त चर जोड़ना चाहते हैं। नए मैट्रिक्स प्रविष्टियाँ जोड़ने के लिए include का उपयोग करें।
उदाहरण के लिए, हो सकता है कि आप केवल Ubuntu पर Node.js 14 के साथ एक अतिरिक्त परीक्षण चलाना चाहें, या किसी विशेष ऑपरेटिंग सिस्टम/संस्करण संयोजन में कोई खास पर्यावरण चर भेजना चाहें।
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
node-version: [16, 18]
include:
- os: ubuntu-latest
node-version: 14
test-suite: 'full'विशिष्ट संयोजनों को बाहर रखना
यदि आपके पास ऐसा संयोजन हो जिसके विफल होने का पता हो या जो आपके प्रोजेक्ट के लिए प्रासंगिक न हो, तो क्या करेंगे? exclude कीवर्ड आपको अपने मैट्रिक्स से विशिष्ट विन्यास हटाने देता है।
इससे आप अनावश्यक कार्य चलने से बच सकते हैं और प्रासंगिक परीक्षण मामलों पर ध्यान केंद्रित कर सकते हैं।
jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]
node-version: [16, 18, 20]
exclude:
- os: windows-latest
node-version: 16मैट्रिक्स चरों तक पहुँचना
अपने कार्य के चरणों में आप ${{ matrix.variable_name }} वाक्य-विन्यास का उपयोग करके वर्तमान मैट्रिक्स चर के मानों तक पहुँच सकते हैं। प्रत्येक मैट्रिक्स संयोजन के लिए टूल को विन्यस्त करने या विशेष आदेश चलाने के लिए यह आवश्यक है।
उदाहरण के लिए, ${{ matrix.os }} रनर के ऑपरेटिंग सिस्टम को गतिशील रूप से सेट करता है और ${{ matrix.node-version }} Node.js सेटअप ऐक्शन को विन्यस्त करता है।
व्यावहारिक उपयोग
मैट्रिक्स निर्माण इन कार्यों के लिए शक्तिशाली होते हैं:
- लाइब्रेरी विकास: किसी निर्भरता के कई संस्करणों पर परीक्षण करना।
- बहुभाषी प्रोजेक्ट: अलग-अलग भाषाओं या कंपाइलरों में लिखे गए घटकों का निर्माण और परीक्षण करना।
- ब्राउज़र संगतता: यदि आपका टूल इसका समर्थन करता है, तो अलग-अलग ब्राउज़र में वेब ऐप्लिकेशन का परीक्षण करना।
ये जटिल परीक्षण परिदृश्यों को संक्षिप्त और रखरखाव योग्य कार्यप्रवाहों में सुव्यवस्थित करते हैं।
मैट्रिक्स निर्माण चुनौती
ऐसे GitHub Actions कार्यप्रवाह पर विचार करें जिसमें मैट्रिक्स रणनीति का उपयोग किया गया है। मैट्रिक्स इस प्रकार परिभाषित है:
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
python-version: [3.8, 3.9]
exclude:
- os: macos-latest
python-version: 3.8
इस मैट्रिक्स विन्यास से कितने कार्य बनाए जाएँगे?
पुनरावलोकन: मैट्रिक्स निर्माण
बहुत अच्छा! आपने GitHub Actions के मैट्रिक्स निर्माण के बारे में सीख लिया है।
- इनकी सहायता से आप चरों के कई संयोजनों (OS, भाषा के संस्करण आदि) के लिए कार्य चला सकते हैं।
- इन्हें किसी कार्य के अंदर
strategy.matrixका उपयोग करके परिभाषित किया जाता है। includeविशिष्ट संयोजन जोड़ता है, जबकिexcludeउन्हें हटा देता है।- चरों तक
${{ matrix.variable_name }}के माध्यम से पहुँचा जाता है।
विभिन्न परिवेशों में कुशल और व्यापक परीक्षण के लिए मैट्रिक्स निर्माण आवश्यक हैं। इन पर अभ्यास करते रहें और इनमें महारत हासिल करें!
एआई शिक्षक के साथ DevOps बूटकैंप सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 142
- पाठ
- 568
अक्सर पूछे जाने वाले प्रश्न
क्या “कई वातावरणों के लिए मैट्रिक्स बिल्ड” पाठ निःशुल्क है?
हाँ — DevOps बूटकैंप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “कई वातावरणों के लिए मैट्रिक्स बिल्ड” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“कई वातावरणों के लिए मैट्रिक्स बिल्ड” में मैं क्या सीखूँगा?
भाषाओं, ऑपरेटिंग सिस्टम या कॉन्फ़िगरेशन के कई संस्करणों पर कार्य समानांतर रूप से चलाने के लिए मैट्रिक्स रणनीतियों का उपयोग कीजिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ DevOps बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या DevOps बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर DevOps बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“कई वातावरणों के लिए मैट्रिक्स बिल्ड” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस DevOps बूटकैंप पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर DevOps बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- कई वातावरणों के लिए मैट्रिक्स बिल्ड
- गति के लिए निर्भरताओं का कैशिंग
- पुनः उपयोग योग्य वर्कफ़्लो और कार्रवाइयाँ
- Conditional execution और job dependency