CI/CD क्या हैं?
सीआई/सीडी का मतलब सतत एकीकरण और सतत तैनाती/डिलीवरी है।
हर बार जब आप पुश करते हैं तो इसका मतलब है कि आपका कोड स्वचालित रूप से परीक्षण और प्रकाशित हो जाता है।
इससे हमें बग्स को तेजी से ढूंढने और कम मैन्युअल काम के साथ तेजी से सुविधाएं प्रदान करने में मदद मिलती है।
सीआई/सीडी का उपयोग क्यों करें?
सीआई/सीडी आपके कोड के परीक्षण और जारी करने की प्रक्रिया को स्वचालित करता है। इसका मतलब यह है:
- उपयोगकर्ताओं तक पहुँचने से पहले त्रुटियाँ ढूँढ़ें
- परिवर्तनों को शीघ्रता और सुरक्षित रूप से प्रकाशित करें
- मैन्युअल कदमों और गलतियों को कम करें
- प्रत्येक धक्का पर तुरंत प्रतिक्रिया प्राप्त करें
CI/CD Git के साथ कैसे काम करता है?
अपने Git रिपॉजिटरी में कोड पुश करने का प्रत्येक तरीका:
- एक CI/CD सेवा (जैसे GitHub Actions या GitLab CI) परिवर्तन का पता लगाती है
- यह परीक्षण चला सकता है, आपका प्रोजेक्ट बना सकता है और स्वचालित रूप से प्रकाशित कर सकता है
- यदि कुछ विफल होता है, तो आपको तुरंत सूचित किया जाएगा
उदाहरण वर्कफ़्लो
कार्यप्रवाह आरेख
[Developer] --push--> [Git Repository] --triggers--> [CI/CD Pipeline: Test, Build, Deploy]
लोकप्रिय सीआई/सीडी सेवाएँ
GitHub Actions
.github/workflows/ पर YAML फ़ाइलों का उपयोग करके GitHub पर निर्मित
GitLab CI/CD
.gitlab-ci.yml का उपयोग करके GitLab पर निर्मित
CircleCI
GitHub/GitLab के साथ काम करता है, जो कई भाषाओं के लिए आसान प्रणाली है
Travis CI
खुले स्रोत के लिए लोकप्रिय, .travis.yml का उपयोग करता है
महत्वपूर्ण सीआई/सीडी अवधारणाएँ
यहां कुछ महत्वपूर्ण शब्द दिए गए हैं:
- कार्यप्रवाह:नौकरियों की एक शृंखला जो एक साथ चलती है
- काम:कदमों का एक समूह जो एक साथ चलता है
- कदम (Step):एक ही कार्य, जैसे कोड का निरीक्षण करना या परीक्षण चलाना
- निदेशक (धावक):वह कंप्यूटर/सर्वर जो आपके कार्य चलाता है
- चालू कर देना:यह तय करता है कि आपका वर्कफ़्लो कब चलेगा
- पर्यावरण चर:आपके वर्कफ़्लो के लिए सेटिंग्स
- रहस्य:पासवर्ड या एपीआई कुंजियाँ
नौकरियाँ
नौकरी चरणों का एक समूह है जो एक साथ चलती है। प्रत्येक कार्य एक निदेशक (एक सर्वर) पर चलता है।
उदाहरण: GitHub Actions में एक नौकरी
नौकरियाँ: निर्माण: रन-ऑन: उबंटू-नवीनतम कदम: # कदम यहाँ चलते हैं
कदम
प्रत्येक चरण एक एकल कार्य है, जैसे कोड का निरीक्षण करना या परीक्षण चलाना।
उदाहरण: चरण
steps:
- uses: actions/checkout@v3
- name: Run tests
run: npm test
निदेशक (धावक)
निदेशक वह कंप्यूटर/सर्वर है जो आपका कार्य चलाता है।
आप अधिक नियंत्रण के लिए सेवा के निदेशकों का उपयोग कर सकते हैं या अपना स्वयं का सेटअप कर सकते हैं।
उदाहरण: निदेशक निर्दिष्ट करें
runs-on: ubuntu-latest
चलाता है
एक ट्रिगर तय करता है कि आपका वर्कफ़्लो कब चलेगा।
सामान्य ट्रिगर पुश (प्रत्येक पुश) और पुल_रेक्वेस्ट (जब पुल अनुरोध खोला या अपडेट किया जाता है) हैं।
उदाहरण: पुश या पुल अनुरोध पर ट्रिगर
on:
push:
pull_request:
पर्यावरण चर और रहस्य
पासवर्ड या एपीआई कुंजी के लिए सेटिंग्स और रहस्यों के लिए पर्यावरण चर का उपयोग करें।
अपने कोड में रहस्यों को हार्ड-कोड न करें!
उदाहरण: एक रहस्य का प्रयोग करें
env:
NODE_ENV: production
API_KEY: ${{ secrets.API_KEY }}
निर्माण अभिलेख
सीआई/सीडी उपकरण प्रत्येक कार्य और चरण के लिए लॉग दिखाते हैं। क्या हुआ या डीबग विफलताओं को देखने के लिए लॉग की जाँच करें।
GitHub क्रियाओं में, प्रत्येक कार्य/क्रिया के लॉग देखने के लिए वर्कफ़्लो क्रिया पर क्लिक करें।
सीआई से बचें
आप अपने कमिट संदेश में [स्किप सीआई] जोड़कर कमिट के लिए सीआई/सीडी को छोड़ सकते हैं।
यह दस्तावेज़ या छोटे बदलावों के लिए उपयोगी है।
उदाहरण: सीआई से बचें
git commit -m "Update docs [skip ci]"
बैज
CI/CD स्थिति दिखाने के लिए अपने README में एक बैज जोड़ें।
यह दूसरों को यह देखने की अनुमति देता है कि आपका नवीनतम निर्माण पास हो गया है या नहीं।
उदाहरण: GitHub क्रियाएँ बैज

उदाहरण: GitHub क्रियाएँ वर्कफ़्लो फ़ाइल (समझाया गया)
.github/workflows/ci.yml
# .github/workflows/ci.yml # यह फ़ाइल GitHub Actions को बताती है कि आपके प्रोजेक्ट के लिए CI कैसे चलाया जाए नाम: CI # वर्कफ़्लो का नाम (GitHub पर प्रदर्शित) चालू: [पुश] # ट्रिगर: इस वर्कफ़्लो को हर पुश पर चलाएँ नौकरियाँ: बिल्ड: # कार्य का नाम (कुछ भी हो सकता है) रन-ऑन: उबंटू-नवीनतम # निदेशक: नवीनतम उबंटू सर्वर का उपयोग करें कदम: - उपयोग: Actions/checkout@v3 # चरण: रिपॉजिटरी से अपना कोड जांचें - नाम: परीक्षण चलाएँ # चरण: इस चरण को एक नाम दें चलाएँ: npm परीक्षण # चरण: अपने प्रोजेक्ट का परीक्षण चलाएँ
जस्सिफ टीम व्याख्या
name:GitHub में वर्कफ़्लो का प्रदर्शन नाम सेट करता है।
on:यह तय करता है कि वर्कफ़्लो कब चलेगा (यहां: हर पुश)।
jobs:एक निर्देशक पर चलने वाले चरणों को एक साथ जोड़ता है।
build:इस कार्य का नाम (कुछ भी हो सकता है)
runs-on:सर्वर का प्रकार चुनें (यहां: उबंटू लिनक्स)।
steps:प्रत्येक चरण एक कार्य करता है, जैसे कोड का निरीक्षण करना या परीक्षण चलाना।
uses:पूर्व-निर्मित GitHub एक्शन का उपयोग करना (यहां: अपने कोड का परीक्षण करना)।
name:(चरणों के नीचे) एक चरण के लिए एक लेबल देता है।
run:एक शेल कमांड चलाता है (यहां: परीक्षण चलाने के लिए एनपीएम टेस्ट)।
समस्या निवारण एवं सर्वोत्तम अभ्यास
यदि निर्माण विफल हो जाता है
त्रुटि संदेशों के लिए लॉग की जाँच करें
रहस्य और पर्यावरण चर
सुनिश्चित करें कि आपके रहस्य और पर्यावरण चर सही ढंग से सेट हैं
विफल नौकरियों को पुनः चलाएँ
विफल नौकरियों को सीआई/सीडी डैशबोर्ड से फिर से चलाया जा सकता है
दस्तावेज़ीकरण की जाँच करें
अधिक सहायता के लिए अपनी CI/CD सेवा के दस्तावेज़ जाँचें
जसिफ टीम सर्वोत्तम अभ्यास
छोटा शुरू करो:पहले परीक्षणों को स्वचालित करें, तैयार होने पर आउटपुट जोड़ें
रहस्यों को बाहर रखें:कभी भी अपने कोड में रहस्य न डालें और कभी भी एपीआई कुंजी न लिखें
बैज का प्रयोग करें:README में अपनी निर्माण स्थिति दिखाने के लिए बैज का उपयोग करें
महत्वपूर्ण नोट
जस्सिफ टीम नोट
सीआई/सीडी बग का शीघ्र पता लगाने और डिलीवरी में तेजी लाने में मदद करता है। स्वचालन से छोटी परियोजनाओं को भी लाभ हो सकता है!
स्वचालित परीक्षण और रिलीज़ आपकी सॉफ़्टवेयर विकास प्रक्रिया में सुधार कर सकते हैं और तनाव को कम कर सकते हैं।
त्वरित संदर्भ
प्रोत्साहन
वर्कफ़्लो प्रारंभ करें
on: [push]
निदेशक
सर्वर का चयन करें
runs-on: ubuntu-latest
कोड जांचें
पहला कदम
uses: actions/checkout@v3
परीक्षण चलाएँ
बुनियादी परीक्षण
run: npm test