1 / 42

Automating Your Build Process Using FinalBuilder

Automating Your Build Process Using FinalBuilder. Session Overview. Automated Builds and Continuous Integration are facets of eXtreme Programming (XP) Very much part of the agile approach to software delivery Traditional waterfall development approaches can still benefit

akamu
Download Presentation

Automating Your Build Process Using FinalBuilder

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Automating Your Build Process Using FinalBuilder

  2. Session Overview • Automated Builds and Continuous Integration are facets of eXtreme Programming (XP) • Very much part of the agile approach to software delivery • Traditional waterfall development approaches can still benefit • Automated Builds encompass Continuous Integration • An automated build is considered end to end, including pre-compile and post-compile activities • This session will cover: • An introduction to automating your build, the activities that should be automated, the benefits of automated builds, etc. • An overview of how FinalBuilder can help you with your automated build Automating the Build Process Using FinalBuilder

  3. Disclaimer • I have no association with VSoft, the authors of FinalBuilder • It is a great product, I have been using it since version 2.x • Its primary reason for being is to automate the build process Automating the Build Process Using FinalBuilder

  4. Housekeeping • Mobile ‘phones • Fire Exits • Toilets Automating the Build Process Using FinalBuilder

  5. About Me XML XSLT XQuery XML Schema SOAP WML IntraWeb Web Services C# InterOp with Delphi RUP UML TDD in C#, VB.net and Delphi 8 Scrum • 50+ presentations delivered: • NRW06, NRW07 • DeveloperDeveloperDeveloper (UK Community Events) • Scottish Developers • Agile Scotland • British Computer Society (BCS) • UK Borland User Group (DDG) • Visual Basic User Group (VBUG) • VBUG .net Winter 2001 conference • XML One 2001 • 60+ articles published: • The Delphi Magazine • developers’ magazine (Dotnet Developers’ Group - DDG) • ASPToday.com (now Wiley, previously Wrox) • ASP.NET Pro, International Developer • CSharpCorner, DeveloperFusion Automating the Build Process Using FinalBuilder

  6. Automating the Build What, Why and How? FinalBuilder Introduction & Demo Customising FinalBuilder Using VBScript Using C# Replicating the NUnit Action Agenda • Build Reporting • FinalBuilder Server • Light-hearted look at Build Failure • Wrap Up • Resources, Links • Contact Info Automating the Build Process Using FinalBuilder

  7. Automating the Build – What? • Continuous Integration • Checking in source code (version control) • Running tests (test-driven development) • Focus on “not breaking the build” • Plenty of opinions: integrate ever 2 hours is fairly common • Pre & Post CI activities • Sending e-mail, stopping databases… • Burning CDs/DVDs, FTP, flicking switches • McConnell, Code Complete 2 • “literal continuous integration is too much of a bad thing” • Promotes the Daily Build and Smoke Test Automating the Build Process Using FinalBuilder

  8. Automating the Build – Why? • Manual Builds • Error prone • Difficult to repeat, easy to miss steps • Laborious, boring , dull • “one team member” understands the whole process • Unlikely to be run frequently • There is more onus / reliance on deployment testing – Catch-22! • Lack of quality / low quality are big problems Automating the Build Process Using FinalBuilder

  9. Automating the Build – Why? • Automated Builds • Repeatable and reliable processes • one or two clicks, no “series of [manual] steps” • more likely to be run frequently • ultimately improve overall quality • less chance of human error (after testing, the build) • Easier transfer of knowledge • No “one” team member “knows the build” • In XP terms: Under the bus count > 1 Automating the Build Process Using FinalBuilder

  10. Automating the Build – How? • Entirely manual process • Once all development and testing is complete, package up the product... • Use a mix of tools (partial automation) : DIY approach; can be very successful • CruiseControl • NAnt • MSBuild • Custom scripting • DOS batch files • Purchase off the shelf software, designed specifically to automate the build process • VSoft’s FinalBuilder • AutomatedQA’s Automated Build Studio • etc. Automating the Build Process Using FinalBuilder

  11. Automating the Build What, Why and How? FinalBuilder Introduction & Demo Customising FinalBuilder Using VBScript Using C# Replicating the NUnit Action Agenda • Build Reporting • FinalBuilder Server • Light-hearted look at Build Failure • Wrap Up • Resources, Links • Contact Info Automating the Build Process Using FinalBuilder

  12. FinalBuilder • “FinalBuilder is an automated build and release management solution for Windows software developers and Software Configuration Management professionals” • It goes beyond continuous integration • Provides an end-to-end means of automating every stage of your build process

  13. FinalBuilder • Standard, Professional and Server • http://www.finalbuilder.com/feature-matrix.aspx

  14. FinalBuilder – The Cost Not a developer? Automise provides the power of FinalBuilder, for the SysAdmin

  15. Actions

  16. Compilers • Configurable, uses packages to manage actions

  17. Version Control

  18. Installers

  19. Test Tools • NUnit support is provided

  20. Toolset • Microsoft Windows XP SP2 • FinalBuilder 5.5.0.518 • NUnit 2.4.6 • Visual Studio 2005 SP1 • ZoomIt 1.72 • Inno Setup 5.2.2 • Previously delivered this session using Windows Vista • Recently paved this laptop with XP2 SP2 for corporate reasons

  21. FinalBuilder Replicating f5 (or f9)......and beyond

  22. Agenda • Automating the Build • What, Why and How? • FinalBuilder • Introduction & Demo • Customising FinalBuilder • Using VBScript • Using C# • Replicating the NUnit Action • Build Reporting • FinalBuilder Server • Light-hearted look at Build Failure • Wrap Up • Resources, Links • Contact Info

  23. Customising FinalBuilder • Writing your own Actions • Integrate your build process into FinalBuilder • ActionStudio • VBScript, JavaScript • COM-based languages • e.g. Delphi, VB6 • .NET-based languages • e.g. C#, Chrome, Visual Basic.NET

  24. How do actions work? FINALBUILDER BUILD PROCESS Valid parameters? onValidate() Invalid Valid onExecute() Success / Failure ? Failure Success

  25. DIY NUnit integration • Demonstrate, inside FinalBuilder: • Invoking NUnit via the command-line • Loading TestResult.xml (created by NUnit) • Using XPath to select attributes from TestResult.xml • Make decisions based on the attribute value • Common activities for any integration • Over time, VSoft usually get around to adding third party tools

  26. Using FinalBuilder‘s Features INTEGRATING NUNIT

  27. Customising FinalBuilder Writing your own actions USING C#

  28. Agenda • Automating the Build • What, Why and How? • FinalBuilder • Introduction & Demo • Customising FinalBuilder • Using VBScript • Using C# • Replicating the NUnit Action • Build Reporting • FinalBuilder Server • Light-hearted look at Build Failure • Wrap Up • Resources, Links • Contact Info

  29. Build Reporting • Builds by day, by day of week, by time of day • Print and Export to Excel

  30. Build Reports • Tuesdays and Thursdays – bad days at the office!

  31. Build Reports • Demonstrate a downward trend in failed builds

  32. Agenda • Automating the Build • What, Why and How? • FinalBuilder • Introduction & Demo • Customising FinalBuilder • Using VBScript • Using C# • Replicating the NUnit Action • Build Reporting • FinalBuilder Server • Light-hearted look at Build Failure • Wrap Up • Resources, Links • Contact Info

  33. FinalBuilder Server • Team development solution • Centralises build projects through a web interface • Manage multiple build projects • All the underlying power of FinalBuilder Pro • Builds can be started and stopped – by authorised users • Build logs and performance statistics viewable in a browser – wide reach

  34. Agenda • Automating the Build • What, Why and How? • FinalBuilder • Introduction & Demo • Customising FinalBuilder • Using VBScript • Using C# • Replicating the NUnit Action • Build Reporting • FinalBuilder Server • Light-hearted look at Build Failure • Wrap Up • Resources, Links • Contact Info

  35. Build Failure – Simple Red Screen • Dr. Neil Roodyn promotes the use of an integration machine for the build • Green screen (successful) • Red screen (failed)

  36. Build Failure – More complex! • http://www.pragmaticprogrammer.com/pa/pa.html

  37. Agenda • Automating the Build • What, Why and How? • FinalBuilder • Introduction & Demo • Customising FinalBuilder • Using VBScript • Using C# • Replicating the NUnit Action • Build Reporting • FinalBuilder Server • Light-hearted look at Build Failure • Wrap Up • Resources, Links • Contact Info

  38. Conclusions • Automating the build process entirely, is worth the effort • For large projects, I have spent 4-5 hours inside FinalBuilder, but made up that time many times over • Quality increase • If used correctly, automated build products, such as FinalBuilder are to the build process what test-driven development (TDD) is to the test/code sub-process • Reduces integration headaches (integrate often) • An automated build tool goes beyond F5 (or F9)

  39. Resources • FinalBuilder • http://www.finalbuilder.com

  40. Links • Using FinalBuilder, compiler, etc. inside a Virtual Machine (VM) • http://lachlan.gemmell.com/2004/07/build-it.html • Excellent approach if you need to maintain a whole build environment, including third party components • Sinjin Joseph • http://weblogs.asp.net/sjoseph/archive/2007/05/06/notes-on-the-software-build-process.aspx • ZoomIt • http://www.microsoft.com/technet/sysinternals/Miscellaneous/ZoomIt.mspx

  41. Contact Information Craig Murphy http://www.twitter.com/CAMURPHY Updated slides, notes and source code: http://www.CraigMurphy.com http://www.CraigMurphy.com/blog

  42. Questions? Test Driven Development and Code Coverage 42

More Related