01-25-2016 10:06 AM - edited 03-08-2017 05:54 PM
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:
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.
01-26-2016 12:59 AM
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... )
01-26-2016 09:17 AM
I came as far as this:
Buld Server.vi gives me an error
Seems the VI can't find Installation\Volume\setup.exe since the subfolder is non existent in the project folder.
01-26-2016 10:36 AM
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.
01-27-2016 03:50 AM
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:
Thanks for your support
01-27-2016 09:33 AM
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.
"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.
01-27-2016 09:50 AM
I explicitely started LabVIEW as Admin and here we go.
Now I'm getting another error
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
01-27-2016 09:57 AM
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.
01-28-2016 07:31 AM
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
01-28-2016 10:43 AM
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?