labs

Bu lab modernize edildi ama ucтan uca dogrulanmadi. Takilirsaniz bize bildirin.

Jenkins ile Otomasyon

45 dkdockerGitHub'da gor

Lab Çözümü

En hızlı yol, elinizdeki job'ı kopyalamak:

  • http://localhost:8080/view/all/newJob adresini açın
  • job adını hello-world yapın
  • tipini Pipeline seçin
  • en alttaki Copy from kutusuna manual-gate yazı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 HelloWorkd

HelloWorkd. 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 main

Jenkins'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.