مسار البناء
تصف هذه الصفحة كيفية استهلاك مستودعات المحتوى لحزمة npm الخاصة بـ @f5-sales-demo/docs-theme لإنتاج مواقع توثيق ذات علامة تجارية كاملة.
البنية المعمارية
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 - سير العمل القابل لإعادة الاستخدام — يستدعي سير عمل مستودع المحتوى المُنشئ:
jobs:docs:uses: f5-sales-demo/docs-control/.github/workflows/github-pages-deploy.yml@main
- تشغيل مُنشئ Docker — تتضمن صورة Docker الخاصة بـ
f5xc-docs-builderالسمةَ مثبَّتةً مسبقًا عبر npm. في وقت البناء تقوم بما يلي:- نسخ
astro.config.mjsوcontent.config.tsمنnode_modules/@f5-sales-demo/docs-theme/إلى جذر مشروع 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، يتم تحليلها من خلال خريطة exports في package.json:
// 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:
- يُدمج تغيير في
mainضمن@f5-sales-demo/docs-theme - تُعاد إعادة بناء صورة Docker للمُنشئ بالحزمة المحدَّثة
- في المرة التالية التي يعمل فيها سير عمل أي مستودع محتوى، يستخدم صورة المُنشئ المحدَّثة
- يلتقط بناء Astro الخطوطَ والأنماطَ والشعارَ والمكوناتِ والإضافاتِ المحدَّثة
- يُنشر موقع مستودع المحتوى بالسمة الجديدة
تحصل مستودعات المحتوى دائمًا على أحدث نسخة من السمة المُضمَّنة في صورة Docker. يضمن ذلك التناسق البصري عبر جميع المواقع، غير أن ذلك يعني أن تغييرات السمة ينبغي اختبارها بعناية قبل دمجها.