GitHub क्रियाएँ 2026 में सबसे लोकप्रिय CI/CD प्लेटफ़ॉर्म है – GitHub में निर्मित, पूर्व-निर्मित कार्यों के एक विशाल बाज़ार के साथ। यह मार्गदर्शिका आपके रेपो में पूरी तरह से YAML फ़ाइलों में परीक्षण से लेकर तैनाती तक एक संपूर्ण पाइपलाइन बनाती है।
📋 Table of Contents
- GitHub क्रियाएँ कैसे काम करती हैं
- बेसिक सीआई वर्कफ़्लो
- मैट्रिक्स बनाता है (एकाधिक संस्करणों का परीक्षण करें)
- कैशिंग निर्भरताएँ
- डॉकर छवियाँ बनाना और पुश करना
- वातावरण और अनुमोदन के साथ परिनियोजन
- रहस्यों का प्रबंधन
- पुन: प्रयोज्य वर्कफ़्लो और समग्र क्रियाएँ
- अनुकूलन युक्तियाँ
- प्रश्न: GitHub क्रियाएँ बनाम GitLab CI बनाम जेनकींस?
- 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 का सबसे तेज़ मार्ग है।
🔗 Share this article
✍️ Leave a Comment