From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Continuous Integration

cancel
Showing results for 
Search instead for 
Did you mean: 

The LabVIEW Continuous Integration Project

We are pleased to (finally) announce the initial release of the LabVIEW Continuous Integration Project.

 

Software developers have long understood the benefits continuouse integration provides, including early warning of broken code or conflicting changes, automatic regression testing for all changes, and constant access to a current stable build.  But the barrier to entry has been too high for most LabVIEW Developers.

 

We hope to change that with this project.

 

The project consists of two components:  a web service that allows Jenkins to  perform jobs in the LabVIEW space, and a LabVIEW tool to configure those jobs.  The former runs on a build server, most likely co-located with your Jenkins server.  The latter is installed with LabVIEW on your development machines.

 

This first release supports three types of jobs:

  1. An initialize job that kicks off the build.  You can configure this step to perform source code synchronizations.
  2. A LabVIEW build job that will run any LabVIEW build specification.
  3. A Run VI job that will run a VI.

 

Your build artifacts are stored in Jenkins, as with any other Jenkins build step.

 

Both the web service and CI Builder components are extensible frameworks.  You can easily add new job types, and we have several in mind, including VI Tester and VI Analyzer jobs.

 

This project is very much a work in progress.  We welcome your complaints, bug reports, and feature requests.  We'll take compliments, too.

 

The source code was written in LabVIEW 2014, but should compile and run in later versions.

 

You will need to download and install the Launch Remote Actors package, found here:  Introducing remote launch for Actors

 

You will also need to download and install the Configuration Editor Framework (CEF), revision 2.1.1.105 or later, before installing the CI Builder.  CEF is available through the LabVIEW Tools Network.  In VI Package Manager, search the "All" or "Not Installed" packages lists for "Configuration Editor Framework."

 

Be sure to download and read the documentation, which includes instructions for installation and configuration.

Message 1 of 71
(18,344 Views)

Thanks for this!

Went through the documentation, haven't installed anything yet, so I'm wondering if this also works with my "cheap setup" where Jenkins is running as a service on my development machine  using my VLA license while I'm not using LabVIEW (which happens from time to time... )

0 Kudos
Message 2 of 71
(16,620 Views)

I came as far as this:

Buld Server.vi gives me an error

tes.png

Seems the VI can't find Installation\Volume\setup.exe since the subfolder is non existent in the project folder.

0 Kudos
Message 3 of 71
(16,621 Views)

At a guess, the folder wasn't created due to an access rights issue.  Be sure you have write access to the LabVIEW Continuous Integration folder - don't just check to see if the folder is marked read/write, but that your account has full access.  It may also be necessary to run LabVIEW as an administrator.

0 Kudos
Message 4 of 71
(16,621 Views)

I have retried, but no change unfortunately.

I have started VIPM explicitely as Admin and kinda opened up the LabVIEW Continouos Integration folder. But it seems, the Installer subdir is not copied. Other subfolders have been created:

tes.pngThanks for your support

0 Kudos
Message 5 of 71
(16,621 Views)

The installer subdirectory gets created one level up, in the LabVIEW Continuous Integration folder.  It gets created as part of the build process,  When I have seen this error on our test installations, it was because I did not have access rights to the LVCI folder.  You can set those rights by opening Windows Explorer, navigating to (in this case) the National Instruments folder, right clicking on it, and selecting properties.  Go to the Security tab, and see what the access rights are for users.

Untitled.png

"Users" should have full control of the folder.

You can bypass all of this by running LabVIEW as an administrator.

We're still struggling with the installer experience.  Part of the issue is that, for a lot of reasons, we really do want you to build your own CI Server executable.  Hopefully, we'll be able to get to something less fiddly in the future.

0 Kudos
Message 6 of 71
(16,621 Views)

I explicitely started LabVIEW as Admin and here we go.

Now I'm getting another error

tes.png

But as far as I have found out, there seems to be an issue with my AF in the vi.lib... still investigating

Don't bother about the installer experience! I'm happy to serve as worst case tester

Message 7 of 71
(16,621 Views)

Oli_Wachno wrote:


                       

Don't bother about the installer experience! I'm happy to serve as worst case tester


                   

And we thank you for that. 

More seriously, we can explore moving the LVCI folder somewhere else (other than your application folder), and see how that works.  There may be some challenges with making sure everything points to the right place, though.

0 Kudos
Message 8 of 71
(16,621 Views)

So... here is my "I am still working on it" message for the day.

I have fixed the Actor Framwork within my vi.lib .... et voila.... the service can be installed successfully

Things I stumbled over:

- Don't use localhost instead of an explicit IP adress when running on the same computer

- if user management has been configured on Jenkins, connecting to it as user annonymus will fail.

What I'm working on:

The test project does run successfully but the artifact handling causes the build to fail eventually.

ERROR: Keine Artefakte gefunden, die mit dem Dateisuchmuster "*" übereinstimmen. Ein Konfigurationsfehler?

ERROR: '*' liefert keine Übereinstimmung.

Build step 'Artefakte archivieren' changed build result to FAILURE

Finished: FAILURE

Sth like: No artifacts found matching pattern "*".

Guess this is still a configuration error on my Jenkins.... I keep searching

0 Kudos
Message 9 of 71
(16,621 Views)

Oli_Wachno wrote:


                       

Things I stumbled over:

- Don't use localhost instead of an explicit IP adress when running on the same computer

- if user management has been configured on Jenkins, connecting to it as user annonymus will fail.

That's good feedback, thanks.

What I'm working on:

The test project does run successfully but the artifact handling causes the build to fail eventually.

ERROR: Keine Artefakte gefunden, die mit dem Dateisuchmuster "*" übereinstimmen. Ein Konfigurationsfehler?

ERROR: '*' liefert keine Übereinstimmung.

Build step 'Artefakte archivieren' changed build result to FAILURE

Finished: FAILURE

Sth like: No artifacts found matching pattern "*".

I don't speak German.  Google translates this as:

No artifacts found that "*" to match the search string file. A configuration error?

'*' Returns no match.
Is that correct?  Do you have full access to the workspace directory?


0 Kudos
Message 10 of 71
(16,621 Views)