0Pricing
DevOps Bootcamp · درس

تخزين الاعتماديات مؤقتًا لتسريع عمليات البناء

سرّع مسارات CI بتخزين الاعتماديات وعناصر البناء مؤقتًا باستخدام الإجراء actions/cache والمفاتيح وrestore-keys

تخزين الاعتماديات مؤقتًا لتسريع عمليات البناء درس مجاني في DevOps Bootcamp على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في DevOps Bootcamp، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

تكلفة إعادة التثبيت

يُستهلك معظم وقت التكامل المستمر في تنزيل التبعيات نفسها وتثبيتها في كل تشغيل. يخزّن التخزين المؤقت هذه التبعيات بين عمليات التشغيل، بحيث تعيد عمليات البناء اللاحقة استخدام العمل المنجز، مما يقلل وقت المسار غالبًا بدرجة كبيرة.

إجراء التخزين المؤقت

يوفر GitHub الإجراء actions/cache. حدّد له مسارًا للتخزين المؤقت ومفتاحًا يعرّف إدخال التخزين المؤقت. عند حدوث إصابة، يستعيد المسار؛ وإلا فإنه يحفظه بعد انتهاء المهمة.

- uses: actions/cache@v4
  with:
    path: ~/.npm
    key: npm-${{ hashFiles('package-lock.json') }}

تصميم مفتاح جيد

يجب ألا يتغير المفتاح إلا عندما ينبغي أن يتغير المحتوى المخزّن مؤقتًا. وتُعد تجزئة ملف القفل مثالية؛ فملف القفل الجديد يعني تبعيات جديدة، ولذلك يُنشأ إدخال تخزين مؤقت جديد.

key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}

مفاتيح الاستعادة

يوفر restore-keys بادئات احتياطية. فإذا لم يُعثر على المفتاح المطابق تمامًا، يستعيد الإجراء أحدث تخزين مؤقت يبدأ مفتاحه بإحدى هذه البادئات، مما يوفر بداية دافئة جزئية.

restore-keys: |
  ${{ runner.os }}-npm-

إصابة التخزين المؤقت مقابل عدم إصابته

عند تطابق المفتاح تمامًا، تحصل على إصابة في التخزين المؤقت ويُستعاد المسار. وعند عدم حدوث إصابة، تعمل المهمة بصورة عادية، ثم يُحفظ التخزين المؤقت في النهاية باستخدام المفتاح الأساسي ليكون جاهزًا للمرة التالية.

التخزين المؤقت المدمج في إجراءات الإعداد

تتضمن إجراءات إعداد اللغات تخزينًا مؤقتًا مدمجًا. بالنسبة إلى Node، يتولى setup-node مع cache: npm إدارة تخزين التبعيات مؤقتًا، ولا حاجة إلى خطوة تخزين مؤقت منفصلة.

- uses: actions/setup-node@v4
  with:
    node-version: 20
    cache: npm

ما الذي ينبغي تخزينه مؤقتًا

خزّن أدلة تنزيل مدير الحزم مؤقتًا، وليس node_modules المثبتة متى أمكن، لأن مخازن التنزيل المؤقتة قابلة للنقل، فيما تواصل خطوة التثبيت التحقق من السلامة.

  • Node: ~/.npm
  • Python: مخزن pip المؤقت
  • Java: ~/.m2 أو مخازن Gradle المؤقتة

نطاق التخزين المؤقت وحدوده

يُحدَّد نطاق التخزين المؤقت بفرع، مع الرجوع إلى الفرع الافتراضي، وله حد أقصى للحجم لكل مستودع. وتُزال المخازن المؤقتة غير المستخدمة بمرور الوقت، لذا صمّم مفاتيح تتغير بسلاسة.

تجنب المخازن المؤقتة القديمة

إذا لم يتغير مفتاحك مطلقًا، فقد تقدم تبعيات قديمة. اربط المفتاح دائمًا بتجزئة ملف القفل حتى تؤدي التحديثات إلى إبطال التخزين المؤقت تلقائيًا.

المصفوفة ونظام التشغيل في المفاتيح

في عمليات البناء التي تستخدم مصفوفة عبر أنظمة التشغيل أو الإصدارات، أدرج runner.os والإصدار في المفتاح، حتى يحصل كل متغير على تخزينه المؤقت الصحيح بدلًا من تعارض المتغيرات.

key: ${{ runner.os }}-node20-${{ hashFiles('package-lock.json') }}

قياس الفائدة

قارن مدد المهام قبل التخزين المؤقت وبعده، وراقب مؤشر إصابة التخزين المؤقت في السجلات. ويشير انخفاض معدل الإصابة باستمرار إلى مفتاح يتغير كثيرًا.

اختبار سريع

اختبر مدى فهمك للتخزين المؤقت للتبعيات.

مراجعة

لقد سرّعت التكامل المستمر باستخدام التخزين المؤقت للتبعيات: إجراء actions/cache مع مفتاح يعتمد على تجزئة ملف القفل ومفاتيح استعادة احتياطية، والتخزين المؤقت المدمج في إجراءات الإعداد، واختيار ما ينبغي تخزينه مؤقتًا، وإدراج نظام التشغيل والإصدار في مفاتيح المصفوفة، وتجنب المخازن المؤقتة القديمة بربط المفتاح بملف القفل.

الأسئلة الشائعة

هل درس «تخزين الاعتماديات مؤقتًا لتسريع عمليات البناء» مجاني؟

نعم — نص درس «تخزين الاعتماديات مؤقتًا لتسريع عمليات البناء» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة DevOps Bootcamp، انتقل إلى CoddyKit PRO. تتضمن دورة DevOps Bootcamp 4 دروس في المجموع.

ماذا ستتعلم في «تخزين الاعتماديات مؤقتًا لتسريع عمليات البناء»؟

سرّع مسارات CI بتخزين الاعتماديات وعناصر البناء مؤقتًا باستخدام الإجراء actions/cache والمفاتيح وrestore-keys تتمرن على DevOps Bootcamp مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ DevOps Bootcamp؟

لا تُشترط خبرة سابقة. DevOps Bootcamp على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.

كم من الوقت يستغرق درس «تخزين الاعتماديات مؤقتًا لتسريع عمليات البناء»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس DevOps Bootcamp هذا؟

نعم. كل درس في DevOps Bootcamp يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.

جميع الدروس في هذه الدورة

  1. مشغّلات سير العمل والأحداث
  2. تشغيل الاختبارات باستخدام GitHub Actions
  3. فحص التعليمات البرمجية والتحقق من جودتها
  4. تخزين الاعتماديات مؤقتًا لتسريع عمليات البناء
← العودة إلى DevOps Bootcamp