Blog
Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.
Jenkinsfile ile İlk Pipeline: Declarative Syntax, stages, steps, post ve environment
Jenkinsfile, pipeline'ı kodla aynı repository'de tarif eder; Declarative syntax'ta agent, stages ve steps iskeletin kendisi, environment, options, parameters, triggers ve post ise davranışı belirler. Linter çıktısı, tırnak kuralı, ilk build'de shell'e boş gelen parametre, when ile atlanan stage, Snippet Generator ve Replay, Scripted Pipeline ve NotSerializableException ile @NonCPS.
Jenkins ile Angular Pipeline: Node Container, npm Cache, Headless Test ve stash/unstash
Angular 22 uygulamasını node:24 container'ında npm ci, ng lint, Vitest ve ng build ile .NET API'yle paralel build edip stash/unstash ile tek pakette birleştiriyoruz. npm cache volume'ü, Vitest'in JUnit reporter'ı, budget'lar, browser modu için eksik paket hatası, 329 MB'lık node_modules'ü stash etmemek ve Pipeline Graph View'da paralel stage süreleri.
Jenkins'te Parallel, Matrix, input ve Deploy Stage'leri
Aynı paketi önce staging'e, agent'sız bir input onayından sonra production'a sshagent, rsync ve systemctl ile deploy ediyoruz; Lockable Resources eşzamanlılığı, milestone ise sırayı çözer. Health check'li deploy script'i, eski build'in yeniden sonra deploy ettiği gerçek kilit çıktısı, inversePrecedence, failFast, Node 22/24 matrix'i ve IIS için app_offline.htm yapısı.
Eski Jenkins Kurulumlarını Okumak ve Taşımak: Freestyle'dan Pipeline'a, Blue Ocean'dan Pipeline Graph View'a, Java 17'den 21'e
Eski bir Jenkins'i önce envanterle okur, sonra adım adım taşırsın: önce Java 21, sonra Jenkins sürümü, sonra job'lar. 2.580.2'nin Java 17'de açılmayı reddeden gerçek mesajı, controller ve agent için Java takvimi, Freestyle config.xml'inin Jenkinsfile karşılığı, deprecated Blue Ocean yerine Pipeline Graph View, JNLP'den WebSocket'e ve GitHub Actions Importer'a kısa bakış.