2 Nisan 2022

Jenkins Sunucuda Deployment Sürecini İptal Etmek ve Konsol Üzerinden Groovy Script Çalıştırmak

Jenkins Sunucuda Deployment Sürecini İptal Etmek ve Konsol Üzerinden Groovy Script Çalıştırmak

Jenkins sunucuda Pipeline üzerinde başlamış bir Build yani Deployment işlemini tamamlanmasını beklemeden nasıl iptal edebileceğinizi bir Groovy Script çalıştırarak sizlere göstereceğim. Bazı durumlarda yanlışlıkla Build işlemi başlatmış olabilirsiniz veya Pipeline aşamaları olan Test, Deploy, Unit Test, Otomasyon veya Güvenlik (Fortify Application Security) adımlarından birine takılı kalıp kuyruğa alınan diğer Build işlemlerini tıkayan bir Deployment işlemi başınıza gelebilir. Bu tip durumlarda genelde süreci iptal etmek (Kill) istersiniz. Panel üzerinden iptal butonuna bazen basınca süreç durmayabilir. Bu tip durumlarda çözümü Groovy Script çalıştırarak çözüyoruz. Jenkins'de Pipeline süreçleri, Branch yapısı olsun birçok geliştirmeyi Groovy yazılım dili ile yapabilirsiniz. Groovy temelde Java platformu (JVM) üzerinde çalışan bir programlama dilidir. Groovy programlama dilinin en önemli özelliği ise Java üzerinde çalışan dinamik diller arasında en yüksek ve kolay entegrasyona sahip dil olmasıdır. Groovy içinden herhangi bir Java nesnesini bir Groovy nesnesi gibi çağırabilirsiniz. Aynı şekilde Java içinden de Groovy nesnelerini, diğer Java nesneleriyle aynı şekilde çağırırsınız.

Jenkins üzerinden Groovy Script çalıştırmak için Jenkins'i Yönet (Manage Jenkins) kısmından Script Konsolu (Script Console) sekmesine tıklamanız yeterli olacaktır. Çıkan ekranda Groovy Script yazıp Çalıştır (Run) demeniz yeterlidir. Yazacağınız Groovy kodunun başına jenkins ve hudson Import paket isimlerini eklemeniz gerekmez bunları zaten konsol otomatik algılamaktadır. "All the classes from all the plugins are visible. jenkins.*, jenkins.model.*, hudson.*, and hudson.model.* are pre-imported" Daha önce tetiklenmiş bir Build sürecini aşağıdaki örnek Groovy kodu ile iptal etmeniz mümkündür.

def build = Jenkins.instance.getItemByFullName("test/PaketName").getBuildByNumber(115)
build.doStop()
build.doKill()

Bu kodu çalıştırdığınızda, Pipeline'da kodu manuel elle yapılandırma listesinden çarpıya basınca aborted olarak gözükürken bunda gözükmez. Tüm Stage View kısımlarını ekrandan logları ile birlikte siler ve süreci öldürür. Öldürmek istediğiniz Build sürecinin öncelikle Yapılandırma Listesi üzerindeki ID numarasını almanız ve getBuildByNumber parametresi içerisine yazmanız gereklidir. Sonra Build sürecinin detayına tıklayıp Full Project Name kısmında yazan tam paket adını yazmanız gerekir. Bu kısım önemli olup Full proje adını almanız lazım sadece paket adını yazmanız yeterli olmaz Build olduğu Stage yani ortamı da yazmanız gerekebilir. Bu bilgiyi de getItemByFullName parametresi içerisine yazıyoruz. Sonrasında kodu Run ettiğimizde sorunsuz şekilde Build işlemi Kill olacaktır.

Jenkins.instance.queue.clear()

Son olarak Jenkins üzerindeki tüm Build süreçlerini iptal etmek içinse yukarıdaki kodu çalıştırmanız yeterli olacaktır. Bu işlemi dikkatli yapmanızı öneririm çünkü iptal edilmesini istemediğiniz başka süreçlerde olabilir. Yapılandırma listesi üzerinde devam eden Build süreçlerini inceleyip buna göre işlem yapmanızı öneririm.

Burak AVCI

Hiç yorum yok:

Yorum Gönder

Makaleye Yorum ve Sorularınızı Bırakabilirsiniz.