Orijinal kaynak: Automating your Visual Studio extension builds with GitHub Actions
Visual Studio uzantılarını koruyor ve yayının önemli kısımlarını hala manuel olarak çalıştırıyorsanız, bu modernize etme sinyalinizdir.
Bu yazıda gösterilen iş akışı kasıtlı olarak pratiktir: sürümü damgala, derle, test yapıtlarını bir galeriye yayınla, ardından kararlı bitleri Marketplace’e yayınla. Ağır platform töreni yok, sadece belirleyici yayın davranışı.
En sevdiğim şey, sürüm oluşturmanın bir yayın öncesi kontrol listesi öğesi değil, pipeline durumu olarak ele alınmasıdır. Bu tek karar, şaşırtıcı sayıda hatayı ortadan kaldırır: uyumsuz meta veriler, güncel olmayan derleme sürümleri ve tutarsız yayın notları.
Galeri yayınlama ve Marketplace yayınlama arasındaki ayrım da operasyonel olarak olgundur. Ekiplerin, resmi yayın anlambilimi taşımayan hızlı doğrulama derlemeleri için bir yere ihtiyacı vardır. Her şeyi doğrudan Marketplace’e göndermek yüksek sürtünmelidir ve riskli kısayolları teşvik eder.
Uzantı ekipleri için güçlü bir yayın modeli:
Pull request’lerde ve main commit’lerinde, CI VSIX yapıtları üretin ve test edenler için galeriye yayınlayın.
Etiketli sürümlerde, imzalı ve doğrulanmış paketleri Marketplace’e yayınlayın.
Token yönetimini, özel sırlar ve en az ayrıcalık kapsamlarıyla minimumda tutun.
Benim görüşümlü düşüncem: uzantı ekosistemleri, uygulama ekosistemlerinin CI disiplininde gerisinde kalır çünkü küçük ekipler manuel iş akışlarının yönetilebilir olduğunu varsayar. Yönetilebilirdirler, ta ki yönetilemez olana kadar. Bir acele yama, bir bozuk paket, bir unutulmuş bildirim güncellemesi ve güven düşer.
Bu yeniden kullanılabilir eylemler, tekrarlanan yayın mantığını bir kez kodladıkları ve ekiplerin paketleme mekaniği yerine uzantı kalitesine odaklanmasına izin verdikleri için kullanışlıdır.
Yine de mühendislik muhakemesi gereklidir. Marketplace yayınını kalite kontrollerinin arkasına koymalı ve yayın bildirimlerine denetlenmiş yayın yapıtları olarak davranmalısınız. Ancak temel pipeline karmaşıklığı artık yalnızca manuel yayınların çoğunlukla teknik borç olması için yeterince düşüktür.
Uzantı geliştirmeyi yönetiyorsanız, bunu şimdi tüm depolarda standartlaştırın. Daha iyi izlenebilirlik, daha kolay ekleme ve daha az tek kişilik yayın darboğazı elde edersiniz.
Önerilen kullanıma sunma:
Bir uzantı için derleme artı galeri yayını ile başlayın.
Bildirim-kaynak kurallarınızı doğruladıktan sonra sürüm damgalamayı tanıtın.
Marketplace yayınını yalnızca gizli yönetimi ve yayın kapıları yerinde olduktan sonra ekleyin.
Bu, DevOps modasını kovalamakla ilgili değil. Araçlarınızı kuran ve güncellemelerin çalışmasını bekleyen insanlar için güvenilirlikle ilgilidir.
Kararlı uzantı ekosistemleri, kararlı uygulamalarla aynı şekilde inşa edilir: insan tahminini ortadan kaldıran sıkıcı, tekrarlanabilir otomasyonla.
