Skip to content
Apothem
रनबुक

प्रकाशक खाता सेटअप

@ahmed-g-gad/apothem के लिए npmjs.com विश्वसनीय प्रकाशक और GitHub-पक्ष की रिलीज़ पूर्वापेक्षाएँ कॉन्फ़िगर करें।

यह रनबुक रिलीज़ सतह के प्रकाशक पक्ष को कॉन्फ़िगर करता है। वितरण व्यवस्था में एक ही रजिस्ट्री है: npmjs.com पर स्कोप्ड npm पैकेज @ahmed-g-gad/apothem, जिसे publish-npm.yml वर्कफ़्लो प्रकाशित करता है। यह वर्कफ़्लो v*.*.* टैग पुश पर release.yml के साथ-साथ चलता है और उसकी प्रतीक्षा नहीं करता (tag इनपुट के साथ मैन्युअल डिस्पैच फ़ॉलबैक है)। release एनवायरनमेंट अनुमोदन ही गेट है: GitHub Release, Pages, CI, अनुरूपता और हार्नेस वर्कफ़्लो के हरे होने के बाद ऑपरेटर इसे अनुमोदित करता है। हर अन्य आर्टिफ़ैक्ट स्वयं GitHub Release पृष्ठ पर शिप होता है और उसे किसी बाहरी प्रकाशक खाते की आवश्यकता नहीं होती।

पहचान मानचित्र

सतहखातापैकेज पहचान
GitHubahmed-g-gadahmed-g-gad/apothem
npm (npmjs.com)ahmed-g-gad@ahmed-g-gad/apothem

GitHub स्वामी को भविष्य में बदलने की अनुमति है। जहाँ कोई प्लेटफ़ॉर्म गतिशील रेज़ोल्यूशन की अनुमति देता है, वहाँ वर्कफ़्लो और इंस्टॉलर लॉजिक github.repository, github.repository_owner, या APOTHEM_GITHUB_REPO पढ़ता है। रजिस्ट्री पैकेज पहचानकर्ता स्थिर रहता है, क्योंकि उपयोगकर्ता पैकेज का नाम इंस्टॉल करते हैं, अनुरक्षक के खाते का नाम नहीं।

npm (npmjs.com)

  1. ahmed-g-gad के रूप में https://www.npmjs.com/ में साइन इन करें।

  2. खाते पर दो-कारक प्रमाणीकरण सक्षम करें।

  3. स्कोप्ड पैकेज नाम की पुष्टि करें:

    npm view @ahmed-g-gad/apothem name

    404 का अर्थ है कि स्कोप्ड पैकेज अभी तक प्रकाशित नहीं हुआ है। प्रकाशन से पहले किसी भी अन्य पैकेज प्रतिक्रिया का इस रिपॉज़िटरी और खाते से मेल खाना अनिवार्य है।

  4. यदि UI को पहले पैकेज रिकॉर्ड की आवश्यकता हो तो npm पर पैकेज बनाएँ। नाम स्कोप्ड रखें: @ahmed-g-gad/apothem।

  5. GitHub Actions से @ahmed-g-gad/apothem के लिए Trusted Publishing कॉन्फ़िगर करें:

    • GitHub स्वामी: ahmed-g-gad
    • रिपॉज़िटरी: apothem
    • वर्कफ़्लो फ़ाइल नाम: publish-npm.yml
    • एनवायरनमेंट: release (publish-npm.yml में publish जॉब का environment:; दोनों का मेल खाना अनिवार्य है)
    • अनुमत क्रिया: npm publish।
  6. GitHub में सत्यापित करें कि release एनवायरनमेंट ahmed-g-gad/apothem पर मौजूद है और डिप्लॉयमेंट के लिए मैन्युअल अनुमोदन आवश्यक करता है।

  7. npm सतह को एक सार्वजनिक रजिस्ट्री पैकेज तक सीमित रखें: npmjs.com पर @ahmed-g-gad/apothem।

  8. टैग पुश द्वारा शुरू किए गए release.yml रन का publish GitHub Release जॉब अनुमोदित करें। यह release एनवायरनमेंट के अनुमोदन की प्रतीक्षा करता है, और नीचे की जाँच के लिए वह रन हरा होना आवश्यक है; रिलीज़-चक्र रनबुक, §2.3, बताता है कि यह कैसे किया जाता है। फिर रिलीज़ तत्परता की पुष्टि करें:

    Release readiness
    bash scripts/release/check-release-ready.sh <release-tag>

    जाँच के लिए GH_TOKEN सेट होना चाहिए और dist/release-assets/ में प्रकाशित sbom.cdx.json मौजूद होनी चाहिए। रिलीज़-चक्र रनबुक, §2.4, टोकन स्कोप और डाउनलोड कमांड बताता है।

  9. टैग पुश द्वारा शुरू किए गए Publish npm (publish-npm.yml) रन के लिए release एनवायरनमेंट डिप्लॉयमेंट को अनुमोदित करें। यदि वह रन शुरू नहीं हुआ, तो GitHub Actions टैब से tag=<release-tag> के साथ वर्कफ़्लो डिस्पैच करें।

  10. लाइव पैकेज सत्यापित करें:

    npm verification
    npm view @ahmed-g-gad/apothem version
    npx @ahmed-g-gad/apothem@<version> --version

किसी NPM_TOKEN, उपयोगकर्ता नाम या पासवर्ड सीक्रेट की आवश्यकता नहीं है। वर्कफ़्लो .github/workflows/publish-npm.yml के भीतर पिन किए गए Node संस्करण और npm CLI OIDC फ़्लोर के साथ npm Trusted Publishing (OIDC) के माध्यम से प्रकाशित करता है। यह npmjs.com के विरुद्ध npm publish --provenance --access public चलाता है, इसलिए Sigstore प्रोवेनेंस कथन स्पष्ट रूप से निर्दिष्ट है; npm किसी सार्वजनिक GitHub Actions वर्कफ़्लो से प्रकाशित सार्वजनिक पैकेजों के लिए डिफ़ॉल्ट रूप से भी प्रोवेनेंस उत्सर्जित करता है। PUT के दौरान रजिस्ट्री का 404 यह दर्शाता है कि npm-पक्ष का विश्वसनीय प्रकाशक, पैकेज स्कोप, या खाता प्राधिकरण अभी संरेखित नहीं है; वर्कफ़्लो को फिर से आज़माने से पहले npm पैकेज सेटिंग्स ठीक करें।

एक बार कोई विश्वसनीय प्रकाशन सफल हो जाने पर, टोकन पथ को स्थायी रूप से बंद कर दें: npmjs.com पर पैकेज की Settings → Publishing access में Require two-factor authentication and disallow tokens चुनें, और रिपॉज़िटरी में बचा हुआ कोई भी npm टोकन सीक्रेट हटा दें। वर्कफ़्लो अब कोई टोकन नहीं पढ़ता।

संदर्भ: npm विश्वसनीय प्रकाशक, npm प्रोवेनेंस, और npm स्कोप।

GitHub-पक्ष की रिलीज़ पूर्वापेक्षाएँ

शेष रिलीज़ सतहें GitHub-नेटिव हैं और रिपॉज़िटरी-स्कोप्ड GITHUB_TOKEN से प्रमाणीकृत होती हैं; इसमें कोई बाहरी खाता शामिल नहीं है।

  1. GitHub Release। .github/workflows/release.yml संस्करण टैग पर चलता है और उसे केवल अपनी जॉब-स्थानीय contents: write अनुमति की आवश्यकता होती है। टैग करने से पहले पुष्टि करें कि वर्कफ़्लो फ़ाइल main पर मौजूद है।

  2. Pages कस्टम डोमेन। दस्तावेज़ साइट publish-static-site.yml के माध्यम से कस्टम डोमेन apothem.ahmedgad.com पर डिप्लॉय होती है। डोमेन, DNS और HTTPS प्रवर्तन Pages-सक्षमीकरण रनबुक द्वारा स्थापित किए जाते हैं; सत्यापित करें:

    Pages verification
    gh api repos/ahmed-g-gad/apothem/pages --jq '.cname, .https_enforced'
    curl -sSI https://apothem.ahmedgad.com/ | head -n 1
  3. स्क्रिप्ट इंस्टॉलर। install.sh और install.ps1 Pages साइट से परोसे जाते हैं (https://apothem.ahmedgad.com/install.sh और https://apothem.ahmedgad.com/install.ps1)। वे उसी Pages डिप्लॉयमेंट द्वारा प्रकाशित होते हैं; किसी अलग खाते या टोकन की आवश्यकता नहीं होती।

सत्यापन मैट्रिक्स

सेटअप के बाद, प्रत्येक प्रकाशक सतह अपनी कैनोनिकल जाँच का उत्तर देती है:

सतहजाँच
npmjs.comnpm view @ahmed-g-gad/apothem version रिलीज़ किया गया संस्करण लौटाता है
GitHub Releasegh release view <release-tag> --json assets --jq '.assets[].name' sdist, wheel, SBOM, cosign बंडल, प्रोवेनेंस और प्लेटफ़ॉर्म आर्काइव सूचीबद्ध करता है
Pagescurl -sSI https://apothem.ahmedgad.com/ कस्टम डोमेन पर 200 लौटाता है

On this page