DevOps बूटकैंप · पाठ

कस्टम GitHub Actions विकसित करना

GitHub Actions की कार्यक्षमता बढ़ाने के लिए JavaScript या Docker का उपयोग करके अपनी पुनः उपयोग योग्य कस्टम कार्रवाइयाँ बनाना सीखिए।

पाठ 1, कुल 4 में से12 चरण

कस्टम GitHub Actions विकसित करना, CoddyKit पर DevOps बूटकैंप का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह DevOps बूटकैंप सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

GitHub Actions का विस्तार करें

यदि आपको अपने कार्यप्रवाह में ऐसा विशिष्ट कार्य करना हो, जो GitHub Actions पहले से उपलब्ध न कराता हो, तो क्या करेंगे? या शायद आपके पास कोई जटिल तर्क हो, जिसका आप बार-बार उपयोग करना चाहते हों?

कस्टम Actions आपको कार्यप्रवाहों के लिए अपने पुनः उपयोग योग्य उपकरण बनाने देते हैं। ये छोटे प्रोग्राम जैसे होते हैं, जो आपकी आवश्यकताओं के अनुसार कोई विशिष्ट कार्य करते हैं।

अनुकूलन की शक्ति

कस्टम Actions आपके CI/CD कार्यप्रवाहों में कई लाभ लाते हैं:

  • पुनः उपयोग: एक बार लिखें और कई कार्यप्रवाहों तथा रिपॉज़िटरी में उपयोग करें।
  • मानकीकरण: अपने संगठन में सुसंगत प्रक्रियाएँ सुनिश्चित करें।
  • परिरोधन: जटिल तर्क को एक सरल इंटरफ़ेस के पीछे छिपाएँ।
  • एकीकरण: विशिष्ट आंतरिक उपकरणों या API के साथ परस्पर क्रिया करें।

JavaScript या Docker?

GitHub Actions कस्टम Actions बनाने के दो प्रमुख तरीके उपलब्ध कराता है:

  • JavaScript Actions: JavaScript (या TypeScript) में लिखे जाते हैं और सीधे रनर मशीन पर चलते हैं। सरल कार्यों के लिए तेज़ और आसान।
  • Docker कंटेनर Actions: आपके वातावरण और कोड को Docker इमेज में समाहित करते हैं। विशिष्ट निर्भरताओं या भाषाओं की आवश्यकता वाले Actions के लिए आदर्श।

अपने Action की परिभाषा करें

हर कस्टम Action को अपनी मूल निर्देशिका में action.yml फ़ाइल की आवश्यकता होती है। यह YAML फ़ाइल एक मेनिफ़ेस्ट की तरह होती है, जो GitHub Actions को आपके Action के बारे में बताती है:

  • name और description: आपका Action क्या करता है।
  • inputs: आपका Action कौन-सा डेटा स्वीकार करता है।
  • outputs: आपका Action कौन-सा डेटा उत्पन्न करता है।
  • runs: आपका Action कैसे चलता है (जैसे JavaScript फ़ाइल या Docker इमेज)।

सरल JS Action का उदाहरण

आइए, एक बुनियादी JavaScript Action देखते हैं। आपको action.yml और index.js फ़ाइल की आवश्यकता होगी। action.yml Action के मेटाडेटा और निष्पादन वातावरण को परिभाषित करता है।

# action.yml
name: 'Hello World Action'
description: 'Greets a person using a custom message'
inputs:
  who-to-greet:
    description: 'Who to greet'
    required: true
    default: 'World'
outputs:
  greeting-message:
    description: 'The greeting message generated'
runs:
  using: 'node16'
  main: 'index.js'

JavaScript लिखना

index.js फ़ाइल में वास्तविक तर्क होता है। इनपुट प्राप्त करने और आउटपुट निर्धारित करने के लिए हम @actions/core टूलकिट का उपयोग करते हैं।

यह सरल JavaScript स्निपेट चलाकर देखें कि पूर्ण कार्यप्रवाह के बाहर भी इनपुट और आउटपुट की अवधारणा कैसे काम करती है:

// index.js (simplified for demonstration)
const core = require('@actions/core');

try {
  const name = core.getInput('who-to-greet');
  const message = `Hello, ${name}!`;
  console.log(message);
  core.setOutput('greeting-message', message);
} catch (error) {
  core.setFailed(error.message);
}

// A standalone runnable example to demonstrate core logic
function runSimpleGreeting(inputName) {
  const name = inputName || 'World';
  const message = `Hello from runnable JS, ${name}!`;
  return message;
}

console.log(runSimpleGreeting('CoddyKit'));
console.log(runSimpleGreeting());

Docker Action की मूल बातें

अधिक जटिल वातावरणों के लिए Docker कंटेनर Actions शक्तिशाली होते हैं। इनमें एक Dockerfile होता है, जो कंटेनर इमेज को परिभाषित करता है और सभी आवश्यक निर्भरताओं को इसमें शामिल करता है।

आपकी action.yml इस इमेज का संदर्भ देगी और GitHub Actions को इसे बनाने तथा चलाने के बारे में बताएगी।

# action.yml for Docker action
name: 'Docker Hello World'
description: 'Greets a name from within a Docker container'
inputs:
  who-to-greet:
    description: 'Who to greet'
    required: true
    default: 'Docker'
outputs:
  greeting-message:
    description: 'The greeting message from Docker'
runs:
  using: 'docker'
  image: 'Dockerfile'

आपके Action का वातावरण

Dockerfile आधार इमेज निर्दिष्ट करता है, निर्भरताएँ स्थापित करता है और आपके Action का प्रवेश बिंदु परिभाषित करता है। इससे आपका Action एक सुसंगत और नियंत्रित वातावरण में चलता है।

# Dockerfile
FROM alpine:3.16

LABEL "com.github.actions.name"="Docker Hello World"
LABEL "com.github.actions.description"="Greets a name from within a Docker container"
LABEL "com.github.actions.icon"="globe"
LABEL "com.github.actions.color"="blue"

# Copy your script into the container
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh

ENTRYPOINT ["/entrypoint.sh"]

Docker Actions की स्क्रिप्ट लिखना

Docker कंटेनर के भीतर आपकी प्रवेश-बिंदु स्क्रिप्ट (जैसे entrypoint.sh) इनपुट को पर्यावरण चर के रूप में प्राप्त करती है (जिनके नाम में INPUT_ उपसर्ग होता है)। यह $GITHUB_OUTPUT पर्यावरण चर द्वारा निर्दिष्ट फ़ाइल में लिखकर आउटपुट निर्धारित करती है।

#!/bin/sh -l

# entrypoint.sh

echo "Hello from Docker, $INPUT_WHO_TO_GREET!"
GREETING="Hello from Docker, $INPUT_WHO_TO_GREET!"
echo "greeting-message=$GREETING" >> "$GITHUB_OUTPUT"

Actions के लिए सर्वोत्तम अभ्यास

कस्टम Actions विकसित करते समय मज़बूत और आसानी से बनाए रखने योग्य उपकरणों के लिए इन सुझावों पर विचार करें:

  • संस्करण निर्धारण: स्थिरता के लिए अर्थपूर्ण संस्करण निर्धारण (जैसे v1, v2) का उपयोग करें।
  • परीक्षण: अपने Action का स्थानीय रूप से और कार्यप्रवाहों में कठोरता से परीक्षण करें।
  • त्रुटि प्रबंधन: स्पष्ट त्रुटि संदेश और सुचारु विफलता लागू करें।
  • सुरक्षा: इनपुट को स्वच्छ करें और संवेदनशील डेटा उजागर करने से बचें।
  • दस्तावेज़ीकरण: अपने README में उपयोग के स्पष्ट निर्देश दें।

Action प्रकार जाँच

आपको ऐसा कस्टम GitHub Action बनाना है, जिसके लिए एक विशिष्ट Python लाइब्रेरी चाहिए, जो मानक GitHub Actions रनर पर पहले से स्थापित नहीं है। इस स्थिति के लिए सामान्यतः कौन-सा Action प्रकार सबसे उपयुक्त होगा?

कस्टम Actions का सारांश

हमने अपने कस्टम Actions बनाकर GitHub Actions का विस्तार करने का तरीका देखा। आपने दो मुख्य प्रकारों—JavaScript और Docker कंटेनर Actions—तथा action.yml फ़ाइल की महत्वपूर्ण भूमिका के बारे में सीखा। हमने दोनों प्रकारों के लिए इनपुट, आउटपुट और मुख्य तर्क को परिभाषित करने के तरीकों के साथ-साथ विकास के सर्वोत्तम अभ्यासों पर भी चर्चा की।

कस्टम Actions आपके CI/CD कार्यप्रवाहों में पुनः उपयोग और मानकीकरण के लिए शक्तिशाली साधन हैं!

शुरुआत निःशुल्क

एआई शिक्षक के साथ DevOps बूटकैंप सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
142
पाठ
568

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

क्या “कस्टम GitHub Actions विकसित करना” पाठ निःशुल्क है?

हाँ — DevOps बूटकैंप अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “कस्टम GitHub Actions विकसित करना” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। DevOps बूटकैंप पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“कस्टम GitHub Actions विकसित करना” में मैं क्या सीखूँगा?

GitHub Actions की कार्यक्षमता बढ़ाने के लिए JavaScript या Docker का उपयोग करके अपनी पुनः उपयोग योग्य कस्टम कार्रवाइयाँ बनाना सीखिए। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ DevOps बूटकैंप का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या DevOps बूटकैंप शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर DevOps बूटकैंप शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“कस्टम GitHub Actions विकसित करना” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस DevOps बूटकैंप पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर DevOps बूटकैंप पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. कस्टम GitHub Actions विकसित करना
  2. ऑन-प्रिमाइसेस के लिए स्व-होस्टेड रनर
  3. उद्यम प्रणालियों के साथ एकीकरण
  4. Composite action और Marketplace पर publishing
← DevOps बूटकैंप पर वापस जाएँ