Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as...
Transcript of Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as...
![Page 1: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,](https://reader035.fdocuments.net/reader035/viewer/2022070816/5f0f65b97e708231d443f55f/html5/thumbnails/1.jpg)
Susan Duncan, Winston Prakash
Best Practices for using
Hudson as part of your
Agile Strategy
![Page 2: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,](https://reader035.fdocuments.net/reader035/viewer/2022070816/5f0f65b97e708231d443f55f/html5/thumbnails/2.jpg)
Agile Strategy?
• Iterative, incremental, collaborative, rapid, flexible
• Improving our development process
– Better builds, faster
– Better testing
– Better visibility
– Better feedback
– Better metrics
![Page 3: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,](https://reader035.fdocuments.net/reader035/viewer/2022070816/5f0f65b97e708231d443f55f/html5/thumbnails/3.jpg)
Continuous Integration (CI)
• Software Development Process• Keep your work in a repository
• Integrate your work frequently
• Each integration is automatically built
• Test integrated with build
• Discovers errors more quickly thereby reducing fix time
• Makes the project available to everyone to install
• Everyone is involved and therefore takes a stake in maintenance
• Commit Builds/Nightly Build
Integration
Test Build
![Page 4: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,](https://reader035.fdocuments.net/reader035/viewer/2022070816/5f0f65b97e708231d443f55f/html5/thumbnails/4.jpg)
What is Required of Good CI?
• Run automatically
– SCM operation triggered
– Build and deploy
– Integrated tests
• Feedback
– Email, IM, RSS feeds, etc…
• Analysis
– reporting, graphs . . .
![Page 5: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,](https://reader035.fdocuments.net/reader035/viewer/2022070816/5f0f65b97e708231d443f55f/html5/thumbnails/5.jpg)
Introduction to Hudson CI
• Eclipse Foundation Top Level Project• M2 release
• Easy installation and configuration
• Web-based interface
• Extendable through plug-ins • Maintained outside Eclipse
• Tiered
![Page 6: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,](https://reader035.fdocuments.net/reader035/viewer/2022070816/5f0f65b97e708231d443f55f/html5/thumbnails/6.jpg)
Hudson CI = Good CI
• Runs automatically – SCM: SVN, Git, CVS, Perforce …– Builds: Ant, Maven, scripts …– Integrate tests: JUnit, Selenium, Abbott…– Deploy: files, App server…
• Feedback via – Email, IM, RSS feeds …
• Analysis– reporting, graphs: Clover, Sonar, PMD …
• Much more . . .
![Page 7: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,](https://reader035.fdocuments.net/reader035/viewer/2022070816/5f0f65b97e708231d443f55f/html5/thumbnails/7.jpg)
Make it Modular!
![Page 8: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,](https://reader035.fdocuments.net/reader035/viewer/2022070816/5f0f65b97e708231d443f55f/html5/thumbnails/8.jpg)
• Upstream/Downstream Jobs – fingerprints
• Parameterized Trigger
• Promoted Builds
• Build Pipeline
• Join
Making it Modular
![Page 9: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,](https://reader035.fdocuments.net/reader035/viewer/2022070816/5f0f65b97e708231d443f55f/html5/thumbnails/9.jpg)
• Standard job properties
• Inherited by jobs
• Over-write as
needed
Cascading Jobs
![Page 10: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,](https://reader035.fdocuments.net/reader035/viewer/2022070816/5f0f65b97e708231d443f55f/html5/thumbnails/10.jpg)
Configure Job Standards
• Use Clean Builds from SCM
• Integrate with Issues
• Generate trend reports
• Use Maven3 integration
![Page 11: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,](https://reader035.fdocuments.net/reader035/viewer/2022070816/5f0f65b97e708231d443f55f/html5/thumbnails/11.jpg)
Distribute the Load
Master/Slave mode– Distributes load
– Executors
–Matrix
–Managed/Unmanaged
– Active Managed (cloud)
![Page 12: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,](https://reader035.fdocuments.net/reader035/viewer/2022070816/5f0f65b97e708231d443f55f/html5/thumbnails/12.jpg)
Maintain and Backup
• Setup on partition with most free space
• Archive unused jobs for performance
• Limit # of kept builds
• Backup job configurations (thinbackup)
• Version job configuration (versioning)
![Page 13: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,](https://reader035.fdocuments.net/reader035/viewer/2022070816/5f0f65b97e708231d443f55f/html5/thumbnails/13.jpg)
Run and Secure
• Standalone/Java EE server
• Front with HTTP proxy
• Configure as service
• Enable Security
• Integrate with SSO
http:hudson.eclipse.org/hudson
![Page 14: Best Practices for using Hudson as part of your Agile ... · Best Practices for using Hudson as part of your Agile Strategy. Agile Strategy? • Iterative, incremental, collaborative,](https://reader035.fdocuments.net/reader035/viewer/2022070816/5f0f65b97e708231d443f55f/html5/thumbnails/14.jpg)
BOF Tonight
Is Continuous Integration Achievable?
What does it mean?
Informal discussion 7pm Regency Ballroom B