SlideShare a Scribd company logo
1 of 50
Download to read offline
CONTINUOUS DELIVERY
WITH GRADLE
BOB PAULIN / @BOBPAULIN / BOB@BOBPAULIN.COM
ABOUT ME
Independent Consultant
Business Enablement
Web Centric Platforms
Automation
I LOVE DELIVERING SOFTWARE
I WANT TO DELIVER SOFTWARE ALL THE TIME!
MULTIPLE TIMES A DAY!
WAIT PEOPLE ACTUALLY DO THAT?
SEVERAL MAJOR ECOMMERCE SHOPS
ETSY.COM DEPLOYS ABOUT 30 TIMES EACH DAY
MY PERSONAL RECORD 5
BENEFITS OF CONTINUOUS DELIVERY
Shorten the time it takes from conception to customer impact
Experiment more frequently
Do more concurrently
Delivery becomes a non-event
DELIVERING SOFTWARE CAN BE PAINFUL!
Needs to be Assembled
Needs to be Deployed
Needs to be Tested
How can I make sure I don't break existing stuff?
What happens if I do break something?
What about dependent systems?
How do I know what changed?
How do I control what goes in and what does not?
ALL THAT'S GOING TO TAKE ME AT LEAST 2
WEEKS!
RELEASE MANAGEMENT 101
Consistent Build Process
Functional/Regression Testing
Versioning
Source Code Management
Deployment Process
Rollback
RELEASE MANAGEMENT 501
Config Switches
Feature Branching
Modular Deployment
Throttling
Auto Provisioning
Auto-Scaling
TOOLS TO THE RESCUE!
BUILD TOOLS
Dependency Management
Packaging
Plugin Architecture
Lifecycle Management
Versioning
A RECIPE FOR CONTINUOUS DELIVERY
Gradle
Artifactory
Git
GRADLE
Build Tool
Groovy
Combines some of the best features of Ant and Maven
Conventions
Plugins
ARTIFACTORY
Binary Repository
JEE Web App
Supports Maven and Ivy
Open Source and Pro Licensed
GIT
Source Control Management
Distributed
Tagging/Branch/Merge
HOW DOES ALL THIS STUFF WORK
TOGETHER?
STEPS
SYSTEM INTERACTION
A BRIEF ASIDE ON SEMANTIC VERSIONING
LETS LOOK AT SOME CODE!
GRADLE PLUGINS
War Plugin
Cargo Plugin
Maven Plugin
GRADLE CONFIGURATIONS
CONFIG + CODE!
c ro {
ag
cn an rd =' o ct x
ot i eI
tm a7 '
pr = It gr pr en ( eP oe t( rj c .n + "d po Pr ")
ot
ne e. a sI tg tr p ry po et ev
.e l yo t)
dp oa l {
el y be
cn et =a tf c I
ot x
ri at d
fl = po et fl (r i at on od ah
ie
rj c. i ea tf cD w la Pt )
}
rm t {
eo e
hs nm = gt rp ry p oe te v+ "d p oH sn m"
ot a e
eP o et (r jc . n
. el yo t ae )
ue nm = gt rp ry p oe te v+ "d p oU eN m"
sr a e
eP o et (r jc . n
. el ys r ae )
ps wr = gt rp ry p oe te v+ "d p oP sw r"
as o d
eP o et (r jc . n
. el ya s od )
}
}
DON'T EMBED ENVIRONMENT DATA INTO THE
BUILD SCRIPT!
CREATE A USER PROPERTIES FILE INSTEAD.
DEPENDENCY MANAGEMENT

FOR YOUR APPLICATION AND FOR YOUR BUILD
b id ci t{
u ls r p
rp st re {
eo i oi s
mv n{ ul "t p :/ s. oa y eo gc ne tg o p/ ul c}
ae
r h ts /o s sn tp .r /o t n/ ru sp b i"
mv ne ta (
ae C nr l)
}
dp ne ce {
ee d ni s
ca sa h "a a .e ve :e v e- p: ."
ls p t
j vx sr l ts rl ta i2 5 ,
"r .r de ai p ui sg al - ag -l gn 06 1 ,
og g al .p .l gn : rd ec ro pu i :. ."
"r .j br tr g al -i :. . "
og a oe sa :r de g t0 63
}
}
d pn ec e {
e ed n is
df cr oe so = '. .'
e a gV ri n
13 3
df sr nV ri n = '. . .E ES '
e p ig es o
3 23 RL A E
df wo Je so = '. .'
e r 4V ri n
16 3
df ap la ne e so = ' .'
e o Al ic Vr in
10
cr o " r. oe as cr o cr oc r- br a :c ro es o " " r. o ea sc ro
ag o gc dh u .a g: ag - oe ue jr $a g Vr in , og cd hu . ag
cm ie "r .p ig rm w r: pi ga p $ p ig es o" " r. pi g rm wr :p
op l og sr n fa eo ks r n- o: sr nV r in, og sr nf ae o ks
" r. p ig rm wr :p i gc ne t$ pi g es o" "r . pi gr mw r: p ig
og sr nf ae o ks rn -o t x: sr nV ri n,o gs rn fa e ok sr n" r. p ig rm wr :p i ge pe so :s r nV ri n, " r. pi gr mw r :p
og sr nf ae o ks rn -x r si n$ pi ge s o" o gs rn f ae ok sr
" r. p ig rm wr :p i gw b$ pi ge s o" " r. pi gr mw r :p ig wb
og sr nf ae o ks rn -e : sr nV ri n, o gs r nf ae ok sr n -e
" aa . ev e: sl 12 , og sf js fj a i1 56," r .l 4: c- vr s fj
jv xs rl tj t :. "" r. l 4: l4 -p :. . " og sf jj l oe -l 4:
" r. o ea sj cs nj c sn mp e- s: . .""o al a c: oa la c: a pl
og cd hu .a k o: ak o- a pr al 19 3,a pl in ea pl i ne $o Al
cm ie "r .p ig rm w r. aa sr n- a am no b1 0 4R LA E )
op l (og sr n fa eo kd t :p ig dt -o g d: .. .E ES " {
ec ue md l:
xl d o ue
" l4 -p "
s fj a i
}
cm ie "r .p ig rm w r: pi gc r: s rn Vr in )
op l (og sr n fa eo ks r n- oe $p ig e so "{
ec ue md l:
xl d o ue
' om n- og n '
c mo s lg ig
}
cm ie ( r .s cw oj w oj cr :w oJ e so "
op l "o id . r4 :r 4- o e$ r4 Vr in )
{
ec ue md l:
xl d o ue
" l4 -p "
s fj a i
}

cm ie "o id .r 4: r 4- xe so s $ r 4V ri n)
op l ( r. sc w oj wo je t ni n: wo Je s o"
{
ec ue md l:
xl d o ue
" l4 -p "
s fj a i
ec ue md l:
xl d o ue
" l4 -o 41 "
s fj l gj 2
}
po ie Cm ie "a a. l e- p: ." " aa .e v e. s: s- p: . " " a a.
rv d do pl j vx e: la i 10 , j v xs rl tj p jp ai 20 , jv xs
ts Cm ie "u i: ui : .. " "r .p ig rm w r: pi gt s: s rn Vr in
et o pl jn t jn t3 81 , og sr n fa eo ks r n- et $p ig e so
}
GRADLE TASKS
t s u d tU la eP md p ns n 'e Ba cN m' < {
a k pa ep od d o( ee dO : gt rn h ae ) <
d fp m es o = p oe tv ri n
e oV ri n
r jc . es o
i ( p o et gt rd e) g ta kr p ( .a T s( :e es " )
f! rj c. eG a l( .e Ts G ah )h sa k " r la e )
pm es o + " $ rn ha e
oV r in = . b ac N m"
u la A ci e. eo io i sm vn el yr p mv ri n= p me so
po dr hv sr p st re .a e Dp oe .o .e s o
o Vr in
}
t s t g tp :G ta ){
a k a( ye i T g
tg ae =v ri n
aN m
es o
ms ae = " ee s o $ v ri n"
es g
R la e f {e so }
}
t s p s TR mt (y e Gt uh {
a k uh oe oe t p: i Ps )
ps Al =t u
uh l
re
}
t s q R la e{
a k ae es
dp ns nt s, w r g t rn ha e ud tU la e Pm u la Ac ie ,u d tV r
ee d O et a , eB ac N m, pa e po dd o, p od rh v s pa ee
}
GRADLE TASK DEPENDENCIES
/ Ts D pn ec e
/ ak e ed ni s
w rm sR nf e ts
a .u t uA tr e t
t gm sR nf e wr
a .u t uA tr a
u dt Ul ae Pm m sR nf e tg
p ae p od do .u tu A tr a
u la Ac ie .u t uA tr ud t Ul ae Pm
p od r hv sm sR nf e p ae po dd o
u dt Vr in ub r ms Rn fe u la Ac i e
p ae e so Nm e. ut u At r po dr hv s
a de so Ud t . u tu At ru d tV ri nu br
d Vr i np ae ms Rn f e pa ee so N me
c mi Vr in pa e ms Rn fe a de so U dt
o mt e so Ud t. ut u At r dV ri np ae
p sT Rm t . ut u At rc mi V ri np ae
u ho e oe ms Rn fe om te so Ud t
DEMO TIME!

A SIMPLE BOOK REVIEW WEBSITE
ADDING BOOK RATINGS SCORE TO THE SITE
CREATING A FEATURE BRANCH
WRITE THE CODE... WE ALREADY KNOW HOW
TO DO THIS!
BUILD PROCESS
When you say you're code is done the fun is just beginning...
TESTING PROCESS
Are you sure you're done?
RELEASE PROCESS
Yup we're done!
DEPLOYMENT PROCESS
Oh yeah now we're done
AN ASIDE
Why is deploy separate from release?
DEPLOYMENT PROCESS: TAKE 2
Oh ****! What have we done?!?!
KNOW YOUR ROLLBACK STRATEGY BEFORE
EVERY DEPLOYMENT
ENTERPRISE ARCHITECTURE
SOME PARTING THOUGHTS ON GRADLE AND
CONTINOUS DELIVERY
REFERENCES
CODE AND PRESENTATION

GRADLE
GRADLE RELEASE PLUGIN
GIT
ARTIFACTORY
CARGO
SEMANTIC VERSIONING
ETSY'S MIKE BRITTAIN "CONTINUOUS DELIVERY: THE DIRTY DETAILS"
BOB PAULIN
BOB PAULIN / @BOBPAULIN / BOB@BOBPAULIN.COM

More Related Content

What's hot

WordPress in 30 minutes
WordPress in 30 minutesWordPress in 30 minutes
WordPress in 30 minutesOwen Winkler
 
Piotr Szotkowski about "Ruby smells"
Piotr Szotkowski about "Ruby smells"Piotr Szotkowski about "Ruby smells"
Piotr Szotkowski about "Ruby smells"Pivorak MeetUp
 
Breathe life into your designer!
Breathe life into your designer!Breathe life into your designer!
Breathe life into your designer!Cédric Brun
 
No Flex Zone: Empathy Driven Development
No Flex Zone: Empathy Driven DevelopmentNo Flex Zone: Empathy Driven Development
No Flex Zone: Empathy Driven DevelopmentDuretti H.
 
Profile Serialization IIPC GA 2015
Profile Serialization IIPC GA 2015Profile Serialization IIPC GA 2015
Profile Serialization IIPC GA 2015Sawood Alam
 
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33Guy Boulianne
 
Certificates and Credentials new
Certificates and Credentials newCertificates and Credentials new
Certificates and Credentials newsidharthbiswas9185
 
Certificates
CertificatesCertificates
CertificatesJeff CHen
 
Hsc bangla 2nd only for dinajpur
Hsc bangla 2nd only for dinajpurHsc bangla 2nd only for dinajpur
Hsc bangla 2nd only for dinajpurrakimsiddique
 
PostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit TestPostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit TestAndrea Adami
 

What's hot (19)

Winload.efi.mui
Winload.efi.muiWinload.efi.mui
Winload.efi.mui
 
WordPress in 30 minutes
WordPress in 30 minutesWordPress in 30 minutes
WordPress in 30 minutes
 
Piotr Szotkowski about "Ruby smells"
Piotr Szotkowski about "Ruby smells"Piotr Szotkowski about "Ruby smells"
Piotr Szotkowski about "Ruby smells"
 
Breathe life into your designer!
Breathe life into your designer!Breathe life into your designer!
Breathe life into your designer!
 
No Flex Zone: Empathy Driven Development
No Flex Zone: Empathy Driven DevelopmentNo Flex Zone: Empathy Driven Development
No Flex Zone: Empathy Driven Development
 
Profile Serialization IIPC GA 2015
Profile Serialization IIPC GA 2015Profile Serialization IIPC GA 2015
Profile Serialization IIPC GA 2015
 
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33
Le magazine Paranoia, Automne 2003. Vol 10, No 2, Issue 33
 
TicsDzm
TicsDzmTicsDzm
TicsDzm
 
Occupations 1
Occupations 1Occupations 1
Occupations 1
 
Coverletter&Resume41416
Coverletter&Resume41416Coverletter&Resume41416
Coverletter&Resume41416
 
Certificates and Credentials new
Certificates and Credentials newCertificates and Credentials new
Certificates and Credentials new
 
Procesador de textos
Procesador de textosProcesador de textos
Procesador de textos
 
Certificates
CertificatesCertificates
Certificates
 
Aaaaaa
AaaaaaAaaaaa
Aaaaaa
 
Hsc bangla 2nd only for dinajpur
Hsc bangla 2nd only for dinajpurHsc bangla 2nd only for dinajpur
Hsc bangla 2nd only for dinajpur
 
Sopas de letras varias
Sopas de letras variasSopas de letras varias
Sopas de letras varias
 
Caça palavras 8ª serie
Caça palavras 8ª serieCaça palavras 8ª serie
Caça palavras 8ª serie
 
PostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit TestPostgreSQL Day italy 2016 Unit Test
PostgreSQL Day italy 2016 Unit Test
 
4 IATA Training
4   IATA Training4   IATA Training
4 IATA Training
 

Viewers also liked

Reactive Programming Models for IoT
Reactive Programming Models for IoTReactive Programming Models for IoT
Reactive Programming Models for IoTTodd Montgomery
 
The Cloud Native Journey
The Cloud Native JourneyThe Cloud Native Journey
The Cloud Native JourneyMatt Stine
 
QCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVM
QCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVMQCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVM
QCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVMAzul Systems, Inc.
 
Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...
Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...
Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...Jérôme Petazzoni
 
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...dev2ops
 
Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...Jérôme Petazzoni
 
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reza Rahman
 
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 201450 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014Ryan Cuprak
 
An introduction to Wardley Maps
An introduction to Wardley MapsAn introduction to Wardley Maps
An introduction to Wardley MapsSimon Wardley
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...Sonatype
 
Generation Z and the Future of Technology
Generation Z and the Future of TechnologyGeneration Z and the Future of Technology
Generation Z and the Future of TechnologyPamela Pavliscak
 

Viewers also liked (12)

Reactive Programming Models for IoT
Reactive Programming Models for IoTReactive Programming Models for IoT
Reactive Programming Models for IoT
 
The Cloud Native Journey
The Cloud Native JourneyThe Cloud Native Journey
The Cloud Native Journey
 
QCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVM
QCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVMQCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVM
QCon London: Low latency Java in the real world - LMAX Exchange and the Zing JVM
 
Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...
Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...
Containers, Docker, and Security: State Of The Union (LinuxCon and ContainerC...
 
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...
Without Self-Service Operations, the Cloud is Just Expensive Hosting 2.0 - (a...
 
Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...Containerization is more than the new Virtualization: enabling separation of ...
Containerization is more than the new Virtualization: enabling separation of ...
 
Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!Reactive Java EE - Let Me Count the Ways!
Reactive Java EE - Let Me Count the Ways!
 
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 201450 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
50 EJB 3 Best Practices in 50 Minutes - JavaOne 2014
 
IBM BPM & ODM
IBM BPM & ODMIBM BPM & ODM
IBM BPM & ODM
 
An introduction to Wardley Maps
An introduction to Wardley MapsAn introduction to Wardley Maps
An introduction to Wardley Maps
 
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
DevOps and Continuous Delivery Reference Architectures (including Nexus and o...
 
Generation Z and the Future of Technology
Generation Z and the Future of TechnologyGeneration Z and the Future of Technology
Generation Z and the Future of Technology
 

Similar to Continuous delivery with Gradle

Using Phing for Fun and Profit
Using Phing for Fun and ProfitUsing Phing for Fun and Profit
Using Phing for Fun and ProfitNicholas Jansma
 
IPC13 Munich: Planning the Unplannable
IPC13 Munich: Planning the UnplannableIPC13 Munich: Planning the Unplannable
IPC13 Munich: Planning the UnplannableRobert Lemke
 
Spring Roo 2.0 Preview at Spring I/O 2016
Spring Roo 2.0 Preview at Spring I/O 2016 Spring Roo 2.0 Preview at Spring I/O 2016
Spring Roo 2.0 Preview at Spring I/O 2016 DISID
 
Building the Organization of the Future: Leveraging Machine Learning
Building the Organization of the Future: Leveraging Machine LearningBuilding the Organization of the Future: Leveraging Machine Learning
Building the Organization of the Future: Leveraging Machine LearningAmazon Web Services
 
Building a team of misfits innovation team - gustavo razzetti april 3, 2018
Building a team of misfits   innovation team - gustavo razzetti april 3, 2018Building a team of misfits   innovation team - gustavo razzetti april 3, 2018
Building a team of misfits innovation team - gustavo razzetti april 3, 2018Liberationist, Change Leadership
 
Portafolio Francisco Díaz Tazza
Portafolio Francisco Díaz TazzaPortafolio Francisco Díaz Tazza
Portafolio Francisco Díaz TazzaFranciscoDiazTazza
 
Interior Design Portfolio
Interior Design PortfolioInterior Design Portfolio
Interior Design PortfolioCassandra Ryan
 
Piotr Szotkowski about "Bits of ruby"
Piotr Szotkowski about "Bits of ruby"Piotr Szotkowski about "Bits of ruby"
Piotr Szotkowski about "Bits of ruby"Pivorak MeetUp
 
Passivhaus on a shoestring
Passivhaus on a shoestringPassivhaus on a shoestring
Passivhaus on a shoestringPaul Testa
 
The Library As Indicator Species: Evolution, or Extinction?
The Library As Indicator Species: Evolution, or Extinction?The Library As Indicator Species: Evolution, or Extinction?
The Library As Indicator Species: Evolution, or Extinction?char booth
 
Type Systems on the example of TypeScript
Type Systems on the example of TypeScriptType Systems on the example of TypeScript
Type Systems on the example of TypeScriptArtur Skowroński
 
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
Y o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docxY o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docx
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docxherminaprocter
 
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
Y o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docxY o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docx
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docxodiliagilby
 
Le futur des communications par l'internet des objets - Présentation de SAGA ...
Le futur des communications par l'internet des objets - Présentation de SAGA ...Le futur des communications par l'internet des objets - Présentation de SAGA ...
Le futur des communications par l'internet des objets - Présentation de SAGA ...ioTHEATRE
 
Spacebrew MADess: Running Your Own Server
Spacebrew MADess: Running Your Own ServerSpacebrew MADess: Running Your Own Server
Spacebrew MADess: Running Your Own ServerJulio Terra
 

Similar to Continuous delivery with Gradle (20)

Using Phing for Fun and Profit
Using Phing for Fun and ProfitUsing Phing for Fun and Profit
Using Phing for Fun and Profit
 
IPC13 Munich: Planning the Unplannable
IPC13 Munich: Planning the UnplannableIPC13 Munich: Planning the Unplannable
IPC13 Munich: Planning the Unplannable
 
Spring Roo 2.0 Preview at Spring I/O 2016
Spring Roo 2.0 Preview at Spring I/O 2016 Spring Roo 2.0 Preview at Spring I/O 2016
Spring Roo 2.0 Preview at Spring I/O 2016
 
Building the Organization of the Future: Leveraging Machine Learning
Building the Organization of the Future: Leveraging Machine LearningBuilding the Organization of the Future: Leveraging Machine Learning
Building the Organization of the Future: Leveraging Machine Learning
 
Building a team of misfits innovation team - gustavo razzetti april 3, 2018
Building a team of misfits   innovation team - gustavo razzetti april 3, 2018Building a team of misfits   innovation team - gustavo razzetti april 3, 2018
Building a team of misfits innovation team - gustavo razzetti april 3, 2018
 
Portafolio Francisco Díaz Tazza
Portafolio Francisco Díaz TazzaPortafolio Francisco Díaz Tazza
Portafolio Francisco Díaz Tazza
 
Interior Design Portfolio
Interior Design PortfolioInterior Design Portfolio
Interior Design Portfolio
 
Piotr Szotkowski about "Bits of ruby"
Piotr Szotkowski about "Bits of ruby"Piotr Szotkowski about "Bits of ruby"
Piotr Szotkowski about "Bits of ruby"
 
Passivhaus on a shoestring
Passivhaus on a shoestringPassivhaus on a shoestring
Passivhaus on a shoestring
 
The Library As Indicator Species: Evolution, or Extinction?
The Library As Indicator Species: Evolution, or Extinction?The Library As Indicator Species: Evolution, or Extinction?
The Library As Indicator Species: Evolution, or Extinction?
 
Type Systems on the example of TypeScript
Type Systems on the example of TypeScriptType Systems on the example of TypeScript
Type Systems on the example of TypeScript
 
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
Y o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docxY o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docx
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
 
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
Y o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docxY o u r  N a m e   L S P  2 0 0 - 3 2 0  ( c o u r s e  I .docx
Y o u r N a m e L S P 2 0 0 - 3 2 0 ( c o u r s e I .docx
 
Resume
ResumeResume
Resume
 
Resume
ResumeResume
Resume
 
Le futur des communications par l'internet des objets - Présentation de SAGA ...
Le futur des communications par l'internet des objets - Présentation de SAGA ...Le futur des communications par l'internet des objets - Présentation de SAGA ...
Le futur des communications par l'internet des objets - Présentation de SAGA ...
 
Spacebrew MADess: Running Your Own Server
Spacebrew MADess: Running Your Own ServerSpacebrew MADess: Running Your Own Server
Spacebrew MADess: Running Your Own Server
 
Resurgence of Technology Driven Change
Resurgence of Technology Driven ChangeResurgence of Technology Driven Change
Resurgence of Technology Driven Change
 
Cyber Security - Becoming Evil
Cyber Security - Becoming EvilCyber Security - Becoming Evil
Cyber Security - Becoming Evil
 
Hacking with Love
Hacking with LoveHacking with Love
Hacking with Love
 

More from Bob Paulin

Fundraising At Apache
Fundraising At ApacheFundraising At Apache
Fundraising At ApacheBob Paulin
 
Open Development When You're Not in Charge
Open Development When You're Not in ChargeOpen Development When You're Not in Charge
Open Development When You're Not in ChargeBob Paulin
 
Apache When You're Not in Charge
Apache When You're Not in ChargeApache When You're Not in Charge
Apache When You're Not in ChargeBob Paulin
 
Modular Open Source in Java for Now and Later
Modular Open Source in Java for Now and LaterModular Open Source in Java for Now and Later
Modular Open Source in Java for Now and LaterBob Paulin
 
Microservice Networking in Anger
Microservice Networking in AngerMicroservice Networking in Anger
Microservice Networking in AngerBob Paulin
 
User Groups: The Gateway to Apache
User Groups: The Gateway to ApacheUser Groups: The Gateway to Apache
User Groups: The Gateway to ApacheBob Paulin
 
What's My Modularity
What's My ModularityWhat's My Modularity
What's My ModularityBob Paulin
 
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEMDo more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEMBob Paulin
 
Adding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGiAdding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGiBob Paulin
 
Frontend 'vs' Backend Getting the Right Mix
Frontend 'vs' Backend   Getting the Right MixFrontend 'vs' Backend   Getting the Right Mix
Frontend 'vs' Backend Getting the Right MixBob Paulin
 
Build Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBob Paulin
 
Code Quality Practice and Tools
Code Quality Practice and ToolsCode Quality Practice and Tools
Code Quality Practice and ToolsBob Paulin
 

More from Bob Paulin (12)

Fundraising At Apache
Fundraising At ApacheFundraising At Apache
Fundraising At Apache
 
Open Development When You're Not in Charge
Open Development When You're Not in ChargeOpen Development When You're Not in Charge
Open Development When You're Not in Charge
 
Apache When You're Not in Charge
Apache When You're Not in ChargeApache When You're Not in Charge
Apache When You're Not in Charge
 
Modular Open Source in Java for Now and Later
Modular Open Source in Java for Now and LaterModular Open Source in Java for Now and Later
Modular Open Source in Java for Now and Later
 
Microservice Networking in Anger
Microservice Networking in AngerMicroservice Networking in Anger
Microservice Networking in Anger
 
User Groups: The Gateway to Apache
User Groups: The Gateway to ApacheUser Groups: The Gateway to Apache
User Groups: The Gateway to Apache
 
What's My Modularity
What's My ModularityWhat's My Modularity
What's My Modularity
 
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEMDo more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
Do more with LESS, Handlebars, Coffeescript and other Web Resources in AEM
 
Adding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGiAdding Modularity Afterward with Embedded OSGi
Adding Modularity Afterward with Embedded OSGi
 
Frontend 'vs' Backend Getting the Right Mix
Frontend 'vs' Backend   Getting the Right MixFrontend 'vs' Backend   Getting the Right Mix
Frontend 'vs' Backend Getting the Right Mix
 
Build Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache Sling
 
Code Quality Practice and Tools
Code Quality Practice and ToolsCode Quality Practice and Tools
Code Quality Practice and Tools
 

Recently uploaded

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):comworks
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):CloudStudio User manual (basic edition):
CloudStudio User manual (basic edition):
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 

Continuous delivery with Gradle

  • 1. CONTINUOUS DELIVERY WITH GRADLE BOB PAULIN / @BOBPAULIN / BOB@BOBPAULIN.COM
  • 2. ABOUT ME Independent Consultant Business Enablement Web Centric Platforms Automation
  • 3. I LOVE DELIVERING SOFTWARE I WANT TO DELIVER SOFTWARE ALL THE TIME! MULTIPLE TIMES A DAY!
  • 5. SEVERAL MAJOR ECOMMERCE SHOPS ETSY.COM DEPLOYS ABOUT 30 TIMES EACH DAY MY PERSONAL RECORD 5
  • 6. BENEFITS OF CONTINUOUS DELIVERY Shorten the time it takes from conception to customer impact Experiment more frequently Do more concurrently Delivery becomes a non-event
  • 7. DELIVERING SOFTWARE CAN BE PAINFUL! Needs to be Assembled Needs to be Deployed Needs to be Tested How can I make sure I don't break existing stuff? What happens if I do break something? What about dependent systems? How do I know what changed? How do I control what goes in and what does not?
  • 8. ALL THAT'S GOING TO TAKE ME AT LEAST 2 WEEKS!
  • 9. RELEASE MANAGEMENT 101 Consistent Build Process Functional/Regression Testing Versioning Source Code Management Deployment Process Rollback
  • 10. RELEASE MANAGEMENT 501 Config Switches Feature Branching Modular Deployment Throttling Auto Provisioning Auto-Scaling
  • 11. TOOLS TO THE RESCUE!
  • 14. A RECIPE FOR CONTINUOUS DELIVERY Gradle Artifactory Git
  • 15. GRADLE Build Tool Groovy Combines some of the best features of Ant and Maven Conventions Plugins
  • 16. ARTIFACTORY Binary Repository JEE Web App Supports Maven and Ivy Open Source and Pro Licensed
  • 18. HOW DOES ALL THIS STUFF WORK TOGETHER?
  • 19. STEPS
  • 21. A BRIEF ASIDE ON SEMANTIC VERSIONING
  • 22. LETS LOOK AT SOME CODE!
  • 23. GRADLE PLUGINS War Plugin Cargo Plugin Maven Plugin
  • 25. c ro { ag cn an rd =' o ct x ot i eI tm a7 ' pr = It gr pr en ( eP oe t( rj c .n + "d po Pr ") ot ne e. a sI tg tr p ry po et ev .e l yo t) dp oa l { el y be cn et =a tf c I ot x ri at d fl = po et fl (r i at on od ah ie rj c. i ea tf cD w la Pt ) } rm t { eo e hs nm = gt rp ry p oe te v+ "d p oH sn m" ot a e eP o et (r jc . n . el yo t ae ) ue nm = gt rp ry p oe te v+ "d p oU eN m" sr a e eP o et (r jc . n . el ys r ae ) ps wr = gt rp ry p oe te v+ "d p oP sw r" as o d eP o et (r jc . n . el ya s od ) } }
  • 26. DON'T EMBED ENVIRONMENT DATA INTO THE BUILD SCRIPT! CREATE A USER PROPERTIES FILE INSTEAD.
  • 27. DEPENDENCY MANAGEMENT FOR YOUR APPLICATION AND FOR YOUR BUILD
  • 28. b id ci t{ u ls r p rp st re { eo i oi s mv n{ ul "t p :/ s. oa y eo gc ne tg o p/ ul c} ae r h ts /o s sn tp .r /o t n/ ru sp b i" mv ne ta ( ae C nr l) } dp ne ce { ee d ni s ca sa h "a a .e ve :e v e- p: ." ls p t j vx sr l ts rl ta i2 5 , "r .r de ai p ui sg al - ag -l gn 06 1 , og g al .p .l gn : rd ec ro pu i :. ." "r .j br tr g al -i :. . " og a oe sa :r de g t0 63 } }
  • 29. d pn ec e { e ed n is df cr oe so = '. .' e a gV ri n 13 3 df sr nV ri n = '. . .E ES ' e p ig es o 3 23 RL A E df wo Je so = '. .' e r 4V ri n 16 3 df ap la ne e so = ' .' e o Al ic Vr in 10 cr o " r. oe as cr o cr oc r- br a :c ro es o " " r. o ea sc ro ag o gc dh u .a g: ag - oe ue jr $a g Vr in , og cd hu . ag cm ie "r .p ig rm w r: pi ga p $ p ig es o" " r. pi g rm wr :p op l og sr n fa eo ks r n- o: sr nV r in, og sr nf ae o ks " r. p ig rm wr :p i gc ne t$ pi g es o" "r . pi gr mw r: p ig og sr nf ae o ks rn -o t x: sr nV ri n,o gs rn fa e ok sr n" r. p ig rm wr :p i ge pe so :s r nV ri n, " r. pi gr mw r :p og sr nf ae o ks rn -x r si n$ pi ge s o" o gs rn f ae ok sr " r. p ig rm wr :p i gw b$ pi ge s o" " r. pi gr mw r :p ig wb og sr nf ae o ks rn -e : sr nV ri n, o gs r nf ae ok sr n -e " aa . ev e: sl 12 , og sf js fj a i1 56," r .l 4: c- vr s fj jv xs rl tj t :. "" r. l 4: l4 -p :. . " og sf jj l oe -l 4: " r. o ea sj cs nj c sn mp e- s: . .""o al a c: oa la c: a pl og cd hu .a k o: ak o- a pr al 19 3,a pl in ea pl i ne $o Al cm ie "r .p ig rm w r. aa sr n- a am no b1 0 4R LA E ) op l (og sr n fa eo kd t :p ig dt -o g d: .. .E ES " { ec ue md l: xl d o ue " l4 -p " s fj a i } cm ie "r .p ig rm w r: pi gc r: s rn Vr in ) op l (og sr n fa eo ks r n- oe $p ig e so "{ ec ue md l: xl d o ue ' om n- og n ' c mo s lg ig } cm ie ( r .s cw oj w oj cr :w oJ e so " op l "o id . r4 :r 4- o e$ r4 Vr in ) { ec ue md l: xl d o ue " l4 -p " s fj a i } cm ie "o id .r 4: r 4- xe so s $ r 4V ri n) op l ( r. sc w oj wo je t ni n: wo Je s o" { ec ue md l: xl d o ue " l4 -p " s fj a i ec ue md l: xl d o ue " l4 -o 41 " s fj l gj 2 } po ie Cm ie "a a. l e- p: ." " aa .e v e. s: s- p: . " " a a. rv d do pl j vx e: la i 10 , j v xs rl tj p jp ai 20 , jv xs ts Cm ie "u i: ui : .. " "r .p ig rm w r: pi gt s: s rn Vr in et o pl jn t jn t3 81 , og sr n fa eo ks r n- et $p ig e so }
  • 31. t s u d tU la eP md p ns n 'e Ba cN m' < { a k pa ep od d o( ee dO : gt rn h ae ) < d fp m es o = p oe tv ri n e oV ri n r jc . es o i ( p o et gt rd e) g ta kr p ( .a T s( :e es " ) f! rj c. eG a l( .e Ts G ah )h sa k " r la e ) pm es o + " $ rn ha e oV r in = . b ac N m" u la A ci e. eo io i sm vn el yr p mv ri n= p me so po dr hv sr p st re .a e Dp oe .o .e s o o Vr in }
  • 32. t s t g tp :G ta ){ a k a( ye i T g tg ae =v ri n aN m es o ms ae = " ee s o $ v ri n" es g R la e f {e so } } t s p s TR mt (y e Gt uh { a k uh oe oe t p: i Ps ) ps Al =t u uh l re }
  • 33. t s q R la e{ a k ae es dp ns nt s, w r g t rn ha e ud tU la e Pm u la Ac ie ,u d tV r ee d O et a , eB ac N m, pa e po dd o, p od rh v s pa ee }
  • 35. / Ts D pn ec e / ak e ed ni s w rm sR nf e ts a .u t uA tr e t t gm sR nf e wr a .u t uA tr a u dt Ul ae Pm m sR nf e tg p ae p od do .u tu A tr a u la Ac ie .u t uA tr ud t Ul ae Pm p od r hv sm sR nf e p ae po dd o u dt Vr in ub r ms Rn fe u la Ac i e p ae e so Nm e. ut u At r po dr hv s a de so Ud t . u tu At ru d tV ri nu br d Vr i np ae ms Rn f e pa ee so N me c mi Vr in pa e ms Rn fe a de so U dt o mt e so Ud t. ut u At r dV ri np ae p sT Rm t . ut u At rc mi V ri np ae u ho e oe ms Rn fe om te so Ud t
  • 36. DEMO TIME! A SIMPLE BOOK REVIEW WEBSITE
  • 37. ADDING BOOK RATINGS SCORE TO THE SITE
  • 39. WRITE THE CODE... WE ALREADY KNOW HOW TO DO THIS!
  • 40. BUILD PROCESS When you say you're code is done the fun is just beginning...
  • 41. TESTING PROCESS Are you sure you're done?
  • 43. DEPLOYMENT PROCESS Oh yeah now we're done
  • 44. AN ASIDE Why is deploy separate from release?
  • 45. DEPLOYMENT PROCESS: TAKE 2 Oh ****! What have we done?!?!
  • 46. KNOW YOUR ROLLBACK STRATEGY BEFORE EVERY DEPLOYMENT
  • 48. SOME PARTING THOUGHTS ON GRADLE AND CONTINOUS DELIVERY
  • 49. REFERENCES CODE AND PRESENTATION GRADLE GRADLE RELEASE PLUGIN GIT ARTIFACTORY CARGO SEMANTIC VERSIONING ETSY'S MIKE BRITTAIN "CONTINUOUS DELIVERY: THE DIRTY DETAILS"
  • 50. BOB PAULIN BOB PAULIN / @BOBPAULIN / BOB@BOBPAULIN.COM