अपने ऐप को उत्पादन में स्वचालित रूप से परिनियोजित करने और अपनी रिलीज़ प्रक्रिया को कारगर बनाने के लिए इस वर्कफ़्लो को सेट करें।

Netlify एक वेब होस्टिंग प्लेटफॉर्म है और क्लाउड में वेब एप्लिकेशन को तैनात करने और प्रबंधित करने के लिए उपकरणों का एक व्यापक सूट है।

लेकिन इसकी विशेषताएं इससे कहीं आगे तक फैली हुई हैं—इसके सर्वर रहित फ़ंक्शन आपको समर्पित सर्वर के बिना सर्वर-साइड कोड चलाने देते हैं।

अन्वेषण करें कि GitHub क्रियाओं का उपयोग करके Netlify पर Node.js REST API को तैनात करने के लिए CI/CD पाइपलाइन कैसे सेट करें।

GitHub क्रियाओं के साथ CI/CD पाइपलाइनें: एक सिंहावलोकन

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

आम तौर पर, सीआई/सीडी पाइपलाइनों में स्रोत, निर्माण, परीक्षण और तैनाती चरणों सहित कई प्रमुख चरण होते हैं।

हालांकि इन चरणों को मैन्युअल रूप से करना संभव है, उन्हें स्वचालित करने से कई फायदे मिलते हैं, जिनमें निम्न शामिल हैं:

  • मानवीय त्रुटियों के जोखिम को कम करना।
  • जारी करने की प्रक्रिया में तेजी लाना।
  • instagram viewer
  • गुणवत्ता वाले सॉफ़्टवेयर को उत्पादन में भेजने के लिए एक सुसंगत कार्यप्रवाह सुनिश्चित करना।

गिटहब क्रिया क्या है?

GitHub क्रियाएँ GitHub के भीतर एकीकृत एक उपकरण है जो पूर्व-निर्मित क्रियाओं की एक विस्तृत श्रृंखला प्रदान करता है आप सीआई/सीडी को स्वचालित करने के लिए सीधे अपने प्रोजेक्ट रिपॉजिटरी में वर्कफ़्लोज़-एज़-कोड को परिभाषित करने के लिए उपयोग कर सकते हैं पाइपलाइन।

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

यह विशिष्ट घटनाओं के आधार पर वर्कफ़्लोज़ को ट्रिगर करना संभव बनाता है, जैसे कि एक नई प्रतिबद्धता यह सुनिश्चित करती है कि आपकी सीआई/सीडी पाइपलाइनें जरूरत पड़ने पर स्वचालित रूप से चालू हो जाती हैं।

Node.js प्रोजेक्ट सेट करें

आरंभ करने के लिए, आपको बनाने की आवश्यकता है एक एक्सप्रेस वेब सर्वर. ऐसा करने के लिए, स्थानीय रूप से एक नया फ़ोल्डर बनाएँ और अपने टर्मिनल पर निर्देशिका बदलें।

mkdir एक्सप्रेस-netlify
सीडी एक्सप्रेस-netlify

अगला, एक बनाएँ पैकेज.जेसन फ़ाइल का उपयोग करना npm, नोड पैकेज मैनेजर.

एनपीएम init -y

अंत में, परियोजना में आवश्यक निर्भरताएँ स्थापित करें।

npm एक्सप्रेस netlify-lambda सर्वर रहित-http स्थापित करें

netlify-lambda पैकेज एक स्थानीय विकास सर्वर के रूप में कार्य करता है जो सर्वर रहित कार्यों के परीक्षण की सुविधा प्रदान करता है। सर्वर रहित-http Express.js ऐप्स को एक ऐसे प्रारूप में अपनाने में मदद करता है जो सर्वर रहित फ़ंक्शन हैंडलर के साथ संगत हो।

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

ये फ़ंक्शंस सर्वर-साइड लॉजिक को प्रबंधित करते हैं, HTTP एपीआई अनुरोधों को संभालते हैं, और गतिशील सामग्री की सेवा करते हैं, सर्वर रहित प्रतिमान के भीतर बैकएंड जैसी कार्यक्षमता प्रदान करते हैं।

आप इस प्रोजेक्ट का कोड इसमें पा सकते हैं गिटहब रिपॉजिटरी.

एक्सप्रेस वेब सर्वर बनाएँ

तीन फोल्डर बनाएं: जिला, कार्य, और स्रोत आपके प्रोजेक्ट फ़ोल्डर की रूट डायरेक्टरी में।

इससे पहले कि आप एक्सप्रेस सर्वर सेट अप करें, एक रिक्त बनाएँ index.html फ़ाइल में जिला फ़ोल्डर। यह फ़ाइल एक प्लेसहोल्डर के रूप में कार्य करती है जो Netlify को एक्सप्रेस एप्लिकेशन को सफलतापूर्वक परिनियोजित करने और API मार्गों की सेवा करने की अनुमति देती है।

अब, एक बनाएँ src/app.js फ़ाइल और निम्न कोड जोड़ें:

कॉन्स्ट एक्सप्रेस = ज़रूरत होना("अभिव्यक्त करना");
कॉन्स्ट सर्वर रहित = ज़रूरत होना("सर्वर रहित-http");

कॉन्स्ट ऐप = एक्सप्रेस ();
कॉन्स्ट राउटर = एक्सप्रेस। राउटर ();

राऊटर.गेट ("/", (अनुरोध, रेस) => {
पुनः भेजें ("हैलो वर्ल्ड!")
});

ऐप.उपयोग (`/.netlify/functions/app`, राउटर);

मापांक.निर्यात = ऐप;
मापांक.exports.handler = सर्वर रहित (ऐप);

यह कोड GET अनुरोधों को संभालने वाले रूट URL के लिए एक रूट के साथ एक एक्सप्रेस सर्वर को परिभाषित करता है। app.use फ़ंक्शन मार्ग के मिडलवेयर को एक्सप्रेस एप्लिकेशन के साथ पंजीकृत करता है, यह सुनिश्चित करता है कि पथ के लिए कोई HTTP अनुरोध किया गया है /.netlify/functions/app उत्पादन वातावरण में भी राउटर द्वारा ठीक से संभाला जाएगा।

नतीजतन, यदि आप एक नया समापन बिंदु जोड़ते हैं जैसे /api/auth, इसे एक्सेस किया जा सकेगा /.netlify/functions/app/api/auth. अंत में, कोड एक्सप्रेस एप्लिकेशन और सर्वर रहित हैंडलर फ़ंक्शन को निर्यात करता है।

यह सर्वर के स्थानीय परीक्षण की अनुमति देता है और सुनिश्चित करता है कि आप इसे Netlify पर सर्वर रहित फ़ंक्शन के रूप में तैनात कर सकते हैं।

Netlify.toml फ़ाइल को परिभाषित करें

रूट डायरेक्टरी में एक नया बनाएं Netlify.toml फ़ाइल, और निम्न कोड जोड़ें।

[निर्माण]
आधार = "/"
कमांड = "एनपीएम रन बिल्ड"
प्रकाशित = "/ जिला /"
कार्य = "कार्य /"
[बिल्ड.पर्यावरण]
NODE_VERSION = "16"
[कार्य]
बाहरी_नोड_मॉड्यूल = ["अभिव्यक्त करना"]
नोड_बंडलर = "एस्बिल्ड"
[[पुनर्निर्देशन]]
बल = सत्य
से = "/ एपीआई / *"
स्थिति = 200
to = "/.netlify/functions/app/:splat"
[[पुनर्निर्देशन]]
से = "/ *"
स्थिति = 200
को = "/index.html"

कोड Netlify पर एक्सप्रेस ऐप के लिए बिल्ड और परिनियोजन कॉन्फ़िगरेशन सेटिंग्स निर्दिष्ट करता है। इसमें बेस डायरेक्टरी, बिल्ड कमांड, पब्लिश डायरेक्टरी और फंक्शन डायरेक्टरी जैसी सेटिंग्स शामिल हैं।

इसके अतिरिक्त, यह पुनर्निर्देशित सेटिंग्स को परिभाषित करता है जो HTTP एपीआई अनुरोधों के रूटिंग को प्रबंधित करना चाहिए, यह सुनिश्चित करते हुए कि वे नेटलिफ़ सर्वर रहित कार्यों के लिए ठीक से निर्देशित हैं।

Package.json फ़ाइल को अपडेट करें

खोलें पैकेज.जेसन फ़ाइल करें और इन कमांड को स्क्रिप्ट ऑब्जेक्ट में जोड़ें।

"स्क्रिप्ट्स": {
"शुरू करना": "netlify-lambda सर्व src",
"निर्माण": "netlify-lambda बिल्ड src"
},

एप्लिकेशन को स्थानीय रूप से बनाने और प्रारंभ करने के लिए निम्न कमांड चलाएँ।

एनपीएम रन बिल्ड
एनपीएम रन स्टार्ट

सर्वर पोर्ट 9000 पर शुरू होगा। आप अनुरोध करके पोस्टमैन का उपयोग करके आगे बढ़ सकते हैं और एपीआई का परीक्षण कर सकते हैं http://localhost: 9000/.netlify/functions/app

अंत में, Netlify पर परिनियोजन को स्वचालित करने के लिए GitHub क्रियाएँ वर्कफ़्लो सेट करने से पहले, GitHub पर एक रिपॉजिटरी बनाएं, और प्रोजेक्ट फ़ाइलों को पुश करें।

Netlify पर एक्सप्रेस एप्लिकेशन को डिप्लॉय करें

सबसे पहले, GitHub Actions वर्कफ़्लो को कॉन्फ़िगर करने से पहले API को Netlify पर तैनात करें। Netlify पर Express ऐप को परिनियोजित करने के लिए इन चरणों का पालन करें।

  1. वहां जाओ नेटलाइज़ करें और एक खाता बनाएं और लॉग इन करें अवलोकन पृष्ठ।
  2. चुनें और पर क्लिक करें साइटों टैब।
  3. पर क्लिक करें गिट से आयात करें बटन और चयन करें GitHub गिट प्रदाता मंच के रूप में। Netlify आपको अपने खाते और प्रोजेक्ट रिपॉजिटरी तक पहुंच प्रदान करने के लिए GitHub के साथ प्रमाणित करने के लिए कहेगा।
  4. प्रदर्शित रिपॉजिटरी की सूची से एक्सप्रेस प्रोजेक्ट रिपॉजिटरी का चयन करें।
  5. रिपॉजिटरी का चयन करने के बाद, आपको परिनियोजन प्रक्रिया के लिए बिल्ड सेटिंग्स को कॉन्फ़िगर करना होगा। Netlify एप्लिकेशन को बनाने के लिए उपयोग की जाने वाली तकनीक का स्वतः पता लगाकर इस प्रक्रिया को सरल बनाता है और आवश्यक बिल्ड सेटिंग्स के साथ फ़ील्ड को प्री-पॉप्युलेट करता है। इस स्थिति में, बिल्ड कमांड, पब्लिश और फ़ंक्शंस डायरेक्टरी।
  6. अंत में, क्लिक करें साइट तैनात करें प्रक्रिया को पूरा करने के लिए बटन।

एक GitHub क्रियाएँ वर्कफ़्लो बनाएँ

पर क्लिक करें कार्रवाई आपके प्रोजेक्ट के GitHub रिपॉजिटरी में टैब। में लगातार एकीकरण अनुभाग, चयन करें, और क्लिक करें Node.js कॉन्फ़िगर करें कार्यप्रवाह।

GitHub संपादक से, फ़ाइल का नाम बदलकर Netlify.yml, बॉयलरप्लेट Node.js वर्कफ़्लो कोड हटाएं और नीचे कोड जोड़ें:

नाम:निर्माणऔरतैनात करनाकोनेटलाइज़ करें
पर:
धकेलना:
पुल अनुरोध:
नौकरियां:
निर्माण:
इससे संचालित:उबंटू-22.04
कदम:
-उपयोग:कार्रवाई/चेकआउट@v3

# ( ./dist या अन्य निर्देशिका में बनाएं... )

-नाम:तैनात करनाकोनेटलाइज़ करें
उपयोग:nwtgck/[email protected]
साथ:
प्रकाशित-डीआईआर:'./ जिला'
उत्पादन-शाखा:मुख्य
जीथब-टोकन:${{रहस्य। GITHUB_TOKEN}}
तैनात-संदेश:"GitHub कार्रवाइयों से तैनात करें"
सक्षम-पुल-अनुरोध-टिप्पणी:असत्य
सक्षम-प्रतिबद्ध-टिप्पणी:सत्य
अधिलेखित-पुल-अनुरोध-टिप्पणी:सत्य
ईएनवी:
NETLIFY_AUTH_TOKEN:${{रहस्य। NETLIFY_AUTH_TOKEN}}
NETLIFY_SITE_ID:${{रहस्य। NETLIFY_SITE_ID}}
टाइमआउट-मिनट:1

यहाँ वर्कफ़्लो गुणों का टूटना है:

  • पर: इवेंट जो इस वर्कफ़्लो में कार्रवाइयों को ट्रिगर करते हैं।
  • नौकरियां: उस घटना को निर्दिष्ट करता है जो एक विशेष क्रिया को चलाना चाहिए जो हैं: घटनाओं का निर्माण और परिनियोजन।
  • इससे संचालित: कार्रवाई के लिए मेजबान उत्पादन वातावरण।
  • कदम: किसी विशेष कार्य को करने के लिए शामिल चरणों की एक श्रृंखला निर्दिष्ट करता है।
  • साथ: क्रियाओं को ठीक से चलाने के लिए आवश्यक तर्कों को परिभाषित करता है।
  • ईएनवी: कार्यप्रवाह के लिए आवश्यक पर्यावरण चर निर्दिष्ट करता है।

अंत में, इस फाइल में किए गए अपडेट को कमिट करें। GitHub को वर्कफ़्लो को स्वचालित रूप से ट्रिगर करना चाहिए।

हालाँकि, प्रारंभिक निर्माण एक त्रुटि को ट्रिगर करेगा क्योंकि आपको वर्कफ़्लो द्वारा आवश्यक गुप्त चर जोड़ने की आवश्यकता है: तैनात साइट आईडी और Netlify का ऑथ टोकन। अपने पास जाओ साइट सेटिंग्स Netlify पर और कॉपी करें साइट आईडी.

प्रमाणीकरण टोकन प्राप्त करने के लिए, क्लिक करें उपयोगकर्ता रूपरेखा आइकन, और चुनें उपयोगकर्ता सेटिंग ड्रॉप-डाउन विंडो से विकल्प। सेटिंग पेज पर, चुनें अनुप्रयोग, और क्लिक करें नया एक्सेस टोकन अपना प्रमाणीकरण टोकन उत्पन्न करने के लिए।

अपने GitHub रिपॉजिटरी में पर्यावरण चर और रिपॉजिटरी सीक्रेट सेक्शन दोनों में NETLIFY_SITE_ID और NETLIFY_AUTH_TOKEN के रूप में दो पर्यावरण चर जोड़ें। इन परिवर्तनों को करने के बाद, कार्यप्रवाह को फिर से चलाएँ। Netlify स्वचालित रूप से इस पाइपलाइन का उपयोग करने वाले किसी भी बाद के परिवर्तन को लागू करेगा।

आगे बढ़ें और इस URL पर अनुरोध करके पोस्टमैन का उपयोग करके API का परीक्षण करें: /.netlify/functions/app.

GitHub क्रियाओं और Netlify के साथ CI/CD पाइपलाइनों को कॉन्फ़िगर करना

Netlify के सर्वर रहित कार्यों का उपयोग करके, आप पूरी तरह से वेब अनुप्रयोगों को तैनात कर सकते हैं जो Netlify पर क्लाइंट-साइड और बैकएंड कार्यक्षमता दोनों को शामिल करते हैं।

इसके अलावा, GitHub क्रियाओं के साथ अनुप्रयोगों के लिए CI / CD पाइपलाइनों की स्थापना निर्माण और परिनियोजन प्रक्रिया को स्वचालित करने के लिए एक सुव्यवस्थित दृष्टिकोण प्रदान करती है। यह आपको ऐसे कार्यप्रवाहों को परिभाषित करने की अनुमति देता है जो एक सहज और विश्वसनीय विकास प्रक्रिया सुनिश्चित करते हैं, जो विचार से शुरू होती है और रिलीज चरण तक आगे बढ़ती है।