The process of continuously applying certain practices that the project team holds dear in an attempt to make the feedback loop as tight as possible thusenabling the team to address issues raised quickly.
CI Today1. Build the codebase2. Automatically test the codebase3. Create deployment packages for the codebase
Boundaries in DevelopmentDevelopment Testing Operations Team Team Team
Doing more?• Auto-releasing to test environments …or even production• Ensure the code works in the deployment environment• Verify multiple system integrations• Verify infrastructure integrations
Involving the Test Team• Current involvement usually is manual• Automated (triggered) push deployments• Tester pulled deployments
Involving the Test TeamBuild Automated Testing Release Package Creation Test Environment Installation
The Test Team…• Emails someone about success/failure• Updates a system to indicate the build testing status• Almost always is a dead end step
What We Know• If the system has passed: – The current version is production ‘release- able’ – The different components/systems in the test environment work together
What We Have• Validated build• Known integration components• Known configuration
What We Should Do• Create a ‘release-able’ snapshot of the components/applications verified• Creating a production release manifest• Log information about the verified component combination
Further Thought Points• Database change management – Release rollbacks? – Incremental == Additive• High availability – Multiple installations of Known Release Package – Additive releases• Environment configuration – Treat like an application release? – Version, audit, package, etc.
Assumptions• Ability to test in isolated environments – Tester isolation – *NOT* system isolation• Some ability to manage release packages• Automation
Challenge Your Assumptions• Don’t Known Release Packages seem a lot like a Nuget Package?• Anything you can do in a Nuget package becomes part of your release• http://haacked.com/archive/2011/01/15/buil ding-a-self-updating-site-using-nuget.aspx