Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
X tips [X==9] for building a Bulletproof Deplo...
Search
oshai
July 13, 2017
Technology
61
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
X tips [X==9] for building a Bulletproof Deployment Pipeline with Jenkins
JUC 2017 presentation
oshai
July 13, 2017
More Decks by oshai
See All by oshai
Maintaining an Open Source The Good, Bad & Ugly
oshai
0
37
KScript
oshai
0
21
Klean Code with Kotlin
oshai
0
77
JVM languages shootout - Java, Scala & *Kotlin*
oshai
0
63
Koroutinify ; Lessons learned from applying Coroutines in Kotlin Backend ; Deep dive into Coroutines
oshai
1
130
Klean that Code, Boil those Boilerplates
oshai
2
93
Scala vs. Kotlin; Friend or Foe?
oshai
0
170
No forks, One star. Now what?! — How I published my Kotlin Open-Source lib
oshai
0
81
Scala--pack your Future[T]; Kotlin is coming! (Kotlin TLV)
oshai
0
210
Other Decks in Technology
See All in Technology
少人数データチームのDevin活用実践事例
runandy16
2
140
人気商品が「ちゃんと買える」をつくる ー ECの負荷改善
ykagano
1
180
Bet AI Day 2026丨Production-Ready AI Agents — エンタープライズの実務を任せるための設計と運用
layerx
PRO
2
1.6k
Cloudflare製品を活用した AIガバナンス実践入門 / AI governance with Cloudflare Service
delta_tech
1
180
いま好きなこと 最初はそんなに好きじゃなかった #tamagawadev
nishiuma
1
150
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.5k
AI時代におけるプロダクト横断勉強会の設計
zozotech
PRO
0
100
Bill One 開発エンジニア 紹介資料
sansan33
PRO
7
20k
Bet AI Day 2026丨How We Bet AI: AIとともに働く場をつくる
layerx
PRO
0
1.6k
AI × Datadog MCP でコスト削減まで実現した Metric Streams の導入
three_mouth_ago
0
140
AIで開発は速くなったのに、なぜ現場は楽にならないのか 〜あなたの組織のボトルネックを突き止めるワークショップ〜
jacopen
1
110
DGX Sparkを2台使って いろいろ動かす話
sonoda_mj
1
100
Featured
See All Featured
Fireside Chat
paigeccino
42
4k
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
550
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1.1k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
220
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
69
64k
Technical Leadership for Architectural Decision Making
baasie
3
550
GitHub's CSS Performance
jonrohan
1033
470k
Raft: Consensus for Rubyists
vanstee
141
7.7k
Tips & Tricks on How to Get Your First Job In Tech
honzajavorek
1
710
Typedesign – Prime Four
hannesfritz
42
3.2k
[SF Ruby Conf 2025] Rails X
palkan
2
1.3k
How GitHub (no longer) Works
holman
316
150k
Transcript
X tips [X==9] for building a Bulletproof Deployment Pipeline with
Jenkins JULY 13 / TLV, Israel Ohad Shai Software Engineer && Team Leader @ Outbrain
About Me • Developing Software since 2005 • Mainly in
Java and JVM languages • Works on backend systems • Using Jenkins since 2011 • Co-author of codeine open-source tool for Continuous Deployment on large scale
Deployment Pipeline • The driver tool for Continuous-Delivery • Features:
• Complex build flows • Job as a Code (aka JenkinsFile) • Suspend/Resume and survive restarts of Jenkins
Tip #1 You should have done this ages ago •
Define
Tip #2 Start simple
Tip #3 Use Blue Ocean view
Tip #4 Validate artifacts and source code consistency across pipeline
Tip #5 Use commit hook with message regex gitCommitMessage =
sh(returnStdout: true, script: 'git log -1 --pretty=%B').trim() deployToProd = (gitCommitMessage =~ /#d2p/ || params.DEPLOY_TAG == "#d2p") //we also allow '#d2p' when triggering manually
Tip #6 pipeline { agent { docker 'maven:3-alpine' } stages
{ stage('Example Build') { steps { sh 'mvn -B clean verify' } } } } node { stage('Example') { try { sh 'exit 1' } catch (exc) { echo 'Something failed, I should sound the klaxons!' throw exc } } } Declarative Pipeline Scripted Pipeline
Tip #7 Ask for user authorization on sensitive operations timeout(time:5,
unit:'HOURS') { input message: ‘Deploy to production?', ok: 'Deploy!' } http://jenkins508.rssing.com/chan-25443405/all_p18.html
Tip #8 Integrate slack
Tip #9 Make the pipeline fast stage("Testing: phase a") {
parallel 'JUnit': { stage("junit") { sh '...' } }, 'Deploy to simulator': { stage("Deploy to simulator") { sh '...' } } }
Bonus Tip Noise Cancelling Headphones
Questions? Wanna try it? We’re hiring!
Questions? Wanna try it? We’re hiring!
Enjoy piping! https://weeklygravy.com/fashion-grooming/how-old-do-you-have-to-be-before-you-can-smoke-a-pipe/ @OhadShai