Jenkins’de Parametrik Bekleme Süresi Oluşturma

Sevilay Ağıl
3 min readSep 17, 2021

--

Herkese Merhaba 👻 Bu yazımızda jenkinsde paralel koşturduğumuz joblara bekleme süresi ekleme adımlarından bahsedeceğim.

Geçtiğimiz günlerde bir müşterimizin isteği üzerine jobı tetikleyen bir kişinin (örneğin Qa,Analist,PO vb) belirlediği ileriki zamana planlı çalışabilecek bir bekleme sistemi oluşturduk. Şimdi sırayla adımlarını aktarmaya çalışalım.

Öncelikle date parameter ve powershell pluginleri aşağıdaki linklerden indirelim. Daha sonra manage jenkins alanından ekleyerek kurulumları yapalım.

Pluginlerin hpi dosyalarını indirmek için ;

İndirmeleri tamamladıktan sonra manage jenkins alanına gidelim. Plugin managerın advanced tabı altına gidip upload plugin alanından yükleme işlemlerini gerçekleştirelim.

Yükleme işlemlerini tamamlandıktan sonra ekleme yapacağımız jobın configuration alanına gidelim. Buradan add parameter alanına gelip daha önce eklediğimiz date parameterın eklemesini yapalım.

Eklenen date parametresinin formatlamasını aşağıdaki gibi veya istediğiniz şekilde ayarlayabilirsiniz. Burada ben adına time vererek date formatını ve default değerini çalıştırma zamanına ayarladım.

Format tanımlamaları da tamamlandıktan sonra pre-steps alanından powershell ekleyerek scriptlerimizi ekleyelim.

Scriptte ilk olarak kullanıcının çalıştırmak istediği zamanı tanımlayarak bir değişkene atıyoruz.$env=[System.Environment]::GetEnvironmentVariables()
$FUTURE_TIME=$env.TIME
$POWERSHELL_DATE_FUTURE=Get-Date -Format “yyyy-MM-dd HH:mm” -Date $FUTURE_TIME
Write-Host “Date User input: “ $POWERSHELL_DATE_FUTURE
İkinci olarak şuanın zamanını tanımlıyoruz.$POWERSHELL_DATE_NOW=Get-Date -Format “yyyy-MM-dd HH:mm”
Write-Host “Date Now: “ $POWERSHELL_DATE_NOW
Sonrasında last_time adlı bir değişken tanımlayarak iki zamanın farkını bu değişkene atıyoruz.$LAST_TIME=NEW-TIMESPAN -Start $POWERSHELL_DATE_NOW -End $POWERSHELL_DATE_FUTUREBu değişkenle günün, saatin ve dakikanın saniye karşılığını bularak çıkan sonucları toplayıp jobın bekleme(sleep) süresini belirliyoruz.$DAY_IN_SECONDS=$LAST_TIME.Days * 86400
Write-Host “Job “ $DAY_IN_SECONDS “ tarihin sn kaşılığı”
$HOUR_IN_SECONDS=$LAST_TIME.Hours * 3600
Write-Host “Job “ $HOUR_IN_SECONDS “ saatin sn kaşılığı”
$MINUTES_IN_SECONDS=$LAST_TIME.Minutes * 60
Write-Host “Job “ $MINUTES_IN_SECONDS “ dk ”
$TIME=$HOUR_IN_SECONDS + $MINUTES_IN_SECONDS +$DAY_IN_SECONDS
Write-Host “Job “ $TIME “ saniye icinde baslayacak.”
Start-Sleep -Seconds $TIME

Bu sayede jobı çalıştırmak istediğimiz zamanı ekrandan seçerek seçim zamanı geldiğinde jobın tetiklenmesini sağlamış oluyoruz.

Bu yazımda parametrik bir jobı bekleme süresi sonrası nasıl tetiklediğimizi aktarmaya çalıştım. Umarım faydalı olmuştur, keyifli okumalar 💕

Bir sonraki yazılarda görüşmek dileğiyle😻

--

--