अपने वर्कफ़्लो को परिवेश चर के साथ अनुकूलित करें
इस इकाई में, आप सीखते हैं कि 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 रिपॉजिटरी के लिए परिभाषित परिवेशों के लिए सुरक्षा नियम जोड़ सकते हैं।
अपने भंडार में एक परिवेश जोड़ने के लिए:
सेटिंग्स का चयन करें.
बाएँ फलक पर, परिवेश का चयन करें।
किसी परिवेश को जोड़ने और कॉन्फ़िगर करने और सुरक्षा जोड़ने के लिए नया परिवेश बटन का चयन करें.
परिवेश के बारे में
उत्पादन, स्टेजिंग या विकास जैसे सामान्य परिनियोजन लक्ष्य का वर्णन करने के लिए परिवेशों का उपयोग करें. जब GitHub Actions वर्कफ़्लो किसी परिवेश में परिनियोजित होता है, तो परिवेश भंडार के मुख्य पृष्ठ पर दिखाई देता है। आप किसी कार्य को आगे बढ़ाने के लिए अनुमोदन की आवश्यकता के लिए परिवेशों का उपयोग कर सकते हैं, यह प्रतिबंधित कर सकते हैं कि कौन सी शाखाएँ वर्कफ़्लो ट्रिगर कर सकती हैं, कस्टम परिनियोजन सुरक्षा नियमों का उपयोग करके गेट परिनियोजन कर सकते हैं या रहस्यों तक पहुँच सीमित कर सकते हैं.
वर्कफ़्लो में प्रत्येक कार्य एक परिवेश का संदर्भ दे सकता है. पर्यावरण के लिए आपके द्वारा निर्धारित किसी भी सुरक्षा नियम को पर्यावरण का संदर्भ देने वाली नौकरी से पहले एक धावक को भेजा जाना चाहिए। नौकरी एक धावक को भेजे जाने के बाद ही पर्यावरण के रहस्यों तक पहुंच सकती है।
जब कोई वर्कफ़्लो किसी परिवेश का संदर्भ देता है, तो परिवेश रिपॉजिटरी के परिनियोजन में प्रकट होता है.
पर्यावरण संरक्षण नियम
पर्यावरण परिनियोजन संरक्षण नियमों को पर्यावरण आय का संदर्भ देने वाली नौकरी से पहले पारित करने के लिए विशिष्ट शर्तों की आवश्यकता होती है। आप मैन्युअल अनुमोदन की आवश्यकता के लिए परिनियोजन सुरक्षा नियमों का उपयोग कर सकते हैं, कार्य में विलंब कर सकते हैं या परिवेश को विशिष्ट शाखाओं तक सीमित कर सकते हैं. आप GitHub Apps द्वारा संचालित कस्टम सुरक्षा नियम भी बना और कार्यान्वित कर सकते हैं ताकि GitHub पर कॉन्फ़िगर किए गए परिवेशों को संदर्भित करने वाले परिनियोजन को नियंत्रित करने के लिए भागीदार सिस्टम का उपयोग किया जा सके।
यहां इन सुरक्षा नियमों की व्याख्या दी गई है:
आवश्यक समीक्षक सुरक्षा नियम. परिवेश का संदर्भ देने वाले कार्यप्रवाह कार्यों को अनुमोदित करने के लिए किसी विशिष्ट व्यक्ति या टीम की आवश्यकता के लिए इस नियम का उपयोग करें. आप अधिकतम छह उपयोगकर्ताओं या टीमों को समीक्षकों के रूप में सूचीबद्ध कर सकते हैं. समीक्षकों के पास कम से कम रिपॉजिटरी में पढ़ने की अनुमति होनी चाहिए। केवल एक आवश्यक समीक्षक को कार्य को आगे बढ़ाने के लिए अनुमोदित करना होगा।
आप सुरक्षित परिवेश में परिनियोजन के लिए स्वयं-समीक्षाओं को भी रोक सकते हैं. यदि आप इस सेटिंग को सक्षम करते हैं, तो परिनियोजन प्रारंभ करने वाले उपयोगकर्ता परिनियोजन कार्य को अनुमोदित नहीं कर सकते, भले ही वे आवश्यक समीक्षक हों. स्व-समीक्षाओं को सक्षम करके, यह सुनिश्चित करता है कि एक से अधिक व्यक्ति संरक्षित परिवेशों में परिनियोजन की समीक्षा करें।
आवश्यक समीक्षकों के साथ परिवेश का संदर्भ देने वाली नौकरियों की समीक्षा करने के बारे में अधिक जानकारी के लिए, परिनियोजन की समीक्षा करें देखें.
प्रतीक्षा टाइमर प्रक्षेपण नियम। परिवेश परिनियोजन आय से पहले कार्य प्रारंभ में ट्रिगर होने के बाद किसी कार्य को विशिष्ट समय के लिए विलंबित करने के लिए आप प्रतीक्षा टाइमर सुरक्षा नियम का उपयोग कर सकते हैं. समय (मिनट में) 1 और 43,200 (30 दिन) के बीच का पूर्णांक होना चाहिए. प्रतीक्षा समय को आपके बिल योग्य समय में नहीं गिना जाता है।
शाखा और टैग सुरक्षा नियम। आप परिनियोजन शाखा और टैग सुरक्षा नियमों का उपयोग यह प्रतिबंधित करने के लिए कर सकते हैं कि परिवेश में परिनियोजित करने के लिए किन शाखाओं और टैग का उपयोग किया जाता है. आपके पास परिनियोजन शाखा और परिवेश के लिए टैग सुरक्षा नियमों के लिए कई विकल्प हैं.
- कोई प्रतिबंध इस बात पर कोई प्रतिबंध नहीं लगाता है कि कौन सी शाखा या टैग परिवेश में परिनियोजित हो सकता है.
- संरक्षित शाखाएँ केवल शाखा सुरक्षा नियमों वाली शाखाओं को परिवेश में परिनियोजित करने की अनुमति देती हैं. यदि रिपॉजिटरी में किसी भी शाखा के लिए कोई शाखा सुरक्षा नियम परिभाषित नहीं किए गए हैं, तो सभी शाखाएं तैनात कर सकती हैं। चयनित शाखाएं और टैग सेटिंग सुनिश्चित करती है कि केवल आपके निर्दिष्ट नाम पैटर्न से मेल खाने वाली शाखाएं और टैग ही परिवेश में परिनियोजित हो सकते हैं।
- अगर आप परिनियोजन शाखा या टैग नियम के रूप में निर्दिष्ट
releases/*करते हैं, तो केवल इससेreleases/शुरू होने वाली नाम वाली शाखा या टैग ही परिवेश में परिनियोजित हो सकता है. (वाइल्डकार्ड वर्ण मेल/नहीं खाते। उन शाखाओं या टैग से मेल खाने के लिए जो किसी अन्य एकल स्लैश सेrelease/शुरू होते हैं और उनमें शामिल हैं, उपयोग करेंrelease/*/*। यदि आप एक शाखा नियम के रूप में जोड़तेmainहैं, तो नामितmainएक शाखा भी परिवेश में परिनियोजित कर सकती है।
कस्टम परिनियोजन सुरक्षा नियम. आप भागीदार सेवाओं का उपयोग करने के लिए गेट परिनियोजन के लिए कस्टम सुरक्षा नियम बना सकते हैं. उदाहरण के लिए, आप अवलोकन प्रणाली, परिवर्तन प्रबंधन प्रणाली, कोड गुणवत्ता प्रणाली, या अन्य मैन्युअल कॉन्फ़िगरेशन का उपयोग कर सकते हैं जिनका उपयोग आप तत्परता का आकलन करने और GitHub में तैनाती के लिए स्वचालित अनुमोदन प्रदान करने के लिए करते हैं।
कस्टम परिनियोजन सुरक्षा नियम बनाने और उन्हें रिपॉसिटरी पर स्थापित करने के बाद, आप रिपॉसिटरी में किसी भी परिवेश के लिए कस्टम परिनियोजन सुरक्षा नियम सक्षम कर सकते हैं.
नोट
यदि आपके पास 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