Continuous Integration

cancel
Showing results for 
Search instead for 
Did you mean: 

LabVIEW Continuous Integration License?

Has anyone bought/tried the new NI Continuous Integration license mentioned here? https://forums.ni.com/t5/LabVIEW-Idea-Exchange/Dedicated-License-for-using-LabVIEW-in-Continuous-Int...

 

I cannot find any information about this license on NIs website and the only references I can find to it are on Farnell/Newark etc. (e.g. https://www.newark.com/ni/786474-35/labview-continuous-integration/dp/15AJ1672)

 

We're looking at moving our current build setup to one or more AWS VMs. Ideally we'd like to have a master image with LabVIEW installed that we can clone as/when needed for new projects.

 

Some questions:

  • How does this license work? Do we have to have one license per AWS VM instance (what if we take an image and clone it)? Can we 'pool' the licenses together on our VLM installation (i.e. so if we had 2 licenses we could only build 2 projects simultaneously)?
  • Does it only work with specific/newer versions of LabVIEW or can we use it with older projects in LabVIEW 2013/2017?
  • Are there any practical limitations in terms of the IDE...can we still automate unit tests / VI analyser etc.? If we need to debug a build step, can we open it up in the IDE.

 

 


LabVIEW Champion, CLA, CLED, CTD
(blog)
0 Kudos
Message 1 of 20
(4,901 Views)

I have been working a lot with LabVIEW CI/CD lately and the licence model would also interest me. It's funny that there doesn't seem to be any public information about this.

0 Kudos
Message 2 of 20
(4,804 Views)

@Sam_Sharp

 

Hi.  I'm going to provide answers to your questions here but please DM me for follow up on this.

 

The CI license was developed as purely a license.  When you buy it, NI ships you an activation code and nothing else.  This license assumes you already own development copies of LabVIEW and simply provide a license key to use your existing LabVIEW on a CI/CD machine, specifically for automated build/test scenarios, not development.  The license doesn't really get into "VM" scenarios but the way it was designed, as long as you are only spinning up 1  CI machine at a time, you can use it for as many images as you need.  Internal to NI we constantly spin up and destroy images and the software we use for building/testing has similar licenses. 

 

Having said that, this is an area I would love to have feedback on.  We have been evaluating multiple different approaches to these CI/CD workflows and I'm actively working on modifying our current approach.  I'd love to know what other tools you are using on those CI/CD workflows and how they interact with VM images.

 

The LabVIEW 2021 release (being released in the very near future) has several changes related to this, including being able to be fully automated for the installation so you no longer need to have the software activated on the images you spin up, you can make the activation part of the image spin-up and do it all through command-line calls.  There are other changes I'm working on as well so please email/DM me to talk about this more.

Eric Reffett | Director, Product Management | 1.512.683.8165 | ni.com
Message 3 of 20
(4,778 Views)

Eric,

            I'm not sure how feasible this is, but in my mind the ultimate solution would be for NI to maintain of set LabVIEW Docker images. You just pull one and spin it up as needed. Somehow just limit access to people with a current SSP, or maybe some additional addon that cost a few extra bucks.

 

Sam

Sam Taggart
CLA, CPI, CTD, LabVIEW Champion
DQMH Trusted Advisor
Read about my thoughts on Software Development at sasworkshops.com/blog
GCentral
Message 4 of 20
(4,774 Views)

For how we and our customers use server-side automation*, installing LabVIEW for each pipeline (or even for each job) doesn’t sound feasible. If it’s more or less a regular LV install process, that would take way too much time I think. We‘re already looking at ways to streamline processes like VI Analyzer or generation of documentation. Adding a full installation would be just the opposite. 

* We’re not really „integrating continuously“ (although we use the GitLab CI engine, Jenkins or Azure Pipelines to trigger automated processes) and I bet most people here don’t either. Or do you?




DSH Pragmatic Software Development Workshops (Fab, Steve, Brian and me)
Release Automation Tools for LabVIEW (CI/CD integration with LabVIEW)
HSE Discord Server (Discuss our free and commercial tools and services)
DQMH® (The Future of Team-Based LabVIEW Development)


0 Kudos
Message 5 of 20
(4,767 Views)

I agree the install would kill one of the main advantages of CI which is rapid feedback.

 

A Docker Image or Vagrant Box with LabVIEW preinstalled would solve a lot of that. You still might have to install a few addons, but you could build your own Docker with the LabVIEW one as the base. That would be a one-time hit.

Sam Taggart
CLA, CPI, CTD, LabVIEW Champion
DQMH Trusted Advisor
Read about my thoughts on Software Development at sasworkshops.com/blog
GCentral
Message 6 of 20
(4,763 Views)

@joerg.hampel wrote:



* We’re not really „integrating continuously“ (although we use the GitLab CI engine, Jenkins or Azure Pipelines to trigger automated processes) and I bet most people here don’t either. Or do you?


I certainly try to. I can't say that I succeed on every project. Although can you really call it CI if you are a one man shop? Who am I integrating my changes with? myself?

Sam Taggart
CLA, CPI, CTD, LabVIEW Champion
DQMH Trusted Advisor
Read about my thoughts on Software Development at sasworkshops.com/blog
GCentral
0 Kudos
Message 7 of 20
(4,758 Views)

@joerg.hampel wrote:

For how we and our customers use server-side automation*, installing LabVIEW for each pipeline (or even for each job) doesn’t sound feasible. If it’s more or less a regular LV install process, that would take way too much time I think. We‘re already looking at ways to streamline processes like VI Analyzer or generation of documentation. Adding a full installation would be just the opposite. 


Perhaps I misread Eric's comment, but I got the impression that the goal with 2021 (I'm guessing that's the comment you're posting in relation to here?) is to allow installation in some image/VM/container/blob file on disk (whatever), but not activate it.

Then when you run the image/VM/container/blob-file-on-disk, you'd activate the license as part of the process (and presumably then deactivate it after finishing).

My hopeful reading of this is that it will simplify the relationship between (number of VMs/containers) and (number of licenses) when containers/VMs/images are not in continuous use...

If we get really lucky(?), then it might make it so we can license containers (not images, here describing Docker but similar ideas probably apply elsewhere) as we use them, and that will (perhaps?) remove some of the difficulties when taking an image created on one machine (e.g. developer PC, maybe using a different host license) and creating containers from it on another (e.g. build machine, maybe using the CI license - although my CI runs with a dev license).

 


@joerg.hampel wrote:

* We’re not really „integrating continuously“ (although we use the GitLab CI engine, Jenkins or Azure Pipelines to trigger automated processes) and I bet most people here don’t either. Or do you?


I had to go read a definition of "Continuous Integration" again to try figure out what you mean, but I'm still not certain. The definition I read does make it seem like Sam's comment on single-person setups falls away from CI, but for me, my Jenkins server has a few pipelines and one of those builds all of my PPLs for multiple targets. When I want to update code, I use a specific tag in my git commits and then it triggers builds via a GitHub webhook notification.

 

If I can (find time to, and then succeed at) implement these build processes instead in Docker containers (currently they run on the VM running the Jenkins instance, i.e. the root/master node) then I will presumably cut build times significantly (because I can run debug/release and Win32/64+cRIO in parallel, a 6x improvement in an ideal case, although some steps would need to be duplicated in each case (cloning repos, etc) so it wouldn't be quite that good...)

 

The stumbling block isn't actually with NI - although an easier time creating/managing/licensing images and containers would certainly help - for me my issues are rather more mundane and relate to nested virtualization being unavailable on my current host... I also want to move to NIPKGs perhaps but there are a few details I haven't made my mind up about and I had hoped that I could rearrange things to improve debugging PPLs on cRIO, but apparently that's a "wont-fix" bug.


GCentral
0 Kudos
Message 8 of 20
(4,732 Views)

@Sam Taggart,

 

If you show me how to get Docker to install DRIVERS as well, I'm all in on providing Docker Images as an alternative installation.  I'd love to do a whole brainstorming on just that one topic because I really love the workflow of a basically-zero-install for all kinds of software.  I just can't get the virtualizing "layers" that exist today to handle all of the software I need for a good T&M application.  There is always some part that they want me to just include in the base install layer.

 

The main thing we added in 2021 is the ability to leave the LabVIEW layer unactivated (since you aren't sure of which computer you are spinning the image up on) and just calling the activation as a setup step using command lines/scripts.  You couldn't do that before so the activation step was always a pain.

Eric Reffett | Director, Product Management | 1.512.683.8165 | ni.com
Message 9 of 20
(4,719 Views)

@EricR wrote:

If you show me how to get Docker to install DRIVERS as well, I'm all in on providing Docker Images as an alternative installation.  I'd love to do a whole brainstorming on just that one topic because I really love the workflow of a basically-zero-install for all kinds of software.  I just can't get the virtualizing "layers" that exist today to handle all of the software I need for a good T&M application.  There is always some part that they want me to just include in the base install layer.

Do you want the drivers to work? As in, do you want your actual T&M application to run from a Docker container? Or are you instead wanting to build something (perhaps exe) in a Docker container that uses the drivers (e.g. DAQmx)?

 

I demoed using Docker to build an application for cRIO at last year's GLA summit, if the latter (including running it successfully on actual hardware), and separately I believe I had installable DAQmx builds, although my demo didn't include any DAQmx code...

For the former, I'm not so sure - but I think NI/you could perhaps make it possible... If you DM me or send an email, I can give you more information about the specific nipkg files that I had problems with installing inside a Docker container - you might be able to indicate if you believe these are true blockers or not...

 


@EricR wrote:

The main thing we added in 2021 is the ability to leave the LabVIEW layer unactivated (since you aren't sure of which computer you are spinning the image up on) and just calling the activation as a setup step using command lines/scripts.  You couldn't do that before so the activation step was always a pain.


I'm hopeful that this is great news. Will it work with all licenses? (I believe VLMs already had an easier time with Docker...)

What are the restrictions? (Or will this information be part of NI-Connect and not yet publicly shared?)


GCentral
0 Kudos
Message 10 of 20
(4,715 Views)