Photo by Leo Mengoli on Unsplash

CODE QUALITY

Husky ve GitHub Actions ile React Projelerinde Otomasyon Yapılabilir mi ?

Evet yapılabilir. Öncelikle Husky ve GitHub Actions nedir ? Bunları bir açıklayalım.

3 min readMar 21, 2023

--

Husky: Repository’de Git Hook tanımlamalar yapıp ilgili taskların ve komutların çalıştırılmasını sağlayan araçtır. Git Hooks dediğimiz aslında git üzerinde yapılan işlemler sonrasında oluşan eventlere takılmış scriptler olarak düşünebilirsiniz. Git Commit gönderirken veya bunu Remote Repository push’larken bir takım çalışmasını istediğimiz otamatik görevlerin çalıştırılmasını bu scriptler aracılığı ile Husky üzerinden yönetmemize imkan sunar.

  • Code Commit Msg Kontrolünün Yapılması
  • Code Formatter’ların çalıştırılması (Prettier)
  • Code üzerinde Linter (ESLint) çalıştırılması
  • Testlerin çalıştırılması
  • vb..

Husky GitHub özel olmadığı için Git yapısında olan GitHub, GitLab, Bitbucket vb. versiyon kontrol araçlarıyla birlikte de kullanılabilir.

GitHub Actions: GitHub tarafından sağlanan CI/CD (Continuous Integration/Continuous Deployment) aracıdır. GitHub Repo üzerinde bir takım değişiklikler gönderdiğinizde (Push) veya pull request açtığınızda (Open PR) vb işlemlerde Workflow içerisinde Job bir takım otomasyon işlemlerinizi yaptırabilirsiniz.

  • Build çalıştırma
  • Test çalıştırma
  • Deploy Etme
  • ve diğer işlemleri gerçekleştirme şeklinde.

Özetle Husky Git üzerinde Hook’lar üzerinden bir takım işlemleri otomatikleştirken, GitHub Actions esktra bir takım araçlar ile CI/CD süreçlerinizi yönetmenizi sağlar.

Husky Genel Kullanımı

Husky genel olarak Git Versiyon Control sistemi üzerindeki bir takım işlemleri otomatikleştirmeyi sağlar.

Pre-commit hooks: Kodu repoya commit atmadan önce iyi formatlanmış belli bir standarda sahip, kod kalitesine sahip geliştirmelerin repoya girmesini sağlar. Yani kod commitlenmeden önce Code Quality arttırmayı sağlar.

  • Formatter (Prettier Çalıştırılması)
  • Linter Çalıştırılması (Çalıştırılması)
  • Diğer Kalite kontrol araçlarının code üzerinde çalıştırılması

Pre-push Hooks: Kodun Remote Repository gitmeden önce bir takım kontrollerin yapılması ve testlerin çalıştırılması gerçekleştirilir. Çünkü Remote sisteme gittiğinde artık bundan sonraki aşamada ürün her an Production veya diğer deployment ortamlarına gönderilebilir.

Commit message hooks: Commit mesajının bazı formatlara ve standarlara uygun olup olmadığı ve boş bırakılmadığı kontrol edilerek belli standartların yakalanması sağlanır.

Blocking certain types of commits: Belirli türde içerisinde debug veya TODO geçen commitlerin veya tamamlanmamış görevlerin commitlenmesi bloklanır.

Özetle Husky ile otomasyon , kaliteli kod geliştirme pratiklerini zorlayarak hem hataları önler hemde kaliteli kodların sadece commitlenmesine izin verilir.

GitHub Actions Genel Kullanımı

GitHub Repositories üzerinden workflow otomasyonları tanımlamanızı ve bunları farklı eventler (Code Commit, Pull Request, New Issue) üzerinden çalıştırabilmenizi sağlar. Genellikle kullanıldığı alanlar;

  • Continuous integration (CI): Reponuzda her değişiklik gönderdiğinizde kodunuzu otomatik olarak derlemek, test etmek ve dağıtmak için GitHub Actions’ı kullanabiliriz. Bu, hataları erkenden yakalamayı ve kodunuzun her zaman dağıtılabilir durumda olmasını yardımcı olur.
  • Continuous delivery/deployment (CD): Kodunuzun staging veya production gibi çeşitli ortamlara deploy(dağıtımını) otomatikleştirmek için GitHub Actions’ı kullanabiliriz. Bu, dağıtım sürecinizi kolaylaştırmaya ve hata riskini azaltmaya yardımcı olur
  • Code linting and formatting: Kodunuzda otomatik olarak linter(eslint) ve formatter (prettier) çalıştırmak için GitHub Actions’ı kullanabiliriz ve ekibin ortak kodlama standartlarına uyması sağlanabilir.
  • Pull request reviews: Pull request açıldığında bazı testlerin otomatik olarak çalıştırılması , merge öncesi bazı kriterlerin oluşup oluşmadığı kontrol edilir.
  • Notifications: GitHub Actions sonrasında bir takım Slack, Email veya diğer Mesajlaşma ortamlarına bildirimlerin otomatik olarak atılarak ekibin güncellemelerden haberdar olması sağlanır.

Referanslar

Okumaya Devam Et 😃

Bu yazının devamı veya yazı grubundaki diğer yazılara erişmek için bu linke tıklayabilirsiniz.

--

--