Jenkins, hem CI hem de CD süreçlerindeki operasyonel iş yüklerinin birçoğunu üzerimizden almaktadır. Bu operasyonel işlerin bir kısmı dosya kopyalama, silme, zipleme vs. gibi işlemlerden oluşmaktadır. Jenkins, File Operations eklentisi ile bu işlemleri bizler için son derece kolay hale getirmektedir. File Operations eklentisi, operasyonel dosya işlemlerini Jenkins job’larımıza Build adımı olarak eklememizi sağlamaktadır. Dosya işlemlerini Jenkins job’ımıza yaptıracağımız zaman akla ilk olarak ‘Execute Windows Batch Command’ Build adımını kullanarak belirli Windows komutlarıyla işlemi gerçekleştirmek gelebilir. Bu şekilde de istediğiniz sonuca varabilirsiniz ancak File Operations eklentisi sayesinde ilgili Windows komutlarını aramanıza gerek kalmadan farklı sunucular arasında bile kolaylıkla dosya işlemlerinizi gerçekleştirebilirsiniz.
Ön Gereksinimler
- File Operations Eklentisinin Kurulması
Jenkins -> Manage Jenkins -> Manage Plugins aracılığıyla File Operations eklentisini indirip Jenkins’i yeniden başlattıktan sonra eklentinin kurulumunu tamamlamış oluruz.
Resim-1
- Jenkins Kullanıcısının İlgili Dosya İşlemleri için Yetkilendirilmesi
İlgili Dosya işlemlerini gerçekleştirebilmek için sunucumuzdaki Jenkins servisini çalıştıran kullanıcının bu işlemler için yetkili olduğundan emin olmalıyız.
Kullanımı
Jenkins job’ımızın Build kısmına File Operations adımını aşağıdaki şekilde ekleyebiliriz.
Resim-2
Gerçekleştirmek istediğimiz dosya işlemini listeden seçebiliriz.
Resim-3
Seçilen işleme göre karşımıza çıkan alanlar değişiklik gösterecektir.
Uygulanabilen Dosya İşlemleri
Aşağıdaki dosya işlemlerini, kurduğumuz eklenti sayesinde Build adımlarımızda kullanabiliriz.
Dosya Kopyalama (File Copy)
Include File Pattern: Kopyalama işlemine dâhil edilecek dosyalar belirtilir. (Örneğin hedef/*/final*.xml)
Exclude File Pattern: Kopyalama işlemine dâhil edilmeyecek dosyalar belirtilir. (Örneğin hedef/*/final*.xml)
Target Location: Hedef klasör belirtilir. Varsayılan dizin, ilişkili Jenkins projesinin Workspace’idir.
Resim-4
Dosya Silme (File Delete)
Include File Pattern: Silme işlemine dâhil edilecek dosyalar belirtilir. (Örneğin hedef/*/final*.xml)
Exclude File Pattern: Silme işlemine dâhil edilmeyecek dosyalar belirtilir. (Örneğin hedef/*/final*.xml)
Resim-5
Dosya Oluşturma (File Create)
File Path: Oluşturulacak dosyanın yolu ve adı belirtilir.
Text File Content: Oluşturulacak dosyanın içeriği belirtilir, gerekli yerlerde Environment Variables kullanılabilir.
Resim-6
Dosya İndirme (File Download)
Url: İndirilecek dosyanın Url’i belirtilir.
User Name: İndirme işlemi sırasında kullanıcı adı istenmesi durumları için belirtilir.
Password: İndirme işlemi sırasında şifre istenmesi durumları için belirtilir.
Target Location: İndirilecek dosyanın hedef klasörü belirtilir. Varsayılan dizin Workspace’dir.
Target File Name: İndirilecek dosyanın adı belirtilir.
Resim-7
Dosya Dönüştürme (File Transform)
Include File Pattern: Dönüştürme işlemine dâhil edilecek dosyaların yolu ve adı belirtilir. (hedef/*/final*.xml)
Exclude File Pattern: Dönüştürme işlemine dâhil edilmeyecek dosyaların yolu ve adı belirtilir. (hedef/*/final*.xml)
Resim-8
Dosya UnTar (File UnTar)
Tar File: UnTar işlemi yapılacak Tar dosyasının yolu ve adı belirtilir.
Is GZIP: Dosya’nın GZIP olup olmadığı belirtilir.
Target Location: UnTar işlemi yapılan dosyaların gönderileceği hedef dosya yolu belirtilir.
Resim-9
Dosya UnZip (File UnZip)
Zip File: UnZip işlemi yapılacak Tar dosyasının yolu ve adı belirtilir.
Is GZIP: Dosya’nın GZIP olup olmadığı belirtilir.
Target Location: UnZip işlemi yapılan dosyaların gönderileceği hedef dosya yolu belirtilir.
Resim-10
Klasör Oluşturma (Folder Create)
Folder Path: Oluşturulacak klasörün yolu ve adı belirtilir.
Resim-11
Klasör Kopyalama (Folder Copy)
Source Folder: Kopyalanacak klasör belirtilir.
Destination Folder: Kopyalanan klasör için hedef klasör yolu belirtilir.
Resim-12
Klasör Silme (Folder Delete)
Folder Path: Silinecek klasörün yolu ve adı belirtilir.
Resim-13
Dosya Birleştirme (File Join)
Source File: İçeriği kopyalanacak dosyanın yolu ve adı belirtilir.
Target File: kaynak dosyadan kopyalanan içeriğin ekleneceği dosyanın yolu ve adı belirtilir.
Resim-14
Dosya Özelliklerini Json’a Dönüştürme (File Properties to Json)
Source File: Özelliklerin alınacağı kaynak dosyanın yolu ve adı belirtilir.
Target File: Json verisiyle düzenlenecek ya da oluşturulacak hedef dosyanın yolu ve adı belirtilir.
Resim-15
Dosya Zip’leme (File Zip)
Folder Path: Zip’lenecek klasörün yolu ve adı belirtilir.
Resim-16
Dosya Yeniden Adlandırma (File Rename)
Source File: Yeniden adlandırılacak dosyanın yolu ve adı belirtilir.
Destination File: Yeniden adlandırılacak dosyanın hedef yolu ve yeni adı belirtilir.
Resim-17
Klasör Yeniden Adlandırma (Folder Rename)
Source File: Yeniden adlandırılacak klasörün yolu ve adı belirtilir.
Destination File: Yeniden adlandırılacak klasörün hedef yolu ve yeni adı belirtilir.
Resim-18
Dosya işlemlerini Jenkins job’ımıza Windows komutu çalıştırtarak yaptırmaktansa, projemizin Build kısmına File Operation adımı ekleyerek iş yükünü de ciddi anlamda azaltmış oluruz. Popüler CI/CD aracı Jenkins’in File Operations eklentisi sayesinde dosya işlemlerimizi bu şekilde kolaylıkla gerçekleştirebilmekteyiz.
Bu konuyla ilgili sorularınızı linkini kullanarak ulaşacağınız forum sayfamızda sorabilirsiniz.
Referanslar
https://jenkins.io/doc/pipeline/steps/file-operations/
TAGs: Jenkins, Jenkins File Operations, Jenkins Dosya Operasyonları, Jenkins File Transfer, Jenkins Folder Copy, Jenkins File Copy, Jenkins File Transaction, Jenkins File Transform, Jenkins Klasör işlemleri, Jenkins File Delete, Jenkins’te Dosya Kopyalama, Jenkins Dosya İşlemleri
merhaba hocam, birsey soracaktım size.
ben githubtan projeyı alıyorum applicaton server deploy ediyorum. her aldıgımda yeni bir klasor olustursun ve adı tarıh ile baslasın klasorumun ıstıyorum.bunu nasıl yapabılırım. ?? Yardımcı olur musunuz?
yani bende gecmıs koplarım kalsın ıstıyorum.
bugun aldım diyeyim klasor_ismi= 29/12_version (bu kalacak)
yarın aldım diyeyim 30/12_version diye yeni klasor olusturacak.