अगर आपने रोल आउट अपने-आप होने की सुविधा चालू की है, तो GitHub रिपॉज़िटरी में लाइव ब्रांच पर नया कमिट पुश करने पर, App Hosting आपके ऐप्लिकेशन का नया वर्शन अपने-आप रोल आउट कर देता है. रोल आउट की स्थिति, Firebase console या App Hosting के GitHub चेक में देखी जा सकती है.
इसके अलावा, App Hosting CI/CD इंटिग्रेशन या किसी अन्य मामले के लिए, मैन्युअल तरीके से ट्रिगर किए गए रोल आउट की सुविधा भी देता है. इससे, रोल आउट को फ़ोर्स किया जा सकता है.
रोल आउट देखना
Firebase console से, आपके ऐप्लिकेशन के सभी रोल आउट के बारे में विस्तृत जानकारी देखी जा सकती है.
होस्टिंग और सर्वरलेस> App Hosting पर जाएं. इसके बाद, उस बैकएंड के लिए देखें को चुनें जिसके रोल आउट आपको देखने हैं. बैकएंड के लिए रोल आउट टैब में, एक टेबल दिखती है. इसमें, इस बैकएंड के सभी रोल आउट का इतिहास दिखता है.
हर रोल आउट एंट्री में, Cloud Build जॉब और उस बदलाव या कमिट के लिंक होते हैं जिसकी वजह से रोल आउट ट्रिगर हुआ. इसके अलावा, इसमें बुनियादी जानकारी होती है. जैसे, लेखक, बनाए जाने की तारीख, और रोल आउट की स्थिति.
- Cloud Build जॉब, वह बिल्ड एनवायरमेंट है जहां App Hosting आपके ऐप्लिकेशन के बिल्ड कमांड को रन करता है. बिल्ड आईडी पर क्लिक करके, Cloud Build लॉग ऐक्सेस किए जा सकते हैं.
- बदलाव, GitHub कमिट या कोई अन्य कार्रवाई होती है जिसकी वजह से रोल आउट ट्रिगर हुआ.
मैन्युअल तरीके से रोल आउट ट्रिगर करना
अगर आपको नया कमिट पुश किए बिना, GitHub सोर्स से मैन्युअल तरीके से रोल आउट ट्रिगर करना है, तो Firebase console या Firebase CLI से रोल आउट बनाया जा सकता है. यह इन मामलों में काम आता है:
- स्टैटिक कॉन्टेंट को फिर से जनरेट करना.
- CI/CD सिस्टम को रोल आउट ट्रिगर करने की अनुमति देना.
- प्रोडक्शन रोल आउट को खास तारीखों या समय तक सीमित करना.
Firebase console में रोल आउट ट्रिगर करने के लिए:
- Firebase console में, होस्टिंग और सर्वरलेस > App Hosting पर जाएं.
- उस बैकएंड के लिए देखें पर क्लिक करें जिसके लिए आपको रोल आउट बनाना है.
- बैकएंड डैशबोर्ड के खास जानकारी वाले सेक्शन में, रोल आउट बनाएं को चुनें.
- डिप्लॉय करने के लिए ब्रांच चुनें.
- डिप्लॉय करने के लिए कमिट चुनें. यह सबसे नया कमिट या कमिट आईडी के हिसाब से कोई पुराना कमिट हो सकता है.
- बनाएं को चुनें. रोल आउट के इतिहास वाली टेबल में, रोल आउट की स्थिति और बिल्ड नंबर दिखता है. रोल आउट की प्रोसेस पूरी होने पर, यह रोल आउट, मौजूदा रोल आउट के तौर पर दिखता है.
Firebase CLI में रोल आउट ट्रिगर करने के लिए, यह कमांड चलाएं और पूछे जाने पर, रोल आउट के लिए ब्रांच चुनें:
firebase apphosting:rollouts:create BACKEND_ID
इसके अलावा, --git-branch विकल्प का इस्तेमाल करके, किसी खास ब्रांच के सबसे नए कमिट के लिए रोल आउट शुरू किया जा सकता है:
firebase apphosting:rollouts:create BACKEND_ID
--git_branch BRANCH_NAME
--git-commit विकल्प का इस्तेमाल करके, किसी खास कमिट के साथ रोल आउट भी बनाया जा सकता है:
firebase apphosting:rollouts:create BACKEND_ID
--git_commit COMMIT_ID
पिछला रोल आउट वापस लाना
App Hosting में, पिछले रोल आउट को वापस लाने के दो विकल्प मिलते हैं:
- बिना फिर से बनाए, तुरंत रोल बैक करना
- फिर से बनाकर, पिछले वर्शन पर रोल बैक करना
तुरंत रोल बैक करना
कभी-कभी आपको अपने ऐप्लिकेशन के पुराने वर्शन पर तुरंत वापस जाना पड़ सकता है. जैसे, अगर आपको नए रोल आउट में कोई गंभीर बग मिला है या आपको कोई ऐसा फ़्लकी बिल्ड मिला है जो नए रोल आउट को ब्लॉक कर रहा है. ऐसे मामलों में, पिछले रोल आउट से अपनी पसंद की मौजूदा कंटेनर इमेज को वापस लाया जा सकता है. इस इमेज को फिर से नहीं बनाया जाता. इसके बजाय, यह उस कोड और एनवायरमेंट कॉन्फ़िगरेशन का इस्तेमाल करती है जिसका इस्तेमाल इसे पहली बार बनाते समय किया गया था.
तुरंत रोल बैक करने के लिए:
- Firebase console में, होस्टिंग और सर्वरलेस > App Hosting पर जाएं.
- उस बैकएंड के लिए देखें पर क्लिक करें जिसके लिए आपको रोल बैक करना है.
- रोल आउट टैब चुनें.
- बैकएंड के लिए इतिहास टेबल में, पिछले बिल्ड के लिए तीन बिंदुओं वाला मेन्यू चुनें.
- इस बिल्ड पर रोल बैक करें को चुनें और पुष्टि करें.
फिर से बनाकर रोल बैक करना
अगर आपको अपने ऐप्लिकेशन के पुराने वर्शन पर वापस जाना है, लेकिन मौजूदा कॉन्फ़िगरेशन को बनाए रखना है, तो रोल बैक की प्रोसेस के तहत ऐप्लिकेशन को फिर से बनाया जा सकता है. उदाहरण के लिए, अगर आपके सबसे नए वर्शन ने Secret Manager में एपीआई पासकोड की वैल्यू अपडेट की है, तो फिर से बनाने पर यह पक्का किया जा सकता है कि रोल बैक करने के बाद, आपके ऐप्लिकेशन में नया पासकोड इस्तेमाल किया जाए.
फिर से बनाकर रोल बैक करने के लिए:
- Firebase console में, होस्टिंग और सर्वरलेस > App Hosting पर जाएं.
- उस बैकएंड के लिए डैशबोर्ड देखें पर क्लिक करें जिसके लिए आपको रोल बैक करना है.
- रोल आउट टैब चुनें.
- रोल आउट बनाएं को चुनें.
- रोल आउट बनाएं डायलॉग में, पिछला कमिट को चुनें. इसके बाद, उस वर्शन के लिए कमिट आईडी डालें जिसे आपको फिर से बनाना है और रोल बैक करना है. कमिट आईडी,आपके रोल आउट के इतिहास में शामिल हर रोल आउट की "बदलाव की जानकारी" का हिस्सा होता है. यह लेबल में ब्रैकेट में दिखता है.
- रोल बैक शुरू करने के लिए, बनाएं को चुनें.
रोल आउट की सेटिंग बदलना
बैकएंड के डैशबोर्ड में, सेटिंग > डिप्लॉयमेंट व्यू में मौजूद कंट्रोल का इस्तेमाल करके, रोल आउट के लिए लाइव ब्रांच बदली जा सकती है. साथ ही, रोल आउट अपने-आप होने की सुविधा बंद या चालू की जा सकती है.
- Firebase console में, होस्टिंग और सर्वरलेस > App Hosting पर जाएं.
- उस बैकएंड के लिए देखें पर क्लिक करें जिसके लिए आपको रोल आउट की सेटिंग अपडेट करनी हैं.
- बैकएंड डैशबोर्ड में, सेटिंग को चुनें. डिफ़ॉल्ट व्यू में, डोमेन और कस्टम डोमेन के बारे में जानकारी दिखती है.
- डिप्लॉयमेंट व्यू चुनें. इस व्यू में, रोल आउट के लिए लाइव ब्रांच बदली जा सकती है. साथ ही, रोल आउट अपने-आप होने की सुविधा बंद या चालू की जा सकती है. इसके अलावा, बैकएंड के लिए ऐप्लिकेशन की रूट डायरेक्ट्री और एनवायरमेंट सेट करने के विकल्प भी मौजूद हैं. इसके लिए, एक से ज़्यादा एनवायरमेंट में डिप्लॉय करना लेख पढ़ें.
रोल आउट अपने-आप होने की सुविधा मैनेज करना
डिफ़ॉल्ट रूप से, App Hosting फ़ाइलों की "ज़रूरी" सूची को मानता है. इसका मतलब है कि सभी आपकी रिपॉज़िटरी में हर नए कमिट से, नया बिल्ड और रोल आउट ट्रिगर होता है. हालांकि, समय बचाने और गैर-ज़रूरी डिप्लॉयमेंट से बचने के लिए, App Hosting को कॉन्फ़िगर किया जा सकता है, ताकि वह किसी कमिट में बदले गए खास फ़ाइल पाथ के आधार पर बिल्ड को स्किप कर सके.
इसे सेटिंग > रोल आउट > रोल आउट ट्रिगर में जाकर कॉन्फ़िगर किया जा सकता है. यहां, अगर आपको अपनी रिपॉज़िटरी में हर नए कमिट से नया बिल्ड और रोल आउट ट्रिगर करना है, तो ज़रूरी पाथ को खाली छोड़ा जा सकता है. इसके अलावा, यह भी बताया जा सकता है कि किन डायरेक्ट्री या फ़ाइलों से हमेशा रोल आउट ट्रिगर होना चाहिए. अगर डायरेक्ट्री तय की जाती हैं, तो पक्का करें कि उन सभी पाथ को जोड़ा जाए जहां बदलाव होने पर रोल आउट ट्रिगर होना चाहिए.
इग्नोर किए गए पाथ में जोड़ी गई डायरेक्ट्री या फ़ाइलों से, कभी भी रोल आउट अपने-आप ट्रिगर नहीं होगा. अगर कोई सबडायरेक्ट्री, ज़रूरी और इग्नोर की गई सूचियों, दोनों में शामिल है, तो रोल आउट अपने-आप ट्रिगर नहीं होगा. अगर सिर्फ़ इग्नोर किए गए पाथ की सूची भरी जाती है, तो App Hosting ज़रूरी पाथ के लिए "*" अपने-आप भर देगा.
अगर आपने ऐसा कमिट पुश किया है जिसमें बदली गई कोई भी फ़ाइल, आपके ज़रूरी पाथ से मैच नहीं करती है
या अगर इग्नोर किए गए पाथ की मदद से सभी बदलाव साफ़ तौर पर बाहर रखे गए हैं,
App Hosting तब भी GitHub इवेंट की रसीद को स्वीकार करेगा. हालांकि, यह
बिल्ड और रोल आउट की स्थितियों को SKIPPED के तौर पर मार्क करेगा. साथ ही, रोल आउट अपने-आप
ट्रिगर नहीं होगा.