المصدر الأصلي: Automating your Visual Studio extension builds with GitHub Actions
إذا كنت تدير إضافات Visual Studio وما زلت تدير أجزاء كبيرة من الإصدار يدويًا، فهذه إشارتك للتحديث.
سير العمل الموضح في هذا المقال متعمد العملي: ختم الإصدار، بناء، نشر قطع الاختبار إلى معرض، ثم نشر القطع المستقرة إلى Marketplace. لا مراسم منصة ثقيلة، فقط سلوك إصدار حتمي.
ما يعجبني أكثر هو أن الإصدار يُعالج كحالة خط أنابيب، وليس كعنصر قائمة فحص قبل الإصدار. هذا القرار الواحد يلغي عددًا مدهشًا من الأخطاء: بيانات تعريف غير متطابقة، وإصدارات تجميع قديمة، وملاحظات إصدار غير متناسقة.
الفصل بين النشر للمعرض والنشر لـ Marketplace ناضج تشغيليًا أيضًا. الفرق تحتاج مكانًا لبنيات التحقق السريعة التي لا تحمل دلالات الإصدار الرسمي. دفع كل شيء مباشرة إلى Marketplace عالي الاحتكاك ويشجع على اختصارات محفوفة بالمخاطر.
نمط إصدار قوي لفرق الإضافات:
- على طلبات السحب والتزامات main، أنتج قطع VSIX CI وانشر إلى المعرض للمختبرين.
- على الإصدارات الموسومة، انشر الحزم الموقعة والمتحقق منها إلى Marketplace.
- حافظ على معالجة الرموز بأقل قدر ممكن بأسرار مخصصة ونطاقات أقل امتياز.
رأيي الشخصي: أنظمة الإضافات البيئية تتخلف عن أنظمة التطبيقات في انضباط CI لأن الفرق الصغيرة تفترض أن سير العمل اليدوي قابل للإدارة. هي قابلة للإدارة حتى لا تكون كذلك. تصحيح واحد متسرع، حزمة واحدة مكسورة، تحديث بيان واحد منسي، والثقة تنهار.
هذه الإجراءات القابلة لإعادة الاستخدام مفيدة لأنها ترمز منطق الإصدار المتكرر مرة واحدة وتدع الفرق تركز على جودة الإضافة بدلاً من آليات التعبئة.
لا يزال هناك حكم هندسي مطلوب. يجب أن تقيد نشر Marketplace خلف فحوصات الجودة، ويجب أن تتعامل مع بيانات النشر كقطع أثرية مدققة. لكن تعقيد خط الأنابيب الأساسي أصبح الآن منخفضًا بما يكفي لدرجة أن الإصدارات اليدوية فقط هي في الغالب دين تقني.
إذا كنت تقود تطوير الإضافات، وحدد هذا الآن عبر المستودعات. ستحصل على تتبع أفضل، و onboarding أسهل، واختناقات إصدار شخص واحد أقل.
الطرح المقترح:
- ابدأ ببناء زائد نشر معرض لإضافة واحدة.
- قدم ختم الإصدار بعد التحقق من اتفاقيات مصدر البيان الخاص بك.
- أضف نشر Marketplace فقط بعد أن تكون إدارة الأسرار وبوابات الإصدار في مكانها.
هذا ليس عن متعة DevOps. إنه عن الموثوقية للأشخاص الذين يثبتون أدواتك ويتوقعون أن تعمل التحديثات.
أنظمة الإضافات المستقرة تُبنى بنفس الطريقة التي تُبنى بها التطبيقات المستقرة: بأتمتة مملة وقابلة للتكرار تزيل التخمين البشري.
