3. Overview Theory Practices Demo – Whistle stop tour of Team City Build Master
4. What is Continuous Integration? “To ensure software is continuously tested, deployed, with little or no bugs and the team has full visibility of the build.” James Fisk 2010
5. Life before CI Long integration process It is scary Not everyone knows how deploy the software Error prone You look incompetent
7. Why do it Software is ready to go at anytime Through practices the team take on a shared responsibility The team are well-versed with the install procedure Know quantity Muscle memory
23. What I’m using Devrig Windows server 2008 R2 64bit Tortisesvn Visual studio 2010 SharePoint 2010 – Single server install VisualSVN Build server Windows server 2008 R2 64bit Tortisesvn Visual studio 2010 SharePoint 2010 – Single server install VisualSVN Visual server SVN Teamcity 5.1
25. What just happened there(CI Build Process with CI server) Developers machine 1. Get latest and run build script 3. CI Server detects change and builds latest using build script. 2. Commits code Source code repository
Ask the questions :-Dev - Who hates arriving in on Monday and found the code does not compile?ITPro - Who enjoys installing new software onto the live servers?Management - Why does the dev team never the release right first time?Theory CI is just not about tools, it really is about discipline, mindset, collective responsibility, etc. The tools are really there to assist the team in becoming an effective team that practice CI well.Practices In martainfolwer’s article, which will be in this slide deck, he lists and discuses the 10 practices which, if followed, helps your team get the most out of CIDemo Manual CI This demo will take your through manual process of following CI, it’s really to give you a feel for the process and how tools can help speed things up a bitDemo This will show how to configure team city to do a SP 2010 build, complete with MSBUILD build script writing wwwoooooooBuild master I’ll finish up by talking about the build master role, and how it is important for a team to have this role.
Talk about the factory line Talk about what continuous integration is, and explain how is difficult it is to explain, however, the proof is in the pudding.People get it after you show them. People, may not see the need to install a build server, and build the software again on that box, what's wrong with building and testing software?
Before ci :-Developers have no idea whether or not the code they are committing is correct. Building the software for deployment, maybe to long and difficult.You will have less confidence in the code, whether building it, or deploying it.Generally nobody like deploying the code, because it is boring,reputationus, error prone, yet high profile. It goes wrong and ka boom.Never getting the deployment right first time make you look a bit, hence why you do not release all that much.
No excuses
Deployment is a no brainerBecause it is easy, no one minds doing it.You know how long the build will take, because you build and deploy a lot.
Should the “Configure Team City” be darker?
Everything in one place.
Get the computer to do the boring work for you, they love that sort of thing.Talk through MSBUILD scripts and other scripting languages.
The build should check itself, meaning it should confirm that the code builds, tests pass, code looks good, code is well covered, etc.
The dev team should commit code a lot, new code still on there dev boxes is waste, good practice to follow is if you are doing unit test, tdd, check in after each test passes. If you are not doing unit testing, which you should, then commit at a natural break. But still many times a day.
With the dev build the commit of code to the source code repos should cause a build, very important.
You need fast feedback, a slow build will mean you are hanging around for the build to finish, leading to ignoring it
Your integration system test should be as close to production as possibleRemove deployment issues to live.Greater confidence.
All build artefacts should be available.Testing team can use thisManagers evenOr anybody interested in installing and playing.
Feedback feedbackfeedback
Use computers to take away the boring thingsHumans hate repetitionLess error proneKnow quantity
Sprint 0Easy from beginningHarder to retrofit, no excuse to not do it though.
A green build is a good buildGreen build means that you can have confidenceEveryone is happy.
Mention the Skoda advert.
Talk about the solution structure
Remember to add this :-Reference Syntax: %env.MSBuild%Value: %system.DotNetFramework4.0_x86_Path%To the environment settings for the build config.
Build master is a distinct role.You must consider adding as a role.The build server is not fire forget, it grows with the project.
It is hardHigh profile
You may seem to nag all the timePeople may not unde3rstand way it is important, hence the parent analogy.
Everyone in the team should share the responsibilityThis means that everyone understands the build.