🌐 Detecting your location…
📢 Advertisement — Configure AdSense in Appearance → Customize → AdSense Settings

2026 में GitHub क्रियाओं के साथ CI/CD पाइपलाइन कैसे स्थापित करें: संपूर्ण मार्गदर्शिका

⏱️2 min read  ·  385 words

GitHub क्रियाएँ 2026 में सबसे लोकप्रिय CI/CD प्लेटफ़ॉर्म है – GitHub में निर्मित, पूर्व-निर्मित कार्यों के एक विशाल बाज़ार के साथ। यह मार्गदर्शिका आपके रेपो में पूरी तरह से YAML फ़ाइलों में परीक्षण से लेकर तैनाती तक एक संपूर्ण पाइपलाइन बनाती है।

📋 Table of Contents

  1. GitHub क्रियाएँ कैसे काम करती हैं
  2. बेसिक सीआई वर्कफ़्लो
  3. मैट्रिक्स बनाता है (एकाधिक संस्करणों का परीक्षण करें)
  4. कैशिंग निर्भरताएँ
  5. डॉकर छवियाँ बनाना और पुश करना
  6. वातावरण और अनुमोदन के साथ परिनियोजन
  7. रहस्यों का प्रबंधन
  8. पुन: प्रयोज्य वर्कफ़्लो और समग्र क्रियाएँ
  9. अनुकूलन युक्तियाँ
  10. प्रश्न: GitHub क्रियाएँ बनाम GitLab CI बनाम जेनकींस?
  11. GitHub Actions आपके रेपो में YAML में परिभाषित सभी चीज़ों के साथ CI/CD को सुलभ बनाता है। यह मार्गदर्शिका आवश्यक बातों को शामिल करती है – मैट्रिक्स बिल्ड के साथ सीआई वर्कफ़्लो, निर्भरता कैशिंग, डॉकर छवि निर्माण, और पर्यावरण अनुमोदन के साथ तैनाती। पूर्व-निर्मित कार्यों के विशाल बाज़ार का मतलब है कि आप शायद ही कभी शुरुआत से चीज़ें लिखते हैं। एक सरल परीक्षण वर्कफ़्लो के साथ प्रारंभ करें, नौकरियों का निर्माण और तैनाती क्रमिक रूप से जोड़ें, गति के लिए आक्रामक रूप से कैश करें, और उत्पादन तैनाती को गेट करने के लिए वातावरण का उपयोग करें। यह GitHub द्वारा होस्ट की गई परियोजनाओं के लिए पेशेवर CI/CD का सबसे तेज़ मार्ग है।

GitHub क्रियाएँ कैसे काम करती हैं

वर्कफ़्लो.github/workflows/*.ymlमें रहते हैं . प्रत्येक वर्कफ़्लो घटनाओं (पुश, पुल अनुरोध, शेड्यूल) पर ट्रिगर होता है और इसमेंशामिल होता है नौकरियाँ जोपर चलता है धावक (GitHub द्वारा होस्ट किए गए VMs)। नौकरियों में शामिल हैंकदम – या तो शेल कमांड या पुन: प्रयोज्यक्रियाएँ.

बेसिक सीआई वर्कफ़्लो

# .github/workflows/ci.yml
name: CI

on:
  push:
    branches: [main, develop]
  pull_request:
    branches: [main]

jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: actions/setup-node@v4
        with:
          node-version: '20'
          cache: 'npm'

      - run: npm ci
      - run: npm run lint
      - run: npm test
      - run: npm run build

मैट्रिक्स बनाता है (एकाधिक संस्करणों का परीक्षण करें)

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ubuntu-latest, windows-latest, macos-latest]
        node: [18, 20, 22]
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: ${{ matrix.node }}
      - run: npm ci
      - run: npm test
# Runs 9 combinations (3 OS x 3 Node versions) in parallel

कैशिंग निर्भरताएँ

steps:
  - uses: actions/checkout@v4

  # setup-node has built-in caching
  - uses: actions/setup-node@v4
    with:
      node-version: '20'
      cache: 'npm'   # caches ~/.npm automatically

  # Or cache manually for other tools
  - uses: actions/cache@v4
    with:
      path: |
        ~/.cache/pip
        .venv
      key: ${{ runner.os }}-pip-${{ hashFiles('requirements.txt') }}

डॉकर छवियाँ बनाना और पुश करना

name: Build and Push

on:
  push:
    branches: [main]

jobs:
  docker:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - uses: docker/login-action@v3
        with:
          registry: ghcr.io
          username: ${{ github.actor }}
          password: ${{ secrets.GITHUB_TOKEN }}

      - uses: docker/build-push-action@v6
        with:
          context: .
          push: true
          tags: |
            ghcr.io/${{ github.repository }}:latest
            ghcr.io/${{ github.repository }}:${{ github.sha }}
          cache-from: type=gha
          cache-to: type=gha,mode=max

वातावरण और अनुमोदन के साथ परिनियोजन

jobs:
  deploy:
    runs-on: ubuntu-latest
    needs: [test]           # only deploy if tests pass
    environment:
      name: production      # can require manual approval in repo settings
      url: https://example.com
    steps:
      - uses: actions/checkout@v4

      - name: Deploy via SSH
        uses: appleboy/ssh-action@v1
        with:
          host: ${{ secrets.PROD_HOST }}
          username: ${{ secrets.DEPLOY_USER }}
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          script: |
            cd /app
            docker compose pull
            docker compose up -d

रहस्यों का प्रबंधन

रहस्यों कोमें संग्रहित करें रेपो सेटिंग्स, फिर रहस्य और चर, फिर क्रियाएँ. उन्हें${{ secrets.NAME }}के रूप में संदर्भित करें . वे लट्ठों में छिपे होते हैं और कभी उजागर नहीं होते। स्टेजिंग बनाम उत्पादन के लिए पर्यावरण-विशिष्ट रहस्यों का उपयोग करें।

steps:
  - run: ./deploy.sh
    env:
      API_KEY: ${{ secrets.API_KEY }}
      DATABASE_URL: ${{ secrets.DATABASE_URL }}

पुन: प्रयोज्य वर्कफ़्लो और समग्र क्रियाएँ

# Call a reusable workflow to avoid duplication
jobs:
  call-shared:
    uses: ./.github/workflows/shared-test.yml
    with:
      node-version: '20'
    secrets: inherit

# shared-test.yml declares:
# on:
#   workflow_call:
#     inputs:
#       node-version:
#         type: string

अनुकूलन युक्तियाँ

  • का प्रयोग करें कार्य क्रम को नियंत्रित करने और समानांतर में स्वतंत्र कार्य चलाने के लिएneeds:कैश निर्भरताएँ
  • — अधिकांश पाइपलाइनों के लिए सबसे बड़ी गतिपुराने रन रद्द करें:
  • पथ फ़िल्टर का उपयोग करें: concurrency: { group: ${{ github.ref }}, cancel-in-progress: true }
  • वर्कफ़्लो केवल तभी चलाएँ जब प्रासंगिक फ़ाइलें बदल जाएँपिन एक्शन संस्करण
  • ) स्थिरता और सुरक्षा के लिए (@v4अक्सर पूछे जाने वाले प्रश्न

प्रश्न: GitHub क्रियाएँ बनाम GitLab CI बनाम जेनकींस?

उत्तर: यदि आपका कोड GitHub पर है तो GitHub क्रियाएँ – गहन एकीकरण और एक विशाल बाज़ार। GitLab द्वारा होस्ट किए गए कोड के लिए GitLab CI। अधिकतम नियंत्रण/स्वयं-होस्टिंग या जटिल उद्यम आवश्यकताओं के लिए जेनकींस। GitHub प्रोजेक्ट के लिए क्रियाएँ सबसे आसान है।
प्रश्न: क्या GitHub क्रियाएँ निःशुल्क हैं?

उत्तर: सार्वजनिक रिपोज़ को असीमित निःशुल्क मिनट मिलते हैं। निजी रिपो को मासिक निःशुल्क आवंटन मिलता है, फिर प्रति मिनट भुगतान करें। अधिकांश छोटी परियोजनाओं और मुक्त स्रोत के लिए, यह प्रभावी रूप से मुफ़्त है।
प्रश्न: मैं धीमे वर्कफ़्लो को कैसे तेज़ करूँ?

ए: कैश निर्भरता (सबसे बड़ी जीत),
के समानांतर नौकरियां चलाएं , अप्रासंगिक रन को छोड़ने के लिए पथ फ़िल्टर का उपयोग करें, और समवर्ती समूहों के साथ पुराने रन को रद्द करें। प्रोफाइल करें कि कौन से चरण पहले सबसे धीमे हैं।needs:प्रश्न: उत्पादन परिनियोजन से पहले मुझे अनुमोदन की आवश्यकता कैसे होगी?

उत्तर: आवश्यक समीक्षकों के साथ GitHub वातावरण का उपयोग करें।
कॉन्फ़िगर करें रेपो सेटिंग्स में पर्यावरण को मैन्युअल अनुमोदन की आवश्यकता होती है – जब तक अनुमोदित समीक्षक पुष्टि नहीं करता तब तक तैनाती कार्य रुक जाता है।productionप्रश्न: क्या मैं वर्कफ़्लो को एक शेड्यूल पर चला सकता हूँ?

उत्तर: हाँ –
का उपयोग करें निर्धारित रनों के लिए (रात्रिकालीन निर्माण, सफाई कार्य, आवधिक जांच)। क्रॉन सिंटैक्स समय को नियंत्रित करता है।on: schedule: - cron: '0 0 * * *'निष्कर्ष

GitHub Actions आपके रेपो में YAML में परिभाषित सभी चीज़ों के साथ CI/CD को सुलभ बनाता है। यह मार्गदर्शिका आवश्यक बातों को शामिल करती है – मैट्रिक्स बिल्ड के साथ सीआई वर्कफ़्लो, निर्भरता कैशिंग, डॉकर छवि निर्माण, और पर्यावरण अनुमोदन के साथ तैनाती। पूर्व-निर्मित कार्यों के विशाल बाज़ार का मतलब है कि आप शायद ही कभी शुरुआत से चीज़ें लिखते हैं। एक सरल परीक्षण वर्कफ़्लो के साथ प्रारंभ करें, नौकरियों का निर्माण और तैनाती क्रमिक रूप से जोड़ें, गति के लिए आक्रामक रूप से कैश करें, और उत्पादन तैनाती को गेट करने के लिए वातावरण का उपयोग करें। यह GitHub द्वारा होस्ट की गई परियोजनाओं के लिए पेशेवर CI/CD का सबसे तेज़ मार्ग है।

GitHub Actions आपके रेपो में YAML में परिभाषित सभी चीज़ों के साथ CI/CD को सुलभ बनाता है। यह मार्गदर्शिका आवश्यक बातों को शामिल करती है – मैट्रिक्स बिल्ड के साथ सीआई वर्कफ़्लो, निर्भरता कैशिंग, डॉकर छवि निर्माण, और पर्यावरण अनुमोदन के साथ तैनाती। पूर्व-निर्मित कार्यों के विशाल बाज़ार का मतलब है कि आप शायद ही कभी शुरुआत से चीज़ें लिखते हैं। एक सरल परीक्षण वर्कफ़्लो के साथ प्रारंभ करें, नौकरियों का निर्माण और तैनाती क्रमिक रूप से जोड़ें, गति के लिए आक्रामक रूप से कैश करें, और उत्पादन तैनाती को गेट करने के लिए वातावरण का उपयोग करें। यह GitHub द्वारा होस्ट की गई परियोजनाओं के लिए पेशेवर CI/CD का सबसे तेज़ मार्ग है।

✍️ Leave a Comment

Your email address will not be published. Required fields are marked *

🌐 Read in:🇩🇪 Deutsch🇧🇷 Português🇸🇦 العربية🇮🇳 हिन्दी🇧🇩 বাংলা