अपने वर्कफ़्लो को परिवेश चर के साथ अनुकूलित करें

पूरा किया

इस इकाई में, आप सीखते हैं कि GitHub क्रियाएँ कार्यप्रवाह में चर, संदर्भों और कस्टम स्क्रिप्ट का उपयोग करके पर्यावरण-विशिष्ट व्यवहार को कैसे कॉन्फ़िगर और प्रबंधित किया जाए।

इस प्रक्रिया को लागू करने के लिए, आप निम्न कार्य करने का तरीका जानेंगे:

  • डिफ़ॉल्ट और कस्टम परिवेश चर का उपयोग करें।
  • वर्कफ़्लोज़ में प्रासंगिक जानकारी तक पहुँचें.
  • विभिन्न वर्कफ़्लो क्षेत्रों पर परिवेश चर सेट करें.
  • रन कीवर्ड के साथ कस्टम स्क्रिप्ट का उपयोग करें।
  • परिनियोजन के लिए पर्यावरण सुरक्षा लागू करें।

डिफ़ॉल्ट परिवेश चर और संदर्भ

GitHub क्रियाएँ वर्कफ़्लो के भीतर, आपके उपयोग के लिए कई डिफ़ॉल्ट परिवेश चर उपलब्ध हैं, लेकिन केवल उस धावक के भीतर जो किसी कार्य को निष्पादित कर रहा है। ये डिफ़ॉल्ट चर केस-संवेदी होते हैं, और वे सिस्टम और वर्तमान उपयोगकर्ता के लिए कॉन्फ़िगरेशन मानों को संदर्भित करते हैं। हम अनुशंसा करते हैं कि आप हार्ड-कोडेड फ़ाइल पथ का उपयोग करने के बजाय फ़ाइल सिस्टम को संदर्भित करने के लिए इन डिफ़ॉल्ट परिवेश चर का उपयोग करें। डिफ़ॉल्ट परिवेश चर का उपयोग करने के लिए, परिवेश चर का नाम निर्दिष्ट करें $ उसके बाद का नाम निर्दिष्ट करें.

jobs:
  prod-check:
    steps:
      - run: echo "Deploying to production server on branch $GITHUB_REF"

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

name: CI
on: push
jobs:
  prod-check:
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    steps:
      - run: echo "Deploying to production server on branch $GITHUB_REF"

यह उदाहरण वर्कफ़्लो ट्रिगर करने वाली शाखा की जाँच करने के लिए github.ref संदर्भ का उपयोग कर रहा है. यदि शाखा है main, तो धावक निष्पादित किया जाता है और प्रिंट करता है "शाखा $GITHUB_REF पर उत्पादन सर्वर पर तैनाती। डिफ़ॉल्ट पर्यावरण चर $GITHUB_REF का उपयोग शाखा को संदर्भित करने के लिए धावक में किया जाता है। ध्यान दें कि डिफ़ॉल्ट परिवेश चर सभी अपरकेस हैं जहां संदर्भ चर सभी लोअरकेस हैं।

वर्कफ़्लो में उपलब्ध प्रासंगिक जानकारी

वर्कफ़्लो रन, चर, धावक परिवेश, कार्य और चरणों के बारे में जानकारी तक पहुँचने के लिए संदर्भों का उपयोग करें. प्रत्येक संदर्भ एक ऑब्जेक्ट है जिसमें गुण होते हैं जो अन्य ऑब्जेक्ट या स्ट्रिंग हो सकते हैं। उपलब्ध संदर्भों में , githubenv, vars, job, jobssteps, , runner, secretsstrategymatrixneedsinputs

निम्न तालिका वर्कफ़्लो प्रसंग और विवरण को सूची बद्ध करता है:

संदर्भ वर्णन
github वर्कफ़्लो रन के बारे में जानकारी. अधिक जानकारी के लिए, संदर्भ देखेंgithub
env इसमें वे चर होते हैं जिन्हें आप किसी कार्यप्रवाह, कार्य, या चरण में सेट करते हैं. अधिक जानकारी के लिए, संदर्भ देखेंenv
vars इसमें वे चर होते हैं जिन्हें आप रिपॉजिटरी, संगठन या परिवेश स्तर पर सेट करते हैं. अधिक जानकारी के लिए, संदर्भ देखेंvars
job वर्तमान में चल रही नौकरी के बारे में जानकारी। अधिक जानकारी के लिए, संदर्भ देखेंjob
jobs केवल पुनः उपयोग योग्य कार्यप्रवाहों के लिए, पुनः उपयोग योग्य वर्कफ़्लो से कार्यों के आउटपुट होते हैं. अधिक जानकारी के लिए, संदर्भ देखेंjobs
steps वर्तमान कार्य में चलने वाले चरणों के बारे में जानकारी. अधिक जानकारी के लिए, संदर्भ देखेंsteps
runner उस धावक के बारे में जानकारी जो वर्तमान नौकरी चला रहा है। अधिक जानकारी के लिए, संदर्भ देखेंrunner
secrets इसमें कार्यप्रवाह चलाने के लिए उपलब्ध रहस्यों के नाम और मान होते हैं. अधिक जानकारी के लिए, संदर्भ देखेंsecrets
strategy वर्तमान नौकरी के लिए मैट्रिक्स निष्पादन रणनीति के बारे में जानकारी। अधिक जानकारी के लिए, संदर्भ देखेंstrategy
matrix इसमें वर्कफ़्लो में परिभाषित मैट्रिक्स गुण होते हैं जो वर्तमान कार्य पर लागू होते हैं. अधिक जानकारी के लिए, संदर्भ देखेंmatrix
needs इसमें उन सभी कार्यों के आउटपुट शामिल हैं जिन्हें वर्तमान कार्य की निर्भरता के रूप में परिभाषित किया गया है. अधिक जानकारी के लिए, संदर्भ देखेंneeds
inputs पुनः उपयोग योग्य या मैन्युअल रूप से ट्रिगर किए गए वर्कफ़्लो के इनपुट शामिल हैं. अधिक जानकारी के लिए, संदर्भ देखेंinputs

वर्कफ़्लो रन में अलग-अलग समय पर अलग-अलग संदर्भ उपलब्ध होते हैं। उदाहरण के लिए, आप किसी कार्य में secrets केवल विशिष्ट स्थानों पर संदर्भ का उपयोग कर सकते हैं. इसके अलावा, आप कुछ कार्यों का उपयोग कर सकते हैं hashFiles , जैसे फ़ंक्शन, केवल विशिष्ट स्थानों में।

निम्न तालिका वर्कफ़्लो में प्रत्येक संदर्भ और विशेष फ़ंक्शन के लिए प्रतिबंधों को सूचीबद्ध करती है. सूचीबद्ध संदर्भ केवल संकेतित वर्कफ़्लो कुंजी के लिए उपलब्ध हैं. आप उन्हें कहीं और उपयोग नहीं कर सकते। आप किसी फ़ंक्शन का उपयोग कहीं भी कर सकते हैं जब तक कि वह निम्न तालिका में सूचीबद्ध न हो।

कार्यप्रवाह कुंजी संदर्भ विशेष कार्य
run-name github, , inputsvars कोई नहीं
concurrency github, , inputsvars कोई नहीं
env github, , secretsinputs,vars कोई नहीं
jobs.<job_id>.concurrency github, needs, strategy, matrix, inputs, , vars कोई नहीं
jobs.<job_id>.container github, needs, strategy, matrix, vars, , inputs कोई नहीं
jobs.<job_id>.container.credentials github, needs, strategy, matrix, env, vars, , secrets, , inputs कोई नहीं
jobs.<job_id>.container.env.<env_id> github, needs, strategy, matrixjob, runner, , env, varssecretsinputs कोई नहीं
jobs.<job_id>.container.image github, needs, strategy, matrix, vars, , inputs कोई नहीं
jobs.<job_id>.continue-on-error github, needs, strategy, vars, matrix, , inputs कोई नहीं
jobs.<job_id>.defaults.run github, needs, strategy, matrix, env, , vars, inputs कोई नहीं
jobs.<job_id>.env github, needs, strategy, matrix, vars, , secrets, inputs कोई नहीं
jobs.<job_id>.environment github, needs, strategy, matrix, vars, , inputs कोई नहीं
jobs.<job_id>.environment.url github, needs, strategy, matrixjob, runner, , env, varsstepsinputs कोई नहीं
jobs.<job_id>.if github, , needsvars,inputs always, , canceledsuccess,failure
jobs.<job_id>.name github, needs, strategy, matrix, vars, , inputs कोई नहीं
jobs.<job_id>.outputs.<output_id> github, needs, strategy, matrix, jobrunnerenvvarssecretsstepsinputs कोई नहीं
jobs.<job_id>.runs-on github, needs, strategy, matrix, vars, , inputs कोई नहीं
jobs.<job_id>.secrets.<secrets_id> github, needs, strategy, matrix, secrets, , inputs, vars कोई नहीं
jobs.<job_id>.services github, needs, strategy, matrix, vars, , inputs कोई नहीं
jobs.<job_id>.services.<service_id>.credentials github, needs, strategy, matrix, env, vars, , secrets, , inputs कोई नहीं
jobs.<job_id>.services.<service_id>.env.<env_id> github, needs, strategy, matrixjob, runner, , env, varssecretsinputs कोई नहीं
jobs.<job_id>.steps.continue-on-error github, needs, strategy, matrix, jobrunnerenvvarssecretsstepsinputs हैशफाइल्स
jobs.<job_id>.steps.env github, needs, strategy, matrix, jobrunnerenvvarssecretsstepsinputs hashFiles
jobs.<job_id>.steps.if github, needs, strategy, matrixjob, runner, , env, varsstepsinputs always, , canceled, successfailure,hashFiles
jobs.<job_id>.steps.name github, needs, strategy, matrix, jobrunnerenvvarssecretsstepsinputs hashFiles
jobs.<job_id>.steps.run github, needs, strategy, matrix, jobrunnerenvvarssecretsstepsinputs hashFiles
jobs.<job_id>.steps.timeout-minutes github, needs, strategy, matrix, jobrunnerenvvarssecretsstepsinputs hashFiles
jobs.<job_id>.steps.with github, needs, strategy, matrix, job, runner, , varssecretsstepsinputs hashFiles
jobs.<job_id>.steps.working-directory github, needs, strategy, matrix, job, runner, , varssecretsstepsinputs hashFiles
jobs.<job_id>.strategy github, की जरूरत है, vars, inputs, कोई नहीं
jobs.<job_id>.timeout-minutes github, needs, strategy, matrix, vars, , inputs कोई नहीं
jobs.<job_id>.with.<with_id> github, needs, strategy, matrix, inputs, , vars कोई नहीं
on.workflow_call.inputs.<inputs_id>.default github, , inputsvars कोई नहीं
on.workflow_call.outputs.<output_id>.value github, नौकरियां, vars, inputs कोई नहीं

कस्टम पर्यावरण चर

डिफ़ॉल्ट परिवेश चर का उपयोग करने के समान, आप अपनी वर्कफ़्लो फ़ाइल में कस्टम परिवेश चर का उपयोग कर सकते हैं। एक कस्टम चर बनाने के लिए, आपको env संदर्भ का उपयोग करके इसे अपनी वर्कफ़्लो फ़ाइल में परिभाषित करना होगा। यदि आप एक धावक के अंदर एक पर्यावरण चर के मूल्य का उपयोग करना चाहते हैं, तो आप पर्यावरण चर पढ़ने के लिए रनर ऑपरेटिंग सिस्टम की सामान्य विधि का उपयोग कर सकते हैं।

name: CI
on: push
jobs:
  prod-check:
    if: github.ref == 'refs/heads/main'
    runs-on: ubuntu-latest
    steps:
      - run: echo "Nice work, $First_Name. Deploying to production server on branch $GITHUB_REF"
        env:
          First_Name: Mona

वर्कफ़्लो में कस्टम परिवेश चर सेट करें

आप वर्कफ़्लो फ़ाइल के शीर्ष स्तर पर उपयोग env करके संपूर्ण वर्कफ़्लो तक सीमित परिवेश चर निर्धारित कर सकते हैं. वर्कफ़्लो में किसी कार्य की सामग्री का उपयोग jobs.<job_id>.envकरके कार्यक्षेत्र बनाएँ. आप का उपयोग करके किसी कार्य के भीतर किसी विशिष्ट चरण पर परिवेश चर का दायरा jobs.<job_id>.steps[*].envबना सकते हैं.

यहाँ एक उदाहरण दिया गया है जो वर्कफ़्लो फ़ाइल में सभी तीन परिदृश्य दिखाता है:

name: Greeting on variable day

on:
  workflow_dispatch

env:
  DAY_OF_WEEK: Monday

jobs:
  greeting_job:
    runs-on: ubuntu-latest
    env:
      Greeting: Hello
    steps:
      - name: "Say Hello Mona it's Monday"
        run: echo "$Greeting $First_Name. Today is $DAY_OF_WEEK!"
        env:
          First_Name: Mona

वर्कफ़्लो में डिफ़ॉल्ट संदर्भ का उपयोग करना

GitHub प्लेटफ़ॉर्म डिफ़ॉल्ट पर्यावरण चर सेट करता है। वे किसी वर्कफ़्लो में निर्धारित नहीं हैं, लेकिन आप उपयुक्त संदर्भ में वर्कफ़्लो में डिफ़ॉल्ट परिवेश चर का उपयोग कर सकते हैं. इनमें से अधिकांश चर, के अलावा CI, GITHUB_* या RUNNER_*. बाद के दो प्रकारों को अधिलेखित नहीं किया जा सकता है। साथ ही, इन डिफ़ॉल्ट चर में एक संबंधित और समान रूप से नामित संदर्भ गुण होता है। उदाहरण के लिए, डिफ़ॉल्ट चर की श्रृंखला में RUNNER_* एक मिलान संदर्भ संपत्ति है runner.*

इन विधियों को लागू करके वर्कफ़्लो में डिफ़ॉल्ट चर तक पहुँचने के तरीके का एक उदाहरण यहाँ दिया गया है:

on: workflow_dispatch

jobs:
  if-Windows-else:
    runs-on: macos-latest
    steps:
      - name: condition 1
        if: runner.os == 'Windows'
        run: echo "The operating system on the runner is $env:RUNNER_OS."
      - name: condition 2
        if: runner.os != 'Windows'
        run: echo "The operating system on the runner is not Windows, it's $RUNNER_OS."

अधिक जानकारी के लिए, डिफ़ॉल्ट परिवेश चर देखें.

कस्टम परिवेश चर किसी वर्कफ़्लो पर पास करें

आप कस्टम परिवेश चर को वर्कफ़्लो कार्य के एक चरण से कार्य के अनुवर्ती चरणों तक पास कर सकते हैं. किसी कार्य के एक चरण में मान जनरेट करें और किसी मौजूदा या नए परिवेश चर को मान असाइन करें. इसके बाद, आप GITHUB_ENV पर्यावरण फ़ाइल में चर/मान जोड़ी लिखते हैं। आप कीवर्ड का उपयोग करके कार्यप्रवाह कार्य में परिवेश फ़ाइल का उपयोग किसी क्रिया में या शेल आदेश से कर सकते हैं run .

परिवेश चर बनाने या अद्यतन करने वाले चरण की नए मान तक पहुँच नहीं होती है, लेकिन किसी कार्य में बाद के सभी चरणों पर पहुँच होती है.

यहाँ एक उदाहरण है:

steps:
  - name: Set the value
    id: step_one
    run: |
      echo "action_state=yellow" >> "$GITHUB_ENV"
  - name: Use the value
    id: step_two
    run: |
      printf '%s\n' "$action_state" # This will output 'yellow'

पर्यावरण सुरक्षा जोड़ें

आप अपने GitHub रिपॉजिटरी के लिए परिभाषित परिवेशों के लिए सुरक्षा नियम जोड़ सकते हैं।

अपने भंडार में एक परिवेश जोड़ने के लिए:

  1. सेटिंग्‍स का चयन करें.

    कोड, मुद्दे और विकी जैसे टैब के साथ एक वेब इंटरफ़ेस का मेनू बार; सेटिंग्स हाइलाइट की गई हैं।

  2. बाएँ फलक पर, परिवेश का चयन करें।

    एक्सेस, कोड और स्वचालन, सुरक्षा और एकीकरण के अनुभागों के साथ सामान्य के तहत एक सेटिंग मेनू का स्क्रीनशॉट। परिवेश विकल्प हाइलाइट किया गया है।

  3. किसी परिवेश को जोड़ने और कॉन्फ़िगर करने और सुरक्षा जोड़ने के लिए नया परिवेश बटन का चयन करें.

    GitHub रिपॉजिटरी सेटिंग पेज का स्क्रीनशॉट जिसमें परिवेश सेक्शन दिखाया गया है, जिसमें एक संदेश है जो दर्शाता है कि कोई परिवेश मौजूद नहीं है और एक नया परिवेश बटन हाइलाइट किया गया है.

परिवेश के बारे में

उत्पादन, स्टेजिंग या विकास जैसे सामान्य परिनियोजन लक्ष्य का वर्णन करने के लिए परिवेशों का उपयोग करें. जब GitHub Actions वर्कफ़्लो किसी परिवेश में परिनियोजित होता है, तो परिवेश भंडार के मुख्य पृष्ठ पर दिखाई देता है। आप किसी कार्य को आगे बढ़ाने के लिए अनुमोदन की आवश्यकता के लिए परिवेशों का उपयोग कर सकते हैं, यह प्रतिबंधित कर सकते हैं कि कौन सी शाखाएँ वर्कफ़्लो ट्रिगर कर सकती हैं, कस्टम परिनियोजन सुरक्षा नियमों का उपयोग करके गेट परिनियोजन कर सकते हैं या रहस्यों तक पहुँच सीमित कर सकते हैं.

वर्कफ़्लो में प्रत्येक कार्य एक परिवेश का संदर्भ दे सकता है. पर्यावरण के लिए आपके द्वारा निर्धारित किसी भी सुरक्षा नियम को पर्यावरण का संदर्भ देने वाली नौकरी से पहले एक धावक को भेजा जाना चाहिए। नौकरी एक धावक को भेजे जाने के बाद ही पर्यावरण के रहस्यों तक पहुंच सकती है।

जब कोई वर्कफ़्लो किसी परिवेश का संदर्भ देता है, तो परिवेश रिपॉजिटरी के परिनियोजन में प्रकट होता है.

पर्यावरण संरक्षण नियम

पर्यावरण परिनियोजन संरक्षण नियमों को पर्यावरण आय का संदर्भ देने वाली नौकरी से पहले पारित करने के लिए विशिष्ट शर्तों की आवश्यकता होती है। आप मैन्युअल अनुमोदन की आवश्यकता के लिए परिनियोजन सुरक्षा नियमों का उपयोग कर सकते हैं, कार्य में विलंब कर सकते हैं या परिवेश को विशिष्ट शाखाओं तक सीमित कर सकते हैं. आप GitHub Apps द्वारा संचालित कस्टम सुरक्षा नियम भी बना और कार्यान्वित कर सकते हैं ताकि GitHub पर कॉन्फ़िगर किए गए परिवेशों को संदर्भित करने वाले परिनियोजन को नियंत्रित करने के लिए भागीदार सिस्टम का उपयोग किया जा सके।

यहां इन सुरक्षा नियमों की व्याख्या दी गई है:

  • आवश्यक समीक्षक सुरक्षा नियम. परिवेश का संदर्भ देने वाले कार्यप्रवाह कार्यों को अनुमोदित करने के लिए किसी विशिष्ट व्यक्ति या टीम की आवश्यकता के लिए इस नियम का उपयोग करें. आप अधिकतम छह उपयोगकर्ताओं या टीमों को समीक्षकों के रूप में सूचीबद्ध कर सकते हैं. समीक्षकों के पास कम से कम रिपॉजिटरी में पढ़ने की अनुमति होनी चाहिए। केवल एक आवश्यक समीक्षक को कार्य को आगे बढ़ाने के लिए अनुमोदित करना होगा।

    आप सुरक्षित परिवेश में परिनियोजन के लिए स्वयं-समीक्षाओं को भी रोक सकते हैं. यदि आप इस सेटिंग को सक्षम करते हैं, तो परिनियोजन प्रारंभ करने वाले उपयोगकर्ता परिनियोजन कार्य को अनुमोदित नहीं कर सकते, भले ही वे आवश्यक समीक्षक हों. स्व-समीक्षाओं को सक्षम करके, यह सुनिश्चित करता है कि एक से अधिक व्यक्ति संरक्षित परिवेशों में परिनियोजन की समीक्षा करें।

    आवश्यक समीक्षकों के साथ परिवेश का संदर्भ देने वाली नौकरियों की समीक्षा करने के बारे में अधिक जानकारी के लिए, परिनियोजन की समीक्षा करें देखें.

  • प्रतीक्षा टाइमर प्रक्षेपण नियम। परिवेश परिनियोजन आय से पहले कार्य प्रारंभ में ट्रिगर होने के बाद किसी कार्य को विशिष्ट समय के लिए विलंबित करने के लिए आप प्रतीक्षा टाइमर सुरक्षा नियम का उपयोग कर सकते हैं. समय (मिनट में) 1 और 43,200 (30 दिन) के बीच का पूर्णांक होना चाहिए. प्रतीक्षा समय को आपके बिल योग्य समय में नहीं गिना जाता है।

  • शाखा और टैग सुरक्षा नियम। आप परिनियोजन शाखा और टैग सुरक्षा नियमों का उपयोग यह प्रतिबंधित करने के लिए कर सकते हैं कि परिवेश में परिनियोजित करने के लिए किन शाखाओं और टैग का उपयोग किया जाता है. आपके पास परिनियोजन शाखा और परिवेश के लिए टैग सुरक्षा नियमों के लिए कई विकल्प हैं.

    • कोई प्रतिबंध इस बात पर कोई प्रतिबंध नहीं लगाता है कि कौन सी शाखा या टैग परिवेश में परिनियोजित हो सकता है.
    • संरक्षित शाखाएँ केवल शाखा सुरक्षा नियमों वाली शाखाओं को परिवेश में परिनियोजित करने की अनुमति देती हैं. यदि रिपॉजिटरी में किसी भी शाखा के लिए कोई शाखा सुरक्षा नियम परिभाषित नहीं किए गए हैं, तो सभी शाखाएं तैनात कर सकती हैं। चयनित शाखाएं और टैग सेटिंग सुनिश्चित करती है कि केवल आपके निर्दिष्ट नाम पैटर्न से मेल खाने वाली शाखाएं और टैग ही परिवेश में परिनियोजित हो सकते हैं।
    • अगर आप परिनियोजन शाखा या टैग नियम के रूप में निर्दिष्ट releases/* करते हैं, तो केवल इससे releases/ शुरू होने वाली नाम वाली शाखा या टैग ही परिवेश में परिनियोजित हो सकता है. (वाइल्डकार्ड वर्ण मेल /नहीं खाते। उन शाखाओं या टैग से मेल खाने के लिए जो किसी अन्य एकल स्लैश से release/ शुरू होते हैं और उनमें शामिल हैं, उपयोग करें release/*/*। यदि आप एक शाखा नियम के रूप में जोड़ते main हैं, तो नामित main एक शाखा भी परिवेश में परिनियोजित कर सकती है।
  • कस्टम परिनियोजन सुरक्षा नियम. आप भागीदार सेवाओं का उपयोग करने के लिए गेट परिनियोजन के लिए कस्टम सुरक्षा नियम बना सकते हैं. उदाहरण के लिए, आप अवलोकन प्रणाली, परिवर्तन प्रबंधन प्रणाली, कोड गुणवत्ता प्रणाली, या अन्य मैन्युअल कॉन्फ़िगरेशन का उपयोग कर सकते हैं जिनका उपयोग आप तत्परता का आकलन करने और GitHub में तैनाती के लिए स्वचालित अनुमोदन प्रदान करने के लिए करते हैं।

    कस्टम परिनियोजन सुरक्षा नियम बनाने और उन्हें रिपॉसिटरी पर स्थापित करने के बाद, आप रिपॉसिटरी में किसी भी परिवेश के लिए कस्टम परिनियोजन सुरक्षा नियम सक्षम कर सकते हैं.

    स्क्रीनशॉट जो समीक्षकों के लिए विकल्पों, प्रतीक्षा टाइमर, कस्टम नियमों और शाखा प्रतिबंधों के साथ Environment1 कॉन्फ़िगर करने के लिए सेटिंग पृष्ठ दिखाता है.

नोट

यदि आपके पास GitHub Free, GitHub Pro, या GitHub टीम योजना है, तो पर्यावरण परिनियोजन प्रक्षेपण नियम केवल सार्वजनिक रिपॉजिटरी के लिए उपलब्ध हैं; शाखा और टैग सुरक्षा नियमों को छोड़कर। जिन उपयोगकर्ताओं के पास GitHub Pro या GitHub टीम प्लान हैं, उनके लिए निजी रिपॉजिटरी के लिए शाखा और टैग सुरक्षा नियम भी उपलब्ध हैं।

आपके वर्कफ़्लो में स्क्रिप्ट

पिछले वर्कफ़्लो स्निपेट उदाहरणों में, run कीवर्ड का उपयोग पाठ की स्ट्रिंग मुद्रित करने के लिए किया जाता है. क्योंकि run कीवर्ड धावक पर एक कमांड निष्पादित करने के लिए कार्य बताता है, आप क्रियाओं या स्क्रिप्ट को चलाने के लिए run कीवर्ड का उपयोग करते हैं।

jobs:
  example-job:
    steps:
      - run: npm install -g bats

इस उदाहरण में, आप कीवर्ड का उपयोग कर सॉफ़्टवेयर परीक्षण पैकेज को bats स्थापित करने के लिए npm का run उपयोग करें। आप स्क्रिप्ट को कार्रवाई के रूप में भी चला सकते हैं. आप स्क्रिप्ट को अपने भंडार में स्टोर कर सकते हैं, अक्सर .github/scripts/ निर्देशिका में किया जाता है, और फिर run कीवर्ड का उपयोग करके पथ और शेल प्रकार की आपूर्ति करता है।

jobs:
  example-job:
    steps:
      - name: Run build script
        run: ./.github/scripts/build.sh
        shell: bash