DevOps बूटकैंप · पाठ

रिपॉज़िटरी-पार वर्कफ़्लो

निर्भरताएँ प्रबंधित करने और जटिल परिनियोजनों का समन्वय करने के लिए अलग-अलग रिपॉज़िटरी में वर्कफ़्लो को श्रृंखलाबद्ध करना सीखिए।

पाठ 2, कुल 4 में से11 चरण

रिपॉज़िटरी-पार वर्कफ़्लो, CoddyKit पर DevOps बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 2वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह DevOps बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

रिपॉज़िटरी-पार कार्यप्रवाहों का परिचय

आधुनिक सॉफ़्टवेयर विकास में, एप्लिकेशन अक्सर अलग-अलग रिपॉज़िटरी में फैले कई घटकों से मिलकर बने होते हैं। माइक्रोसर्विस, साझा लाइब्रेरी या अलग-अलग परिनियोजन कॉन्फ़िगरेशन इसके उदाहरण हैं।

इन अलग-अलग रिपॉज़िटरी में कार्यप्रवाहों का समन्वय अधिक मॉड्यूलरिटी और ज़िम्मेदारियों के बेहतर पृथक्करण की सुविधा देता है। इस पाठ में GitHub Actions के साथ इसे प्राप्त करने का तरीका बताया गया है।

रिपॉज़िटरी-पार समन्वय क्यों?

परंपरागत रूप से, GitHub Actions कार्यप्रवाह एक ही रिपॉज़िटरी तक सीमित होते हैं। लेकिन यदि आपको ये काम करने हों:

  • एक रिपॉज़िटरी में आर्टिफैक्ट बनाकर दूसरी में परिनियोजन शुरू करना?
  • कई सेवा रिपॉज़िटरी में अपडेट शुरू करने के लिए किसी साझा कॉन्फ़िगरेशन रिपॉज़िटरी का उपयोग करना?
  • केंद्रीय रिपॉज़िटरी में प्रबंधित सुरक्षा नीतियों को बाकी सभी रिपॉज़िटरी में लागू करना?

रिपॉज़िटरी-पार कार्यप्रवाह इन जटिल परिस्थितियों का समाधान प्रदान करते हैं।

रिपॉज़िटरी को जोड़ना: `repository_dispatch`

GitHub Actions repository_dispatch नामक एक विशेष इवेंट प्रकार प्रदान करता है। यह आपकी GitHub रिपॉज़िटरी के लिए कस्टम वेबहुक की तरह काम करता है।

  • एक कार्यप्रवाह ('भेजने वाला') GitHub को API अनुरोध भेजता है।
  • दूसरी रिपॉज़िटरी में मौजूद एक अन्य कार्यप्रवाह ('प्राप्त करने वाला') इस विशिष्ट इवेंट की प्रतीक्षा करता है।

इससे अलग-अलग रिपॉज़िटरी में कार्यप्रवाहों को प्रोग्राम के माध्यम से शुरू किया जा सकता है।

प्राप्तकर्ता कार्यप्रवाह सेट अप करना

repository_dispatch इवेंट प्राप्त करने के लिए, लक्ष्य रिपॉज़िटरी के किसी कार्यप्रवाह को इसे सुनने के लिए कॉन्फ़िगर करना आवश्यक है। यह on: कीवर्ड का उपयोग करके किया जाता है।

repo-B में कार्यप्रवाह कुछ इस तरह दिख सकता है:

name: Receive Dispatch Event

on:
  repository_dispatch:
    types: [my-custom-event]

jobs:
  process-event:
    runs-on: ubuntu-latest
    steps:
      - name: Log event payload
        run: |
          echo "Event type: ${{ github.event.action }}"
          echo "Payload: ${{ toJSON(github.event.client_payload) }}"

प्राप्तकर्ता कॉन्फ़िगरेशन को समझना

पिछले उदाहरण में:

  • on: repository_dispatch: GitHub को इस इवेंट की प्रतीक्षा करने के लिए कहता है।
  • types: [my-custom-event] निर्दिष्ट करता है कि यह कार्यप्रवाह तभी चलेगा जब भेजे गए इवेंट का प्रकार my-custom-event हो। आप कई प्रकार परिभाषित कर सकते हैं।
  • github.event.action में इवेंट का प्रकार (जैसे, my-custom-event) शामिल होगा।
  • github.event.client_payload डिस्पैच के साथ भेजे गए किसी भी कस्टम डेटा को रखता है।

इवेंट ट्रिगर करना: दूसरी रिपॉज़िटरी से भेजना

repository_dispatch इवेंट ट्रिगर करने के लिए, आपको GitHub API को HTTP POST अनुरोध भेजना होगा। यह काम किसी अन्य GitHub Actions कार्यप्रवाह या स्क्रिप्ट के भीतर से curl या GitHub CLI (gh cli) का उपयोग करके किया जा सकता है।

मुख्य आवश्यकताएँ:

  • लक्ष्य रिपॉज़िटरी का स्वामी और नाम।
  • ऐसा इवेंट type जिसे प्राप्त करने वाला कार्यप्रवाह सुन रहा हो।
  • किसी भी कस्टम डेटा के लिए एक client_payload।
  • repo दायरे वाला GitHub Personal Access Token (PAT)।

उदाहरण: `gh cli` से डिस्पैच करना

यहाँ repo-A में एक कार्यप्रवाह है, जो repo-B को एक इवेंट भेजता है। ध्यान दें कि हम टोकन के लिए एक गुप्त मान का उपयोग करते हैं और client_payload भेजते हैं।

name: Trigger Deploy Workflow

on:
  push:
    branches: [main]

jobs:
  dispatch:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Install GitHub CLI
        run: sudo apt-get update && sudo apt-get install gh -y

      - name: Dispatch event to repo-B
        env:
          GH_TOKEN: ${{ secrets.CROSS_REPO_PAT }}
        run: |
          gh api \
            --method POST \
            -H "Accept: application/vnd.github.v3+json" \
            /repos/YOUR_ORG/repo-B/dispatches \
            -f event_type='my-custom-event' \
            -f client_payload='{"ref":"${{ github.ref }}", "sha":"${{ github.sha }}"}'

क्रॉस-रिपॉज़िटरी पहुँच को सुरक्षित करना

किसी कार्यप्रवाह को दिया गया डिफ़ॉल्ट GITHUB_TOKEN उसी रिपॉज़िटरी तक सीमित होता है जहाँ वह कार्यप्रवाह चल रहा होता है। *किसी दूसरी* रिपॉज़िटरी में इवेंट ट्रिगर करने के लिए, आपको अधिक व्यापक अनुमतियों वाले टोकन की आवश्यकता होती है।

  • Personal Access Token (PAT) का उपयोग करें, जिसमें repo दायरा हो।
  • इस PAT को ट्रिगर करने वाली रिपॉज़िटरी में रिपॉज़िटरी गुप्त मान के रूप में संग्रहीत करें (जैसे, CROSS_REPO_PAT)।
  • PAT को अपने कार्यप्रवाह की फ़ाइलों में सीधे कभी न लिखें।

`client_payload` के साथ कस्टम डेटा भेजना

client_payload एक JSON ऑब्जेक्ट है, जिसे आप इवेंट भेजते समय शामिल कर सकते हैं। ट्रिगर करने वाले कार्यप्रवाह से प्राप्त करने वाले कार्यप्रवाह तक संदर्भ या डेटा भेजने के लिए यह बहुत महत्वपूर्ण है।

आप जो डेटा भेज सकते हैं, उसके उदाहरण:

  • बिल्ड को ट्रिगर करने वाला कमिट SHA या शाखा का नाम।
  • पर्यावरण का लक्ष्य (जैसे, "staging", "production")।
  • परिनियोजित की जाने वाली आर्टिफ़ैक्ट का संस्करण नंबर।

याद रखें: client_payload कार्यप्रवाह लॉग में दिखाई देता है, इसलिए संवेदनशील जानकारी भेजने से बचें।

क्रॉस-रिपॉज़िटरी कार्यप्रवाह की त्वरित जाँच

आपने अलग-अलग GitHub रिपॉज़िटरी में कार्यप्रवाहों का समन्वय करना सीख लिया है। आइए, मुख्य घटकों की आपकी समझ की जाँच करें।

पुनरावलोकन: रिपॉज़िटरी में समन्वय

आपने repository_dispatch का उपयोग करके क्रॉस-रिपॉज़िटरी कार्यप्रवाह लागू करना सफलतापूर्वक सीख लिया है!

  • क्यों: अनेक रिपॉज़िटरी में निर्भरताओं को प्रबंधित करने और जटिल परिनियोजनों का समन्वय करने के लिए।
  • कैसे: एक 'भेजने वाला' कार्यप्रवाह GitHub को API कॉल करता है और दूसरी रिपॉज़िटरी में 'प्राप्त करने वाले' कार्यप्रवाह को ट्रिगर करता है।
  • मुख्य बात: repository_dispatch इवेंट प्रकार और प्राप्त करने वाले कार्यप्रवाह में मेल खाते हुए types।
  • डेटा: कार्यप्रवाहों के बीच गैर-संवेदनशील जानकारी भेजने के लिए client_payload का उपयोग करें।
  • सुरक्षा: क्रॉस-रिपॉज़िटरी पहुँच के लिए हमेशा repo दायरे वाला PAT किसी गुप्त मान के रूप में संग्रहीत करके उपयोग करें।

यह शक्तिशाली सुविधा अत्यंत लचीले और अलग-अलग सीआई/सीडी पाइपलाइन सक्षम करती है।

शुरुआत निःशुल्क

एआई शिक्षक के साथ DevOps बूटकैंप सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
142
पाठ
568

अक्सर पूछे जाने वाले प्रश्न

क्या “रिपॉज़िटरी-पार वर्कफ़्लो” पाठ निःशुल्क है?

हाँ — DevOps बूटकैंप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “रिपॉज़िटरी-पार वर्कफ़्लो” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“रिपॉज़िटरी-पार वर्कफ़्लो” में मैं क्या सीखूँगा?

निर्भरताएँ प्रबंधित करने और जटिल परिनियोजनों का समन्वय करने के लिए अलग-अलग रिपॉज़िटरी में वर्कफ़्लो को श्रृंखलाबद्ध करना सीखिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ DevOps बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या DevOps बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर DevOps बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 2वाँ पाठ है।

“रिपॉज़िटरी-पार वर्कफ़्लो” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस DevOps बूटकैंप पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर DevOps बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. मोनोरेपो के लिए CI/CD
  2. रिपॉज़िटरी-पार वर्कफ़्लो
  3. केंद्रीकृत वर्कफ़्लो प्रबंधन
  4. Path filtering और selective build
← DevOps बूटकैंप पर वापस जाएँ