Beginners Guide to Continuous Integration with SharePoint 2010<br />By James Fisk<br />
Overview<br />Theory<br />Practices<br />Demo – Whistle stop tour of Team City<br />Build Master<br />
Overview<br />Theory <br />Practices<br />Demo – Whistle stop tour of Team City<br />Build Master<br />
What is Continuous Integration?<br />“To ensure software is continuously tested, deployed, with little or no bugs and the ...
Life before CI<br />Long integration process<br />It is scary<br />Not everyone knows how deploy the software<br />Error p...
It works on my machine!<br />
Why do it<br />Software is ready to go at anytime<br />Through practices the team take on a shared responsibility<br />The...
Overview<br />Theory<br />Practices<br />Demo – Configure Team City<br />Build Master<br />
Single source code repository<br />
Automate the build<br />
Build should be self testing<br />
Team members commit to mainline many times a day<br />
A commit kicks off a build on integration server<br />
Keep the CI build fast<br />
Test on clone of production<br />
Executable should be easy to hold of<br />
Everyone sees what is happening<br />
Automate deployment<br />
Do it from day one<br />If possible! <br />
Keep the build green<br />
Treat the build as a factory assembly line<br />
A little thought about structure<br />
What I’m using<br />Devrig<br />Windows server 2008 R2 64bit<br />Tortisesvn<br />Visual studio 2010<br />SharePoint 2010 ...
Overview<br />Theory<br />Practices<br />Demo – Configure Team City<br />Build Master<br />
What just happened there(CI Build Process with CI server)<br />Developers machine<br />1. Get latest and run build script<...
Overview<br />Theory<br />Practices<br />Demo – Whistle stop tour of Team City<br />Build Master<br />
Build Master As a role<br />
Not everybody's cup of tea<br />
It’s like being a parent<br />
Take it in turns<br />
Useful URLS :-<br /><ul><li>http://martinfowler.com/articles/continuousIntegration.html
Martin Fowler’s continuous integration article
Upcoming SlideShare
Loading in …5
×

Continuous integration

1,995 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,995
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • Introduce the talk
  • 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&apos;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.
  • Continuous integration

    1. 1. Beginners Guide to Continuous Integration with SharePoint 2010<br />By James Fisk<br />
    2. 2. Overview<br />Theory<br />Practices<br />Demo – Whistle stop tour of Team City<br />Build Master<br />
    3. 3. Overview<br />Theory <br />Practices<br />Demo – Whistle stop tour of Team City<br />Build Master<br />
    4. 4. What is Continuous Integration?<br />“To ensure software is continuously tested, deployed, with little or no bugs and the team has full visibility of the build.”<br />James Fisk 2010<br />
    5. 5. Life before CI<br />Long integration process<br />It is scary<br />Not everyone knows how deploy the software<br />Error prone<br />You look incompetent <br />
    6. 6. It works on my machine!<br />
    7. 7. Why do it<br />Software is ready to go at anytime<br />Through practices the team take on a shared responsibility<br />The team are well-versed with the install procedure<br />Know quantity<br />Muscle memory<br />
    8. 8. Overview<br />Theory<br />Practices<br />Demo – Configure Team City<br />Build Master<br />
    9. 9. Single source code repository<br />
    10. 10. Automate the build<br />
    11. 11. Build should be self testing<br />
    12. 12. Team members commit to mainline many times a day<br />
    13. 13. A commit kicks off a build on integration server<br />
    14. 14. Keep the CI build fast<br />
    15. 15. Test on clone of production<br />
    16. 16. Executable should be easy to hold of<br />
    17. 17. Everyone sees what is happening<br />
    18. 18. Automate deployment<br />
    19. 19. Do it from day one<br />If possible! <br />
    20. 20. Keep the build green<br />
    21. 21. Treat the build as a factory assembly line<br />
    22. 22. A little thought about structure<br />
    23. 23. What I’m using<br />Devrig<br />Windows server 2008 R2 64bit<br />Tortisesvn<br />Visual studio 2010<br />SharePoint 2010 – Single server install<br />VisualSVN<br />Build server<br />Windows server 2008 R2 64bit<br />Tortisesvn<br />Visual studio 2010<br />SharePoint 2010 – Single server install<br />VisualSVN<br />Visual server SVN<br />Teamcity 5.1<br />
    24. 24. Overview<br />Theory<br />Practices<br />Demo – Configure Team City<br />Build Master<br />
    25. 25. What just happened there(CI Build Process with CI server)<br />Developers machine<br />1. Get latest and run build script<br />3. CI Server detects change and builds latest using build script.<br />2. Commits code<br />Source code repository<br />
    26. 26. Overview<br />Theory<br />Practices<br />Demo – Whistle stop tour of Team City<br />Build Master<br />
    27. 27. Build Master As a role<br />
    28. 28. Not everybody's cup of tea<br />
    29. 29. It’s like being a parent<br />
    30. 30. Take it in turns<br />
    31. 31. Useful URLS :-<br /><ul><li>http://martinfowler.com/articles/continuousIntegration.html
    32. 32. Martin Fowler’s continuous integration article
    33. 33. http://www.jetbrains.com/teamcity/
    34. 34. Team city
    35. 35. http://hudson-ci.org/
    36. 36. Hudson CI server
    37. 37. http://msdn.microsoft.com/en-us/vstudio/ff637362.aspx
    38. 38. Team foundation server 2010</li></li></ul><li>

    ×