Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
X tips [X==9] for building a Bulletproof Deplo...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
oshai
July 13, 2017
Technology
72
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
Transcript
16 slides
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
More Decks by oshai
See All by oshai
Maintaining an Open Source The Good, Bad & Ugly
oshai
0
39
KScript
oshai
0
26
Klean Code with Kotlin
oshai
0
84
JVM languages shootout - Java, Scala & *Kotlin*
oshai
0
71
Koroutinify ; Lessons learned from applying Coroutines in Kotlin Backend ; Deep dive into Coroutines
oshai
1
140
Klean that Code, Boil those Boilerplates
oshai
2
100
Scala vs. Kotlin; Friend or Foe?
oshai
0
180
No forks, One star. Now what?! — How I published my Kotlin Open-Source lib
oshai
0
92
Scala--pack your Future[T]; Kotlin is coming! (Kotlin TLV)
oshai
0
210
Other Decks in Technology
See All in Technology
落とし穴にハマってわかった 開発生産性を測るときに気をつけたいこと
munakata
1
180
農夫は秘伝のタレを知らない - NOBODY KNOWS THE HIDDEN SOURCE - Kaggriculture 3rd Place Solution
masspeaks
0
320
Linuxネットワークスタック進化の軌跡: 過去10年の歩みと最新トレンド
orimanabu
4
660
Reticulum, le réseau cypherpunk dont vous avez besoin !
rlifchitz
0
140
Frontier Teams — Amazon は AI で「開発のやり方」をどう変えたのか
kmotohas
0
250
Kiro CLI 入門 (ターミナルと CI で使う) | 目指せ Kiro マスター 03
inariku
PRO
2
150
複数システムが同居した 15 年物の AWS アカウントを解体するための考古学
wa6sn
3
150
AWS基盤改善を支える 私たちの理念と行動指針
kentosuzuki
0
220
Sonnetだけで業務はまわる?
kintotechdev
1
120
マネジメントされる側の仕事は「文句」を言うこと
riyaamemiya
6
3.9k
JAWSコミュニティに 参加して1年経った結果
ssakita
0
150
契約書SaaSにAIエージェントを組み込む
sansantech
PRO
0
130
Featured
See All Featured
Between Models and Reality
mayunak
4
580
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.6k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
790
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.5k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
400
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
Balancing Empowerment & Direction
lara
6
1.4k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
620
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
380
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
48k