LabVIEW Development Best Practices Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

Automatic Build System for LabVIEW

Hi,

During the holidays I started thinking of creating a build system for LabVIEW.

I would like to see if there is any interest in a shared effort on such a project.

The high level spec is:

Log in to a web page,

Specify a build (SVN URL, version, lvproj, Build Description (tests etc))

Press play on tape

..... Magic .....

Download the built software from a link

Does anyone have this ?

Would you want this?

Rough draft / Mindmap

http://prezi.com/veoj-lrmcd5s/laym/

Code:

https://subversion.assembla.com/svn/Laym/trunk

/MArcus

Message 1 of 29
(27,224 Views)

I suggest you mention this idea over on lavag.org too - you might get more of a response over there.

cheers,

Chris





Copyright © 2004-2018 Christopher G. Relf. Some Rights Reserved. This posting is licensed under a Creative Commons Attribution 2.5 License.
0 Kudos
Message 2 of 29
(2,902 Views)

The idea is interesting indeed.

Last week a friend sent me this link : http://xkcd.com/303/ and I started dreaming about something similar to distcc for LabVIEW.


We have two ears and one mouth so that we can listen twice as much as we speak.

Epictetus

Antoine Chalons

0 Kudos
Message 3 of 29
(2,902 Views)

There is alreay a number of tools / resource on automatically building executables and deployment packages, these might save you time in getting your project off the ground.

Look at these I hope they help

http://decibel.ni.com/content/docs/DOC-2168  -- NI community    "Build Application Programmatically using LabVIEW"

http://decibel.ni.com/content/groups/large-labview-application-development/blog/2010/06/23/programma...  "programmatic build practice for LabVIEW

as  Chris suggested there are a number things on lavag.org that would also be of interest.

http://lavag.org/files/file/101-build-script/  --  Jonathon Green's build script tool


Danny Thomson
Message 4 of 29
(2,902 Views)

At my company (Midroc Automation, Sweden) we use Hudson Continous Integration system for this.

http://hudson-ci.org/

It needs some minor tweaks and support VI's like the ones mentioned above, but once configured it works really nice!

Message 5 of 29
(2,902 Views)

LeifS  

  Thank you very much for that link, I have not come across Hudson's before, I was looking at Cruise control http://cruisecontrol.sourceforge.net/ which I have seen used in the past for text programming languages and continous integration.  Knowing that you have manged to integrate LabVIEW into another tool makes me think I will have a good look at this.

Do you have a source control tool involved with your integration as well?  Is there an tips / guides you can pass on or is it all compnany confidential ?

cheers

Dannyt

Danny Thomson
0 Kudos
Message 6 of 29
(2,902 Views)

I guess Electric Commander from Electric Cloud should be mentioned too.

This was my first (and so far only) experience of such tools.

http://www.electric-cloud.com/products/electriccommander.php

It was used for continuous integration in a mobile device platform project, where LabVIEW was used for testing.

An epic failure, but still I learned a lot

0 Kudos
Message 7 of 29
(2,902 Views)

danny_t wrote:

Do you have a source control tool involved with your integration as well?  Is there an tips / guides you can pass on or is it all compnany confidential ?

We use Subversion as source control and it is integrated into the Hudson build system.

Hudson is configured to do a clean checkout of my LabVIEW project from the subversion server and then starts to build the specified Build Specification in the project.

The build process is monitored by Hudson, and afterwards, if the build was successful, the artifacts (e.g. EXE) is pulled into Hudson and published there.

I haven't yet invoked any automatic tests as part of the build process, it's the next thing of my todo list, but I believe that it will be straight-forward since the steps will be very similar to launching the LabVIEW compiler/builder.

This Hudson is installed on a Linux server and therefore we must use another Windows-based server for the build process, since we're using LabVIEW for Windows.

This is supported out of the box by Hudson with the Hudson-slave-process installed on the Windows machine.

(We also have another Hudson master-server installed on Windows, so that works and then you don't need the slave-process)

The tweaks i mentioned is mainly how to configure the launch of programmaticbuild.vi, and the fact that we need multiple checkouts (projectdir, user.lib dirs ...) that is not below the same top folder as Hudson expects.

This is solved by using batch files in the build process:

  1. All code is pulled from SVN to separate folders in the Hudson <workspace>. folders that should be under user.lib is checked out under <workspace>/user.lib/
  2. user.lib folders is copied by a batchfile to the correct place
  3. Hudson calls the (slightly modified) programmaticbuild.vi with the path to my LabVIEW project as argument
  4. another batchfile copies the EXE (...MSI or whatever..) back to a subfolder under <workspace> so that Hudson can publish the result and artifacts.

Hope this will give you a little bit more understanding of how we've done it.

/Leif

0 Kudos
Message 8 of 29
(2,902 Views)

Thanks Leif!

Valuable information,

You seem to be more or less were i'd like to be

/MArcus

0 Kudos
Message 9 of 29
(2,902 Views)

Thank you for that LeifS very interesting

Danny Thomson
0 Kudos
Message 10 of 29
(2,902 Views)