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
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
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!
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 ?
I guess Electric Commander from Electric Cloud should be mentioned too.
This was my first (and so far only) experience of such tools.
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
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.