Genellikle npm paketi yazarken atladığımız bizi gereksiz yere uğraştıran can sıkıcı bir işlemi otomatik olarak nasıl çözebiliriz bunun üzerine kafa yoralım istiyorum.
Küçük bir örnek proje üzerinden bunu ele alabiliriz.
Projelerimizde ortak olarak kullandığımız bazı fonksiyonlar var diyelim.
Örneğin timeparser, bussiness logicten birazcık karışım mesela proje içinde sıkça kullandığımız bir kategori parsing işlemi olsun.
Bunların hepsi ortak ama bir projede yeniledik diğerlerinde de tek tek gidip ilgili satırı bul değiştir uğraşmaktan bıktık.
Bu fonksiyonların hepsini utils diye bir npm paketinde tutalım diye karar verdik diyelim.
Npm paketini oluşturduk, github' a yükledik. Diğer projeler ile bağlantılarını yaptık. Projelerde her zaman son versiyon üzerinden işlem yapması için package.json klasörünü ayarladık.
Yeni bir talep üzerine ilerde diğer projelere de eklenebilecek bir utils fonksiyonu geldi diyelim.
Yeni bir branch açtık. Geliştirmeyi tamamladık, unit testlerini yazdık. package.json klasörünü güncelledik. Review'dan geçti. Deploy ettik.
Sonrasında bump diye bir yeni commit girdik. package.json klasöründe npm versiyonunu güncelledik. Gönderdik. Sonra bilgisayarımıza döndük ve npm publish diyerek ilgili utils' i npm e gönderdik.
Ben yazarken yoruldum..
Yukarıda README.md klasöründe biraz yazdım ama aşama aşama burada ne yaptığımızı inceleyelim isterim.
Öncelikle daha önce workflow ile uğraşanlar için en üstteki event listen dikkatinizi çekmiştir. genellikle orada branch naming üzerinden işlem yapılır. Bizim ihtiyacımız tagging üzerinden olacağından bu şekilde ilerliyoruz.
Üç adet jobtan oluşan bir workflow umuz var ve aşama aşama;
- job_tag_control
- job_npm_tag_control
- job_publish
Her şeyden önce sağlıklı bir yaşam dileğiyle..
Yorumlar
Yorum Gönder