Continuous integration 101
-
Upload
manuel-spezzani -
Category
Software
-
view
109 -
download
0
Transcript of Continuous integration 101
Manuel SpezzaniTechnical Lead
IConsulting S.p.A.
[email protected]@indyco.com
@manuelspezzanihttp://it.linkedin.com/in/manuelspezzani/it
A basic continuous
integration process
At every commit:
Get latestsources
Build Test Package
Even if one minor test fails, the build is marked as RED
A basic continuous
integration process
No IDE allowed!
Sources comes from ONE repository
Build scripts are sources
Database scripts are sources
Test everything!
Database scripts counts as everything
No-one needs 100% coverage , everyone needs 100% confidence !
Continous integration and me
More discipline
Checkin frequently
Don’t checkin broken / untested code!
Don’t checkin when the build is broken
Don’t go home after checking in until the system builds
http://www.thoughtworks.com/continuous-integration
Release early – release often
Ensure the mainline is always shippable
Reduce packaging and release time
Multiple configurations
Environment OS
Browsers
Network
…
Third-party integrations Databases
Libraries
…
Set a goal: 1-click release
Clear and easy to measure
It’s easy to estimate a «ROI»
You can sell it to your boss!
Involves a lot of processes
Probably it will change the way you work
Set rules, and follow them
Developers have no access to C.I. servers
No log-in access
No file-system access
No-one is allowed to release manually
Reproducibility
Dependency hell
Developers have to access the CI machines to throubleshoot
build issues
The build script can’t be executed a standard dev machine
Nightly build as a companion
Useful when:
Working on large projects, with lot of integration / UI tests
Resource intensive builds
Be careful:
Daily integration is not enough!
http://www.alittlemadness.com/2009/01/27/continuous-integration-myth-ci-vs-nightly-builds/
Continuous delivery
Your software is deployable throughout its lifecycle
You can perform push-button deployments of any version of
the software to any environment on demand
http://martinfowler.com/bliki/ContinuousDelivery.html
http://blog.crisp.se/2013/02/05/yassalsundman/continuous-delivery-vs-continuous-deployment
Continuous deployment
Your software is deployed throughout its lifecycle
Is it a good idea or not? It depends on your business!
http://blog.crisp.se/2013/02/05/yassalsundman/continuous-delivery-vs-continuous-deployment