Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
PUSHING THE LIMITS OF LABVIEWFire and Forget:Bulletproof Builds Using ContinuousIntegration With LabVIEW                  ...
Continuous Integration with LabVIEWWhat is Continuous Integration?What is Jenkins?Build Automation ProcessConsiderations f...
Continuous Integration with LabVIEWWhat is Continuous Integration?What is Jenkins?Build Automation ProcessConsiderations f...
Continuous Integration In ActionLet’s start with a demo!                                       FIRE!      Image via: pasuk...
What is Continuous Integration?End to end automation of your build and releaseprocess...                                  ...
Continuous Integration with LabVIEWWhat is Continuous Integration?What is Jenkins?Build Automation ProcessConsiderations f...
About JenkinsOpen Source (Est. ~2007)Many usersMany pluginsSome learning curve but overall easy to useHas GUI             ...
What Problems Does Jenkins Solve?       Build Triggering (Web Hooks or SCC Polling)       Build Execution Order (Build P...
Poking around in Jenkins           Let’s take a look around ...                                          PUSHING THE9     ...
Continuous Integration with LabVIEWWhat is Continuous Integration?What is Jenkins?Build Automation ProcessConsiderations f...
Build PlanningQ. When do we start making builds of our project?        A. As early and often as possible.                 ...
LabVIEW Build TypesLots of deliverables can be built using LabVIEW               EXE         Installer            DLL     ...
LabVIEW Build ProcessTypical LabVIEW Build and Release Process                                            PUSHING THE13   ...
LabVIEW Build Process using CITypical CI Server Automated Build Process                                            PUSHING...
Direct Business Value Benefits                                PUSHING THE15                                LIMITS OF LABVIEW
Voila!         Our demo build server revisited ...                                               PUSHING THE16            ...
Basic Build Automation Development                               Image via: http://xkcd.com/303/                          ...
Continuous Integration with LabVIEWWhat is Continuous Integration?What is Jenkins?Build Automation ProcessConsiderations f...
LabVIEW from the Command LineEasiest way to call LabVIEW Build VIs is viacommand line!        Use Batch File from CI Soft...
LabVIEW from the Command LineCalling LabVIEW.exe from the command line...        LabVIEW can only receive one set of comm...
LabVIEW from the Command LineUse Application Property node to read command linearguments        LabVIEW is ALWAYS the 0th...
When Builds Break ...     Demo of package build server error detection                                            PUSHING ...
Build Design ConsiderationsSeparate project build steps for pipeliningSeparate project build steps for distributing builds...
Build Time ConsiderationsCI Server Impact on Short Build Times        Fast feedback to developer isolates debugging     ...
JKI’s Continuous Build ToolChain                      JKI VI Tester                                      PUSHING THE25    ...
Questions                    Questions?            Thank you for participating!                                           ...
Need Help?       Let JKI build your CI system.                Automated Build VIs           Source Code Control Integratio...
Contact Us             jki.net /contact                                PUSHING THE28                                LIMITS...
Upcoming SlideShare
Loading in …5
×

NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integration With LabVIEW

10,000 views

Published on

Slides from JKI's NIWeek 2012 technical session, "Fire and Forget: Bulletproof Builds Using Continuous Integration With LabVIEW," presented by Omar Mussa.

With continuous integration (CI), you never have to manually build code. A build server automatically builds the application when new code changes are checked in and sends reports when problems are encountered. Learn how JKI created an automated CI system for LabVIEW code using free, off-the- shelf tools.

Published in: Technology, Business
  • Be the first to comment

NIWeek 2012: Fire and Forget / Bulletproof Builds Using Continuous Integration With LabVIEW

  1. 1. PUSHING THE LIMITS OF LABVIEWFire and Forget:Bulletproof Builds Using ContinuousIntegration With LabVIEW http://xkcd.com/974/Omar MussaJKI Senior Engineer & Professional Services Manager
  2. 2. Continuous Integration with LabVIEWWhat is Continuous Integration?What is Jenkins?Build Automation ProcessConsiderations for LabVIEW Build Automation PUSHING THE2 LIMITS OF LABVIEW
  3. 3. Continuous Integration with LabVIEWWhat is Continuous Integration?What is Jenkins?Build Automation ProcessConsiderations for LabVIEW Build Automation PUSHING THE3 LIMITS OF LABVIEW
  4. 4. Continuous Integration In ActionLet’s start with a demo! FIRE! Image via: pasukaru76 with Creative Commons Image via: Esparta Palma with Creative Commons PUSHING THE4 LIMITS OF LABVIEW
  5. 5. What is Continuous Integration?End to end automation of your build and releaseprocess... PUSHING THE5 LIMITS OF LABVIEW
  6. 6. Continuous Integration with LabVIEWWhat is Continuous Integration?What is Jenkins?Build Automation ProcessConsiderations for LabVIEW Build Automation PUSHING THE6 LIMITS OF LABVIEW
  7. 7. About JenkinsOpen Source (Est. ~2007)Many usersMany pluginsSome learning curve but overall easy to useHas GUI PUSHING THE7 LIMITS OF LABVIEW
  8. 8. What Problems Does Jenkins Solve?  Build Triggering (Web Hooks or SCC Polling)  Build Execution Order (Build Pipelines, etc)  Build History  Unit Test History  Build Failure Notification PUSHING THE8 LIMITS OF LABVIEW
  9. 9. Poking around in Jenkins Let’s take a look around ... PUSHING THE9 LIMITS OF LABVIEW
  10. 10. Continuous Integration with LabVIEWWhat is Continuous Integration?What is Jenkins?Build Automation ProcessConsiderations for LabVIEW Build Automation Image via: http://xkcd.com/303/ PUSHING THE10 LIMITS OF LABVIEW
  11. 11. Build PlanningQ. When do we start making builds of our project? A. As early and often as possible. PUSHING THE11 LIMITS OF LABVIEW
  12. 12. LabVIEW Build TypesLots of deliverables can be built using LabVIEW EXE Installer DLL Package PPL Source Zip PUSHING THE12 LIMITS OF LABVIEW
  13. 13. LabVIEW Build ProcessTypical LabVIEW Build and Release Process PUSHING THE13 LIMITS OF LABVIEW
  14. 14. LabVIEW Build Process using CITypical CI Server Automated Build Process PUSHING THE14 LIMITS OF LABVIEW
  15. 15. Direct Business Value Benefits PUSHING THE15 LIMITS OF LABVIEW
  16. 16. Voila! Our demo build server revisited ... PUSHING THE16 LIMITS OF LABVIEW
  17. 17. Basic Build Automation Development Image via: http://xkcd.com/303/ PUSHING THE17 LIMITS OF LABVIEW
  18. 18. Continuous Integration with LabVIEWWhat is Continuous Integration?What is Jenkins?Build Automation ProcessConsiderations for LabVIEW Build Automation PUSHING THE18 LIMITS OF LABVIEW
  19. 19. LabVIEW from the Command LineEasiest way to call LabVIEW Build VIs is viacommand line!  Use Batch File from CI Software  Requires some design considerations  Forcing batch file to wait for build to complete  Error handling PUSHING THE19 LIMITS OF LABVIEW
  20. 20. LabVIEW from the Command LineCalling LabVIEW.exe from the command line...  LabVIEW can only receive one set of command line parameters per call  LabVIEW must be closed before new build is started  [ProgramFiles]LabVIEW.exe “[path to VI]” -- [user arguments]  Build VI must be set to “Run When Opened” PUSHING THE20 LIMITS OF LABVIEW
  21. 21. LabVIEW from the Command LineUse Application Property node to read command linearguments  LabVIEW is ALWAYS the 0th elementBest Practice  Pass the build number to your build VI PUSHING THE21 LIMITS OF LABVIEW
  22. 22. When Builds Break ... Demo of package build server error detection PUSHING THE22 LIMITS OF LABVIEW
  23. 23. Build Design ConsiderationsSeparate project build steps for pipeliningSeparate project build steps for distributing buildsAvoid SCC commits within build workspaces duringbuild process  Only want to trigger builds from developer commits, not from build process itself  Generally means that build number is passed to build process (via Jenkins)Avoid development on build server itself PUSHING THE23 LIMITS OF LABVIEW
  24. 24. Build Time ConsiderationsCI Server Impact on Short Build Times  Fast feedback to developer isolates debugging  Platform for unit test executionCI Server Impact on Long Build Times  Builds are still run ~daily  Not ‘stuck’ at end of project with broken build  Frees up a lot of developer time that would otherwise be wasted waiting for builds to execute. PUSHING THE24 LIMITS OF LABVIEW
  25. 25. JKI’s Continuous Build ToolChain JKI VI Tester PUSHING THE25 LIMITS OF LABVIEW
  26. 26. Questions Questions? Thank you for participating! PUSHING THE26 LIMITS OF LABVIEW
  27. 27. Need Help? Let JKI build your CI system. Automated Build VIs Source Code Control Integration Unit Test Design Cloud-hosted Build Servers Jenkins Setup, Integration, and Maintenance Reliable, Repeatable, Secure. PUSHING THE27 LIMITS OF LABVIEW
  28. 28. Contact Us jki.net /contact PUSHING THE28 LIMITS OF LABVIEW

×