सामग्री पर जाएं
GitTree
गिट गाइड10 मिनट पढ़ा

पुश करने से पहले स्थानीय स्तर पर GitHub Actions और GitLab CI कैसे चलाएं

वर्कफ़्लो पास होता है या नहीं यह देखने के लिए "फ़िक्स सीआई" कमिट को पुश करना बंद करें। उन्हीं कार्यों को अपने कंप्यूटर पर Docker में अधिनियम या gitlab-ci-local के साथ मिनटों में चलाएं, फिर एक बार पुश करें। इसमें रेडी-टू-रन नमूना और विज़ुअल वॉकथ्रू शामिल है।

द्वारा लिखित Kodmora

GitTree के पीछे सॉफ्टवेयर हाउस

प्रकाशित अद्यतन किया गया
  • सीआई/सीडी
  • GitHub
इस पेज पर

आप अपने कंप्यूटर पर GitHub Actions को `act` के साथ चला सकते हैं, और GitLab CI को gitlab-ci-local के साथ चला सकते हैं: दोनों अपनी पाइपलाइन फ़ाइल को पढ़ें और प्रत्येक कार्य को Docker कंटेनर में शुरू करें। Docker इंस्टॉल करें, रनर इंस्टॉल करें, फिर रिपॉजिटरी के फ़ोल्डर से act -j test या gitlab-ci-local test चलाएं। एक असफल कार्य अब आपकी मशीन पर पुश करने और होस्ट किए गए धावक की प्रतीक्षा के बजाय सेकंडों में विफल हो जाता है।

यह मार्गदर्शिका बताती है कि macOS, Windows और Linux पर क्या स्थापित करना है, दोनों धावकों के लिए आदेश, एक नमूना वर्कफ़्लो जिसे आप कॉपी कर सकते हैं, स्थानीय रन की सीमाएं और लोगों द्वारा सबसे पहले की जाने वाली त्रुटियां। वॉकथ्रू हमारे द्वारा बनाए गए Git क्लाइंट GitTree का उपयोग करता है: इसका स्थानीय पाइपलाइन पेज यह जाँचता है कि आपने क्या इंस्टॉल किया है, एक नमूना फ़ाइल लिखता है और आपके लिए सटीक कमांड तैयार करता है। स्थानीय पाइपलाइनें GitTree की निःशुल्क योजना का हिस्सा हैं और इसके लिए किसी होस्टिंग खाते की आवश्यकता नहीं है।

सीआई पाइपलाइन स्थानीय स्तर पर क्यों चलाएं?

वर्कफ़्लो फ़ाइल में प्रत्येक परिवर्तन एक कोड है जिसे आप तब तक परीक्षण नहीं कर सकते जब तक वह चलता न हो। स्थानीय रनर के बिना लूप है: YAML को संपादित करें, कमिट करें, पुश करें, रनर की प्रतीक्षा करें, लॉग पढ़ें, दोहराएं। प्रत्येक दौर में कुछ मिनट लगते हैं और "पुनः प्रयास करें" जैसी कमिटों का एक निशान छोड़ जाता है। एक स्थानीय रन लूप को सेकंड तक छोटा कर देता है और इतिहास को साफ रखता है।

स्थानीय रन की तुलना में पुश-एंड-वेट
पुश दो और प्रतीक्षा करोस्थानीय स्तर पर चलाएँ
प्रतिक्रिया का समयप्रति प्रयास मिनट, प्लस कतार समयछवि पुल किए जाने के कुछ सेकंड बाद
कमिटों की आवश्यकता हैप्रति प्रयास एकजब तक यह गुजर न जाए, कोई नहीं
होस्ट किए गए सीआई मिनटों का उपयोग करता हैहाँनहीं
उत्पादन सीआई के समान वातावरणहाँबंद करें, समान नहीं (कंटेनर, कोई होस्ट किए गए रहस्य नहीं)
ऑफ़लाइन काम करता हैनहींहाँ, पहली छवि पुल करने के बाद

आपको क्या चाहिए: Docker प्लस एक धावक

दोनों धावक एक कंटेनर में हर काम शुरू करते हैं, इसलिए एक Docker इंजन स्थापित होना चाहिए और चलना चाहिए: Docker Desktop, OrbStack या Colima पर macOS, Docker Desktop पर Windows, Docker Engine या Docker Desktop पर Linux। फिर अपनी फ़ाइल के लिए रनर इंस्टॉल करें।

प्रत्येक धावक को कैसे स्थापित करें
धावकपाइपलाइन फ़ाइलmacOSWindowsLinux
act.github/workflows/*.ymlbrew install actwinget install nektos.actnektosact.com पर इंस्टॉल स्क्रिप्ट
gitlab-ci-local.gitlab-ci.ymlnpm install -g gitlab-ci-local.exe अपने GitHub से PATH पर रिलीज़ होता हैnpm install -g gitlab-ci-local

gitlab-ci-local needs Node.js 18 or later when you install it with npm. Check the setup with docker info, act --version and gitlab-ci-local --version: if docker info fails, start the engine before anything else.

अधिनियम के साथ स्थानीय रूप से GitHub Actions चलाएँ

रिपॉजिटरी के रूट फ़ोल्डर से act चलाएँ। पहले कार्यों की सूची बनाएं, फिर जिस पर आप काम कर रहे हैं उसे चलाएं। डिफ़ॉल्ट रूप से act एक push ईवेंट का अनुकरण करता है, इसलिए जो कार्य केवल अन्य ईवेंट पर चलते हैं उन्हें ईवेंट नाम की आवश्यकता होती है।

# list workflows and jobs
act -l

# run one job from one workflow file
act -W .github/workflows/ci.yml -j test

# simulate a pull request instead of a push
act pull_request -j test

# pass a secret the job needs
act -j deploy -s NPM_TOKEN="$NPM_TOKEN"

# Apple silicon: run x86_64 images
act -j test --container-architecture linux/amd64

पहला रन पूछता है कि किस धावक छवि का उपयोग करना है। मध्यम अधिकांश परियोजनाओं के लिए उपयुक्त है; छोटी छवियों में वे उपकरण शामिल नहीं हैं जिनमें होस्ट किए गए धावक शामिल हैं, और पूरी छवि बहुत बड़ी है। यदि कोई चरण "कमांड नहीं मिला" के साथ विफल हो जाता है, तो -P ubuntu-latest=<image> के साथ एक बड़ी छवि चुनें या एक चरण में टूल इंस्टॉल करें।

GitLab CI को स्थानीय रूप से gitlab-ci-local के साथ चलाएँ

वर्तमान फ़ोल्डर से gitlab-ci-local पढ़ता है .gitlab-ci.yml। बिना किसी तर्क के यह पूरी पाइपलाइन चलाता है; एक कार्य को चलाने के लिए इसे एक कार्य नाम दें। --list नौकरियों को चलाए बिना दिखाता है, यह जांचने का एक त्वरित तरीका है कि YAML पार्स करता है।

# list jobs and stages
gitlab-ci-local --list

# run one job
gitlab-ci-local test

# pass a CI/CD variable
gitlab-ci-local test --variable API_URL=http://localhost:8080

चरण दर चरण GitTree से स्थानीय स्तर पर पाइपलाइन चलाएँ

  1. सीआई/सीडी खोलें

    अपना भंडार खोलें और टूलबार में CI/CD दबाएँ। कनेक्टेड खाते या प्रो के बिना, दृश्य स्थानीय पाइपलाइनों पर खुलता है; एक के साथ, स्थानीय रूप से चलाएँ... इसके हेडर में है। आप टूल्स → स्थानीय पाइपलाइन तैयार करें का भी उपयोग कर सकते हैं।

  2. जांचें कि आपको क्या चाहिए

    आपको क्या चाहिए आपके सिस्टम के लिए इंस्टॉल कमांड के साथ-साथ रिपॉजिटरी ट्रस्ट और आपके टर्मिनल शेल के साथ Docker, act और gitlab-ci-local को उनके पथों के साथ मिला या नहीं मिला के रूप में दिखाता है। जो गायब है उसे स्थापित करें और Check again दबाएँ।

  3. एक नमूना जोड़ें, या अपनी फ़ाइल का उपयोग करें

    इस रिपॉजिटरी में पाइपलाइन फ़ाइलें आपके वर्कफ़्लो को चलाने के लिए तैयार या उनके न चल पाने के कारण के साथ सूचीबद्ध करती हैं। बिना किसी के, GitHub Actions नमूना जोड़ें या GitLab CI नमूना जोड़ें एक टिप्पणी की गई स्टार्टर फ़ाइल लिखता है और उसे खोलता है; GitTree कभी भी किसी मौजूदा फ़ाइल पर नहीं लिखता।

  4. तैयारी करो और चलाओ

    स्थानीय रूप से चलाएँ... दबाएँ, फ़ाइल, कार्य और अपना शेल चुनें, फिर कमांड तैयार करें। नए टर्मिनल में टाइप करें एंटर दबाए बिना सटीक कमांड को नए टर्मिनल में टाइप करें: इसे पढ़ें, फिर खुद एंटर दबाएं।

GitTree में स्थानीय पाइपलाइन: Docker और कार्य पाया गया, जो गायब है उसके लिए चरण स्थापित करें, और नमूना वर्कफ़्लो चलाने के लिए तैयार है।
GitTree में स्थानीय पाइपलाइन: Docker और कार्य पाया गया, जो गायब है उसके लिए चरण स्थापित करें, और नमूना वर्कफ़्लो चलाने के लिए तैयार है।

आरंभ करने के लिए एक नमूना वर्कफ़्लो

यह GitTree के GitHub Actions नमूने का आकार है: दो कार्य, निर्माण फिर परीक्षण, जो act और GitHub पर समान कार्य करते हैं। आदेशों को अपने आदेशों से बदलें.

name: GitTree local check

on:
  push:
  pull_request:
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Build
        run: npm ci && npm run build

  test:
    runs-on: ubuntu-latest
    needs: build
    steps:
      - uses: actions/checkout@v4
      - name: Test
        run: npm test

स्थानीय रन होस्ट किए गए सीआई से किस प्रकार भिन्न है

  • रहस्य और चर GitHub या GitLab पर कॉन्फ़िगर किए गए उपलब्ध नहीं हैं; उन लोगों को पास करें जिनकी नौकरी को आवश्यकता है।
  • कंटेनर, वर्चुअल मशीन नहीं: जिन सेवाओं को सिस्टमडी, या पूर्ण वर्चुअल मशीन की आवश्यकता होती है, वे उसी तरह नहीं चलती हैं।
  • छवियाँ होस्ट किए गए धावकों से भिन्न हैं; एक गुम उपकरण एक गुम पैकेज है, टूटा हुआ वर्कफ़्लो नहीं।
  • घटनाएँ सिम्युलेटेड हैं: act डिफॉल्ट से push; पुन: प्रयोज्य वर्कफ़्लो, शामिल और टेम्पलेट्स का समाधान रनर द्वारा किया जाता है, आपके संपादक द्वारा नहीं।
  • पासिंग लोकल रन एक होस्टेड परिणाम नहीं है: यह लूप को छोटा कर देता है; आपके मेज़बान के पास अभी भी अंतिम शब्द है।

सामान्य त्रुटियाँ और सुधार

पहली गलतियाँ जो लोग करते हैं
त्रुटिकारणठीक करो
Docker डेमॉन से कनेक्ट नहीं किया जा सकताइंजन नहीं चल रहा हैDocker Desktop, OrbStack, Colima या Docker सेवा प्रारंभ करें
एक चरण के अंदर आदेश नहीं मिलाधावक छवि में उपकरण का अभाव है-P के साथ एक बड़ी छवि का उपयोग करें, या इसे एक चरण में स्थापित करें
कोई नौकरी कभी भी act से नहीं चलतीact अनुकरण करता है push; कार्य किसी अन्य घटना को सुनता हैईवेंट पास करें, उदाहरण के लिए act pull_request
Apple सिलिकॉन पर निष्पादन प्रारूप त्रुटिआर्म64 पर एक x86_64 छवि Mac--container-architecture linux/amd64 जोड़ें
एक रहस्य खोखला हैहोस्ट किए गए रहस्य स्थानीय नहीं हैंइसे -s या --secret-file (act), --variable (gitlab-ci-local) के साथ पास करें

पुश करने से पहले: संघर्षों की भविष्यवाणी करें, रहस्यों की जाँच करें, पुश का पूर्वावलोकन करें

एक स्थानीय पाइपलाइन रन एक प्रश्न का उत्तर देता है: क्या नौकरियाँ ख़त्म होंगी। तीन अन्य जांचें पकड़ती हैं कि सीआई क्या देर से रिपोर्ट करता है या बिल्कुल नहीं, और उनमें से प्रत्येक कुछ भी भेजे जाने से पहले आपके कंप्यूटर पर चलता है।

  1. मर्ज की भविष्यवाणी करें। git merge-tree --write-tree --name-only HEAD origin/main मेमोरी में विलीन हो जाता है और आपके कामकाजी पेड़ को छुए बिना उन फ़ाइलों को सूचीबद्ध करता है जो विरोध कर सकती हैं। GitTree किसी ऐसे विलय से पहले उसी प्रकार की जाँच करता है और चेतावनी देता है जिससे विरोध हो सकता है; देखें गिट मर्ज विवादों को कैसे हल करें।
  2. रहस्यों की जांच करें। किसी कमिट या पुश से पहले, GitTree संभावित टोकन, पासवर्ड और निजी कुंजी के लिए स्थानीय रूप से परिवर्तन को स्कैन करता है और यदि कोई मिलता है तो एक संवाद के साथ रुक जाता है। रिमोट तक पहुंचने वाले रहस्य को घुमाना पड़ता है, इसलिए किसी को पकड़ने का सबसे सस्ता क्षण पुश करने से पहले का है। चेतावनी कोई गारंटी नहीं है, इसलिए आप जो भी भेजते हैं उसकी समीक्षा करें।
  3. पुश का पूर्वावलोकन करें। शिप पूर्वावलोकन उन कमिटों और फ़ाइलों को सूचीबद्ध करता है जिन्हें पुश भेजेगा और, प्रत्येक वर्कफ़्लो फ़ाइल के लिए यह पढ़ सकता है, चाहे पाइपलाइन चलेगी, चल सकती है या नहीं चलेगी, कारण के साथ।

फिर कार्य को स्थानीय स्तर पर चलाएं और एक बार पुश करें। गुप्त चेतावनी मार्गदर्शिका और जहाज पूर्वावलोकन मार्गदर्शिका दोनों संवादों को विस्तार से कवर करते हैं।

Bitbucket Pipelines और Azure Pipelines के बारे में क्या?

bitbucket-pipelines.yml या azure-pipelines.yml के लिए कोई स्थानीय धावक नहीं है जो act या gitlab-ci-local से मेल खाता हो। एक व्यावहारिक दृष्टिकोण यह है कि अपने निर्माण और परीक्षण आदेशों को स्क्रिप्ट में रखें, उन्हें अपनी होस्ट की गई पाइपलाइन से कॉल करें, और केवल स्थानीय रन के लिए एक छोटी GitHub Actions या GitLab CI फ़ाइल जोड़ें। GitTree उन फ़ाइलों को चिह्नित करता है कोई स्थानीय धावक नहीं और बिल्कुल इसके लिए नमूने पेश करता है।

Next steps: the Run pipelines locally guide documents every button, CI/CD runs covers hosted runs, re-runs and approvals, and the Tools launcher lists GitTree’s other built-in tools.

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

क्या मैं स्थानीय स्तर पर GitHub Actions चला सकता हूँ?

हाँ। act आपकी वर्कफ़्लो फ़ाइलों को पढ़ता है और प्रत्येक कार्य को आपके कंप्यूटर पर Docker कंटेनर में चलाता है। Docker और act इंस्टॉल करें, फिर रिपॉजिटरी फ़ोल्डर से act -j <job> चलाएं।

क्या act को Docker की आवश्यकता है?

हाँ। act प्रत्येक कार्य को Docker कंटेनर में शुरू करता है, इसलिए Docker इंजन जैसे कि Docker Desktop, OrbStack, Colima या Docker Engine स्थापित होना चाहिए और चलना चाहिए।

मैं स्थानीय स्तर पर GitLab CI का परीक्षण कैसे करूँ?

इंस्टॉल करें gitlab-ci-local, प्रारंभ करें Docker, फिर नौकरियों की जांच करने के लिए gitlab-ci-local --list चलाएँ और एक चलाने के लिए gitlab-ci-local <job> चलाएँ। प्रत्येक कार्य को image: दें ताकि वह एक कंटेनर में चले।

मैं रहस्यों को act तक कैसे पहुँचाऊँ?

एक रहस्य के लिए -s NAME=value या उनमें से एक फ़ाइल के लिए --secret-file का प्रयोग करें। उस फ़ाइल को रिपोजिटरी से बाहर .gitignore के साथ रखें।

क्या स्थानीय दौड़ GitHub के धावक के समान है?

बंद करें, समान नहीं. स्थानीय रन कंटेनरों और आपकी अपनी छवियों और रहस्यों का उपयोग करते हैं, इसलिए कुछ चरण अलग तरीके से व्यवहार करते हैं। फीडबैक लूप को छोटा करने के लिए उनका उपयोग करें, और अपने होस्ट को अंतिम कॉल करने दें।

क्या मुझे स्थानीय स्तर पर पाइपलाइन चलाने के लिए GitTree प्रो की आवश्यकता है?

नहीं, स्थानीय पाइपलाइनें GitTree की निःशुल्क योजना का हिस्सा हैं और इसके लिए किसी होस्टिंग खाते की आवश्यकता नहीं है। होस्ट किए गए सीआई/सीडी रन, री-रन और अनुमोदन प्रो का हिस्सा हैं।

सूत्र

अन्य उत्पादों के बारे में दावों की जाँच उनके आधिकारिक पेजों के विरुद्ध 11 नवंबर 2026 पर की गई। कीमतें और सुविधाएँ बदलती हैं; विक्रेताओं के पृष्ठ सत्य का स्रोत हैं।