• Prepare release branch and merge all required changes there • Update version in uppercut.config • Commit changes to SCM • Run build.bat • FTP package to deployment server • RDP to deployment server • Unpackage .zip content to temp folder • Manually backup staging database • Stop Stage Web site in IIS manager • Run migration scripts for staging database • Run deployment scripts for staging environment • Run Stage Web site in IIS manager • Test manually that on staging server, that build works fine • If something missed (note it is 60% of all cases) go to 1 • Manually backup production database • Stop Production Web site in IIS manager • Run migration scripts for production database • Run deployment scripts for production environment • Run Production Web site in IIS manager • Test manually that on production server, that build works fine Delivery Script ...
Integration is for: fetching latest sources build all product configuration items run unit tests run functional tests generate documentation package all artifacts Deployment is for: update test servers
UppercuT Easy to use Configurable by XML Supports config for different environment RoundhousE Easy to use Supports MS SQL, MySQL, Postgress Migration by SQL Scripts DropkicK Deployment script as C# code Support for services and sites Different plans
Availability of Build Server SCM build triggering Automatically run deployment script Roll out application to production Step 3 - Run it continuously
Results: Going live time improved 45x Site down time reduced 300x No more iterations, Kanban Staging is updating with every push Setup and forget