Using Jenkins with LabVIEW for Continuous Integration

Continuous Integration (CI) is increasingly common among LabVIEW users and all software developers. For anyone not familiar, CI aims to automate the previously laborious task of building your software for distribution, either as a reuse library or a final product.

In case the benefits aren’t clear, automating this task is beneficial because:

  • It ensures it’s done early and often throughout development – many people otherwise wait until the end, only to discover new problems in the last mile
  • It can be used to automate regression and integration testing prior to build, which helps find bugs early and often
  • It offloads build processes from a development machine and can be used to parallelize several large build processes

One of the most popular and ubiquitous tools for this task is Jenkins, and I’m increasingly seeing a lot of our users employ a server that has Jenkins and LabVIEW for the sake of nightly build processes.

While many of you have figured this approach out on your own, I did want to share a tool from our Systems Engineering group that you can evaluate if you’re thinking about propping up your own Jenkins server.

This free tool provides a web service API that can be integrated with Jenkins for the sake of CI.

Enjoy:  LabVIEW CI Project

 

 

Advertisements
Posted in Software Engineering Process, Tools | Leave a comment

Send me your worst LabVIEW VI

I always enjoy the shock and awe of showing a picture of a VI that instantly makes an audience reel with pain, but I’ve been using the same one for far too long.

If anyone has an especially offensive block diagram that they’re willing to share, please send it to me. It might make an appearance in an upcoming Developer Days keynote!

Send them to me at Elijah.Kerry@ni.com.

Posted in Uncategorized | 2 Comments

Understanding Relative and Symbolic Paths in LabVIEW

If you haven’t seen it, check out Chris Malato’s recent blog detailing how LabVIEW resolves links to dependencies: Understanding Relative and Symbolic Paths in LabVIEW.

The concepts covered in his post are important for anyone who is working through how and where to manage components of a large system that they’re attempting to distribute and/or manage the configuration of.

Posted in Uncategorized | 3 Comments