6. Table of Contents
• Continuous Deployment with Maven
• Scaling Continuous Deployment
• Analyse Data from the CI System
• Automate Analysis and Visualisation
@AbrahamMarin
7. Table of Contents
• Continuous Deployment with Maven
• Scaling Continuous Deployment
• Analyse Data from the CI System
• Automate Analysis and Visualisation
@AbrahamMarin
8. What is Continuous Deployment?
Continuous Integration: check everything is still
working after every commit
•
• Continuous Deployment: every successful
commit turns into a release
•
@AbrahamMarin
11. To Caesar what is Caesar’s
Based on John Ferguson Smart’s
“Real-World Strategies for Continuous Delivery
with maven and Jenkins”
http://youtu.be/McTZtyb9M38
@AbrahamMarin
12. John’s approach
Maven wasn’t built for Continuous
Deployment
commit
commit
commit
...
0.0.1-SNAPSHOT
Release!
0.0.1
@AbrahamMarin
13. John’s approach
Don’t use RELEASE plugin
Use VERSIONS plugin
Set version to <version scheme>.<build number>
Run mvn deploy
Commit pom file to repository
@AbrahamMarin
14. John’s approach
Set version to <version scheme>.<build number>
mvn versions:set –DnewVersion=**your version**
@AbrahamMarin
19. Table of Contents
• Continuous Deployment with Maven
• Scaling Continuous Deployment
• Analyse Data from the CI System
• Automate Analysis and Visualisation
@AbrahamMarin
24. When Builds Get Too Big
@AbrahamMarin
"MAN Atlante fronte 1040572" by Lalupa - Own work. Licensed under GFDL via Commons -
https://commons.wikimedia.org/wiki/File:MAN_Atlante_fronte_1040572.JPG#/media/File:MAN_Atlante_fronte_1040572.JPG
25. SUPER
APP
# Files: 169
# Tests: 1800
Build Time: 9 min
Output: superapp.war
APP
BACKEND
SUPER
APP
# Files: 115
# Tests: 1200
Build Time: 6 min
Output: superapp.war
# Files: 72
# Tests: 800
Build Time: 4 min
Output: appbackend.jar
@AbrahamMarin
64. Table of Contents
• Continuous Deployment with Maven
• Scaling Continuous Deployment
• Analyse Data from the CI System
• Automate Analysis and Visualisation
@AbrahamMarin
74. Table of Contents
• Continuous Deployment with Maven
• Scaling Continuous Deployment
• Analyse Data from the CI System
• Automate Analysis and Visualisation
@AbrahamMarin
79. Automating Build Analysis
• Add colour and size
• Add support for other CI systems
• Show subset of builds
• Update data automatically (for build displays)
• Anything else you may find useful!
@AbrahamMarin
80. Summary
• Setting up Continuous Deployment is possible
• Scaling is challenging, but also possible
• Build data can help you shape the architecture
of your application
• Still plenty to improve, please join me
@AbrahamMarin