01-18-2011 04:48 AM
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
01-18-2011 07:15 AM
I suggest you mention this idea over on lavag.org too - you might get more of a response over there.
cheers,
Chris
01-18-2011 08:07 AM
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
01-18-2011 08:09 AM
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
01-18-2011 09:59 AM
At my company (Midroc Automation, Sweden) we use Hudson Continous Integration system for this.
It needs some minor tweaks and support VI's like the ones mentioned above, but once configured it works really nice!
01-18-2011 10:31 AM
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
01-18-2011 10:50 AM
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
01-19-2011 01:36 AM
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:
Hope this will give you a little bit more understanding of how we've done it.
/Leif
01-19-2011 05:28 AM
Thanks Leif!
Valuable information,
You seem to be more or less were i'd like to be
/MArcus
01-19-2011 05:38 AM
Thank you for that LeifS very interesting