बिल्ड पाइपलाइन
यह पृष्ठ बताता है कि कंटेंट रिपॉज़िटरी @f5-sales-demo/docs-theme npm पैकेज का उपयोग करके पूरी तरह से ब्रांडेड दस्तावेज़ीकरण साइटें कैसे तैयार करती हैं।
आर्किटेक्चर
Section titled “आर्किटेक्चर”┌─────────────────┐│ Content Repo ││ (docs/ folder) │└────────┬────────┘ │ ▼┌───────────────────────────┐│ f5xc-docs-builder ││ (Docker image) ││ ││ npm install ││ @f5-sales-demo/docs-theme ─────┐ ││ ▼ ││ node_modules/ ││ @f5-sales-demo/docs-theme/ ││ ├── config.ts ││ ├── index.ts ││ ├── fonts/ ││ ├── styles/ ││ ├── assets/ ││ └── components/ ││ ││ Astro Build │└─────────────┬─────────────┘ ▼┌───────────────────────────┐│ Astro Build Output ││ (static HTML/CSS) │└─────────────┬─────────────┘ ▼┌───────────────────────────┐│ GitHub Pages │└───────────────────────────┘बिल्ड प्रक्रिया चरण दर चरण
Section titled “बिल्ड प्रक्रिया चरण दर चरण”- कंटेंट रिपो पुश —
mainपर पुश (या मैन्युअल डिस्पैच) GitHub Pages Deploy वर्कफ़्लो को ट्रिगर करता है - पुनः उपयोग योग्य वर्कफ़्लो — कंटेंट रिपो का वर्कफ़्लो बिल्डर को कॉल करता है:
jobs:docs:uses: f5-sales-demo/docs-control/.github/workflows/github-pages-deploy.yml@main
- Docker बिल्डर चलता है —
f5xc-docs-builderDocker इमेज में पहले से ही npm के माध्यम से थीम पूर्व-स्थापित है। बिल्ड समय पर यह:node_modules/@f5-sales-demo/docs-theme/सेastro.config.mjsऔरcontent.config.tsको Astro प्रोजेक्ट रूट में कॉपी करता है- कंटेंट रिपो की
docs/फ़ाइलेंsrc/content/docs/में कॉपी करता है
- Astro बिल्ड — Astro कॉन्फ़िग पढ़ता है जो
createF5xcDocsConfig()को कॉल करता है। फ़ैक्टरी सभी थीम एसेट्स को npm पैकेज स्पेसिफ़ायर्स (जैसे,@f5-sales-demo/docs-theme/styles/custom.css) के माध्यम से रिज़ॉल्व करता है - डिप्लॉय — बना हुआ स्टेटिक साइट GitHub Pages पर डिप्लॉय किया जाता है
कंटेंट रिपो की आवश्यकताएँ
Section titled “कंटेंट रिपो की आवश्यकताएँ”एक कंटेंट रिपॉज़िटरी को केवल चाहिए:
- एक
docs/डायरेक्टरी जिसमें Markdown (.md) या MDX (.mdx) फ़ाइलें हों - एक GitHub Actions वर्कफ़्लो जो बिल्डर को कॉल करे
न्यूनतम वर्कफ़्लो
Section titled “न्यूनतम वर्कफ़्लो”name: GitHub Pages Deployon: push: branches: [main] workflow_dispatch:
permissions: contents: read pages: write id-token: write
concurrency: group: pages cancel-in-progress: true
jobs: docs: uses: f5-sales-demo/docs-control/.github/workflows/github-pages-deploy.yml@mainयह वही वर्कफ़्लो है जो इस थीम रिपॉज़िटरी द्वारा स्वयं आप जो दस्तावेज़ीकरण पढ़ रहे हैं उसे बनाने के लिए उपयोग किया जाता है।
पाथ रिज़ॉल्यूशन
Section titled “पाथ रिज़ॉल्यूशन”थीम के सभी पाथ npm पैकेज स्पेसिफ़ायर्स का उपयोग करते हैं, जो package.json में exports मैप के माध्यम से रिज़ॉल्व होते हैं:
// CSS — resolved from node_modules'@f5-sales-demo/docs-theme/fonts/font-face.css''@f5-sales-demo/docs-theme/styles/custom.css'
// Components — resolved from node_modules'@f5-sales-demo/docs-theme/components/Footer.astro''@f5-sales-demo/docs-theme/components/Banner.astro'
// Assets — resolved from node_modules'@f5-sales-demo/docs-theme/assets/github-avatar.png'बिल्ड वर्कस्पेस में कोई ./theme/ डायरेक्टरी नहीं है। Docker बिल्डर थीम को एक सामान्य npm निर्भरता के रूप में इंस्टॉल करता है और Astro सभी स्पेसिफ़ायर्स को node_modules के माध्यम से रिज़ॉल्व करता है।
परिवर्तन प्रसार
Section titled “परिवर्तन प्रसार”थीम परिवर्तन npm पैकेज अपडेट के माध्यम से प्रचारित होते हैं:
@f5-sales-demo/docs-themeमेंmainपर एक परिवर्तन मर्ज किया जाता है- Docker बिल्डर इमेज को अपडेटेड पैकेज के साथ पुनः बनाया जाता है
- अगली बार जब किसी कंटेंट रिपो का वर्कफ़्लो चलता है, तो वह अपडेटेड बिल्डर इमेज का उपयोग करता है
- Astro बिल्ड अपडेटेड फ़ॉन्ट, स्टाइल, लोगो, घटक और प्लगइन प्राप्त करता है
- कंटेंट रिपो की साइट नई थीम के साथ डिप्लॉय होती है
कंटेंट रिपो को हमेशा Docker इमेज में बंडल की गई नवीनतम थीम मिलती है। यह सभी साइटों में दृश्य स्थिरता सुनिश्चित करता है, लेकिन इसका अर्थ है कि थीम परिवर्तनों को मर्ज करने से पहले सावधानीपूर्वक परीक्षण किया जाना चाहिए।