محتويات الدورة

Jenkins / الأدلة والمشاركة والسلطة / الدرس 8

Stash والأرشيف وهوية المرشح الدائمة

انقل الملفات بين المجلدات مع اختيار الاحتفاظ والسلامة عمداً.

وقت القراءة التقريبي: 4 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • تمييز النقل داخل التشغيل والحفظ وتخزين الإصدار.
  • شرح قصور البصمة والاسم عن هوية أمان كاملة.

اختر الآلية وفق ضمانها

تحمل مساحة العمل حالة مؤقتة. تحفظ stash ملفات لاستخدامها في موضع آخر من التشغيل، وتحفظ archiveArtifacts مخرجات وفق التخزين والاحتفاظ المضبوطين. قد يحتاج مستودع إصدار ضمان توزيع ودورة أقوى. لحزمة Parcel وتقريرها وذاكرة الاعتماد مستهلكون وآفاق مختلفة. حدد ما يبقى بعد فقد الوكيل ونهاية التشغيل والتعافي اللاحق. لا تجعل الراحة تحدد النسخة الوحيدة للمرشح الموافق عليه. يفصل التصميم بين وصول مرحلة لاحقة لملف الآن وقدرة الفريق على استعادة الإصدار نفسه بعد أسابيع.

صرّح بحد المنتج والمستهلك

يسمي stash مجموعة ملفات مختارة داخل سياق التشغيل المقصود. تستعيد unstash في المجلد الحالي، فيحتاج المستهلك تخصيصاً ومسارات صحيحة. يوضح المقطع النقل دون افتراض عقدة مشتركة، ويحتاج إنتاج dist/parcel.zip مسبقاً ولا ينفذ هنا. يعتمد البقاء مع إعادة مرحلة أو حفظ تشغيل على الخيارات والإضافات؛ لا تعمم نقل التشغيل الواحد إلى تخزين إصدار دائم. لا يثبت الاسم أن الملف الموجود صحيح المصدر، بل يجب أن تربطه بالمرحلة المنتجة والمراجعة المطلوبة قبل الاعتماد عليه للتغليف أو الترقية.

groovy توضيح نقل داخل التشغيل
// Producer workspace already contains the declared package.
stash name: "compiled-parcel", includes: "dist/parcel.zip"
// Later, in an allocated consumer workspace:
unstash "compiled-parcel"

هذه مقاطع خطوات لا Pipeline كامل. لا ينشأ أرشيف ولا يستعاد. تصف التعليقات مجلدين منفصلين يجب أن يوفرهما التعريف الفعلي.

احفظ الملفات الصحيحة بوصول مناسب

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

للنقل كلفة على مستوى التحكم

قد تضغط stash الكبيرة وتُنقل عبر المتحكم بحسب مدير النواتج والإعداد. اجعل بيانات التنسيق صغيرة واستخدم تخزيناً مناسباً للمخرجات الكبيرة. لا توجد عتبة حجم عامة لكل تركيب؛ راجع السلوك الفعلي مع المالك. ليست زيادة ذاكرة المتحكم أول علاج لمجموعة ملفات غير محدودة. افصل تسريع التنزيل عن نواتج الإصدار، ولا تجعل فقد ذاكرة مؤقتة يمحو المرشح الوحيد. قد يبدو نقل ملف محلي بسيطاً في النموذج، بينما يستهلك تكراره بين وكلاء كثيرين سعة ووقتاً ينبغي قياسهما قبل توسيع التوازي.

قارن بايتات معلنة محلياً

يجزئ النموذج الكامل حمولة افتراضية ويقارن نسخة معدلة بالقيمة المتوقعة. يوضح هوية البايتات فقط؛ ليست القيمة المولدة داخل البرنامج منشأ موثقاً. يجب أن يحصل الحقيقي على الهوية المتوقعة من قناة إصدار موثوقة ويفحص المنزّل فعلاً. الاحتفاظ والتطابق والتفويض فحوص مستقلة. قد تكون حزمة محفوظة ومتطابقة لكنها لمراجعة أخرى أو بلا موافقة للهدف. لا يلمس المثال بصمات Jenkins أو تخزينه، فلا يستنتج نجاح stash أو صلاحية الاستعادة من نجاح الحساب المحلي.

python مقارنة بايتات حزمة افتراضية
import hashlib
package = b"parcel-package-lab\n"
expected = hashlib.sha256(package).hexdigest()
print(hashlib.sha256(package).hexdigest() == expected)
print(hashlib.sha256(package + b"changed").hexdigest() == expected)
الناتج المتوقع
True
False

لا يصل إلى بصمة أو stash أو أرشيف أو حزمة ملف أو خدمة. القيمة بيانات تعليمية محلية لا سجل إصدار موثوق مستقل.

الأخطاء الشائعة وإصلاحها

تكون stash نسخة الرجوع الوحيدة.

لماذا يحدث؟
اختلط نقل التشغيل بحفظ الإصدار الدائم.
كيف تصلحه؟
احفظ المرشح الموافق وفق عقد التعافي.
كيف تتجنب تكراره؟
راجع الاحتفاظ مع أفق الرجوع.

يشمل نمط الأرشيف ملفات اعتماد مربوطة.

لماذا يحدث؟
تجاوز الاختيار الأدلة المقصودة.
كيف تصلحه؟
أزل التعرض ونسق الاستجابة مع صاحب الاعتماد.
كيف تتجنب تكراره؟
راجع الأنماط مع نطاق الربط.

توصف البصمة كتحقق توريد كامل.

لماذا يحدث؟
توسع التتبع إلى منشأ وموافقة.
كيف تصلحه؟
تحقق من الهوية والمنشأ بقناة موثوقة مناسبة.
كيف تتجنب تكراره؟
وثق إثبات كل آلية واستثناءاتها.

اختبر فهمك

1. هل تفترض B وجود stash تلقائياً في مجلدها؟

اعرض الحل المشروح

لا. تستعيد المجموعة المعلنة في سياق مناسب وتعرف مساراتها. الاسم سجل نقل لا تخزين مشترك تلقائي ولا ضمان صحة إنتاج الملفات.

2. لماذا تحفظ الحزم أطول من التقارير الوسيطة؟

اعرض الحل المشروح

قد يتطلب التعافي والتوزيع البايتات بعد انتهاء الأدلة الوسيطة. حدد الدورات واحفظ بيانات المصدر والموافقة اللازمة. يجب أن يحترم التنظيف هذه الوعود لا يحذف كل القديم بالتساوي.

أهم ما تعلمته

  • افصل نقل الملفات واحتفاظ الإصدار.
  • تحقق من الهوية والعلاقات خارج الأسماء والتتبع.

المراجع الرسمية