GitHub पैकेज और GitHub कंटेनर रजिस्ट्री पर प्रकाशित करें

पूरा किया

यहां, आप GitHub पैकेज पर प्रकाशित करने के लिए वर्कफ़्लो का उपयोग करने की मूल बातें सीखेंगे, और GitHub कंटेनर रजिस्ट्री में Docker छवि बनाने, प्रमाणित करने, टैग करने और पुश करने के लिए आवश्यक कदम सीखेंगे।

GitHub पैकेज पर प्रकाशित करने के लिए वर्कफ़्लो का उपयोग करें

GitHub पैकेज आपको पैकेजों को सुरक्षित रूप से प्रकाशित और उपभोग करने देता है, अपने पैकेज को अपने कोड के साथ संग्रहीत करता है, और अपने पैकेज को निजी तौर पर अपनी टीम के साथ या सार्वजनिक रूप से ओपन-सोर्स समुदाय के साथ साझा करता है। आप अपने पैकेजों को स्वचालित करने के लिए GitHub क्रियाओं का भी उपयोग कर सकते हैं।

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

name: Node.js Package

on:
  release:
    types: [created]

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 12
      - run: npm ci
      - run: npm test

  publish-gpr:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/setup-node@v4
        with:
          node-version: 12
          registry-url: https://npm.pkg.github.com/
      - run: npm ci
      - run: npm publish
        env:
          NODE_AUTH_TOKEN: ${{secrets.GITHUB_TOKEN}}

सबसे पहले, वर्कफ़्लो फ़ाइल .github/workflows निर्देशिका में मौजूद होना चाहिए। जब भी कोई नई रिलीज़ बनाई जाती है, तो किसी नए पैकेज को प्रकाशित करने वाले वर्कफ़्लो को नाम देना सामान्य अभ्यास है, release-package.ymlजैसा कुछ, वर्कफ़्लो फ़ाइल पर नेविगेट किए बिना प्रोजेक्ट सहयोगियों के लिए उसका उद्देश्य समझना आसान बनाता है.

नई रिलीज़ बनाए जाने के बाद पूर्ववर्ती वर्कफ़्लो कुछ चीज़ें करता है:

  1. build नाम का एक कार्य npm ci फ़ाइल से सीधे निर्भरताओं को स्थापित करने के लिए package-lock.json (निरंतर एकीकरण के लिए "ci") चलाता है, साथ ही परियोजना के लिए परीक्षण भी।
  2. एक बार build कार्य सफल हो जाने पर, publish-gpr नाम का कार्य पैकेज प्रकाशित करता है.
  3. वर्कफ़्लो प्रमाणीकरण के लिए पहुँच टोकन का उपयोग करके पैकेज को registry-url: https://npm.pkg.github.com/ पर प्रकाशित करता है.

Docker कंटेनर छवियों को होस्ट और प्रबंधित करने के लिए GitHub कंटेनर रजिस्ट्री का उपयोग करें

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

कंटेनर रजिस्ट्री के साथ, आप यह कर सकते हैं:

  • कंटेनर छवियों को रिपॉजिटरी के बजाय अपने संगठन और उपयोगकर्ता खाते में संग्रहीत करें।
  • कंटेनर छवियों के लिए बारीक अनुमतियां सेट करें।
  • सार्वजनिक कंटेनर छवियों को गुमनाम रूप से एक्सेस करें।

छवि बनाने और प्रमाणित करने और ghcr.ioपर GitHub कंटेनर रजिस्ट्री सेवा में साइन इन करने के बाद, आप इन आदेशों का उपयोग करके छवि के नवीनतम संस्करण को कंटेनर रजिस्ट्री में टैग और पुश कर सकते हैं:

echo $GITHUB_TOKEN | docker login ghcr.io -u USERNAME --password-stdin

docker tag IMAGE_ID ghcr.io/OWNER/IMAGE_NAME:latest

docker push ghcr.io/OWNER/IMAGE_NAME:latest

नोट

GitHub क्रियाएँ वर्कफ़्लो का उपयोग करके प्रमाणित करने के लिए, आप एक GITHUB_TOKEN का उपयोग कर सकते हैं:

  • PACKAGE-REGISTRY.pkg.github.comपर पैकेज रजिस्ट्रियों के लिए।
  • ghcr.io/OWNER/IMAGE-NAMEपर कंटेनर रजिस्ट्री के लिए।