Download - SharePoint Saturday - Philly 2012 - Setting up a SharePoint 2010 Continuous Integration process
Setting up a SharePoint 2010 Continuous Integration processTony Testa
Tony Testa SharePoint Consultant with HighPoint Solutions
Former SharePoint MVP (2010)
Development focused
http://www.tonytestasworld.com [email protected]
What is Continuous Integration and why should I care? Software practice where members of a team check in
their work frequently resulting in multiple builds over the course of the day allowing for integration errors to be reported frequently
Integral part of Agile development
Constant reporting of errors makes for better software and easier deployments
End goal is better software with fewer errors
Reason for this session Previous SharePoint projects I’ve worked on could have
benefited from CI Multiple developers Weekly builds done by hand, error prone
Benefits of SharePoint 2010 prompted a session at a previous SP Saturday that touched on this topic
Recent client was a large development effort with CI, one-click builds and integration builds that helped to catch errors/deployment errors
Questions for the audience Who is familiar with Continuous Integration (CI)?
Who is using CI with SharePoint today? 2010 or 2007?
Who is planning on using CI with SharePoint?
What are some areas you want me to touch on?
Why set up a CI process for SharePoint development? SharePoint development is no more special than any
other development project but has its own nuisances
SharePoint projects have code that needs to be integrated (web parts, feature receivers, etc.)
SharePoint projects produce WSPs that need to be deployed consistently
SharePoint development typically involves creating sites, adding web parts, creating lists, content types, etc. that need to function together
SharePoint 2010 vs. SharePoint 2007 CI differences 2007 SharePoint development varied quite a bit between
teams WSPBuilder, STSDEV, VSeWSS
2010 helps eliminate some of the variance with tight Visual Studio integration
2010 with Powershell makes things easier to script Could technically do this with 2007
What's needed to setup a CI process for SharePoint Development machines & Developers writing good/bad
code
Version Control System
Build Server
Integration Server(s)
Version Control System Team Foundation Servers (TFS) Subversion (SVN) – what I’ll be using for demo Git Mercurial
CI process should/should not care about your VCS Be sure to exclude user specific files (.suo , .user , etc.)
Build Server Software/Server that connects to VCS, runs builds,
reports errors Special steps for SharePoint projects, more on this later
TFS TeamCity – what I’ll be using for demo Hudson/Jenkins CruiseControl
Make sure your chosen build server works with your VCS
Integration Server(s) Server(s) that mimic QA/PROD with SharePoint running
Nightly / Daily builds will deployed and executed This can be achieved by copying artifacts and running build
scripts as post build commands
Integration Build Completely rebuild site Tear down/up web application Create site collection(s) Create site(s) Create list(s) Add/remove web parts Add data/documents
demo
Summary / Key Takeaways CI, even minimal CI, should be a part of any team
Minimal entry costs Can grow with team/project
CI process/tools tend to be team specific Use what works for you and your team
SharePoint 2010 makes it even easier than 2007 CI helps catch errors early and often Full integration builds help catch deployment errors
Helpful links Technet has article detailing build server needs
http://msdn.microsoft.com/en-us/library/ff622991.aspx Build server basically needs SP dlls, msbuild, etc.
Chris O’Brien has a nice blog series on topic that is TFS specific http://blogs.msdn.com/b/sharepointdev/archive/2011/08/25/crea
ting-your-first-tfs-build-process-for-sharepoint-projects.aspx
Thank you to Sponsors!
SharePoint Community in Philadelphia Tri-State SharePoint Users Group
SharePoint (2010 & 2007) Administrators Developers IT Pros
Keynote and related Hands-on Lab each meeting “On SharePoint Development”
Our lecture series on general SharePoint Development topics and how to improve those skills
Meetings: 2nd Tuesday of the month, 5:30pm – 9:00pm, Microsoft Malvern MTC
Website: www.TriStateSharePoint.org Email: [email protected] Twitter: @tristateSP
Questions?