Jenkins ile Otomasyon
Lab Çözümü
En hızlı yol, elinizdeki job'ı kopyalamak:
- http://localhost:8080/view/all/newJob adresini açın
- job adını
hello-worldyapın - tipini Pipeline seçin
- en alttaki Copy from kutusuna
manual-gateyazın - OK tıklayın
Job yapılandırmasında Triggers bölümüne inip Poll SCM'i işaretleyin. Bu, Git sunucusunu değişiklik için yoklayacak bir zamanlama kuruyor. Schedule kutusuna şunu yazın:
* * * * *Beş yıldız "her dakika" demek. Jenkins repoyu kontrol ediyor ve son build'den bu yana bir değişiklik olduysa yeni bir build tetikliyor. Yoklama (polling), webhook'a göre israf; ama Git sunucusunun Jenkins'e erişebilmesini gerektirmediği için hâlâ yaygın.
Script Path alanını labs/jenkins/hello-world/Jenkinsfile yapın, kaydedip
build alın. Başarısız oluyor.
Build'i açıp konsol çıktısını okuyun. Test aşaması şu hatayla kırılıyor:
Error: Could not find or load main class HelloWorkdHelloWorkd. Bu bir yazım hatası — sınıfın adı HelloWorld.
labs/jenkins/hello-world/Jenkinsfile içindeki java HelloWorkd satırını
java HelloWorld olacak şekilde düzeltin. Karşılaştırmak isterseniz düzeltilmiş
hâli bu Jenkinsfile'da.
Sonra commit ve push:
git add labs/jenkins/hello-world/Jenkinsfile
git commit -m 'Fix class name typo'
git push gitea mainJenkins'e dönün ve SCM yoklamasının build'i tetiklemesi için bir dakika kadar bekleyin (ya da sabrınız yoksa Build Now tıklayın).
Bu kez geçiyor. Build sayfasında HelloWorld.class dosyasını içeren bir
Archived Artifacts bölümü göreceksiniz — bu, Jenkinsfile'daki
post { success { ... } } bloğundaki archiveArtifacts adımından geliyor.
Arşivleme, workspace temizlendikten sonra build çıktısını saklamanın yoludur.
Alıştırmalara dönün.