Jump to content

Feature Guide: Using Dragon with Continuous Integration (Command-Line Build Tools)


Jim Kring
 Share

Recommended Posts

We'll have more to say about this topic very soon. For now, we'll just say that CI with Dragon involves programmatically (via the command-line) doing the following two key steps:

- Checking to see if a dragon project needs packages installed (whether globally or in it's virtual environment)
- Installing any required packages into a dragon project's global or virtual environment

We're actively working on the APIs required to do this. Please stay tuned and feel free to express your interest by commenting below :)

Link to comment
Share on other sites

  • Jim Kring changed the title to Feature Guide: Using Dragon with Continuous Integration (Command-Line Build Tools)

Jim, how will this differ from applying a .vipc file?

Or, put differently, would applying a .vipc file programmatically in a repository that also contains the .dragon file (and the /lv-venv directory) not install the necessary packages in the predefined places?

  • Like 1
Link to comment
Share on other sites

2 minutes ago, Joerg Hampel said:

Jim, how will this differ from applying a .vipc file?

Or, put differently, would applying a .vipc file programmatically in a repository that also contains the .dragon file (and the /lv-venv directory) not install the necessary packages in the predefined places?

Great question @Joerg Hampel.

It's basically the same thing, but requires the extra step of telling VIPM that you want to apply the .vipc (install the packages) into the virtual environment.

We're working on extending the VIPM API to allow for specifying an "lv-venv" when performing package installation/uninstallation actions.  That isn't quite there yet, since we've been focusing on the User Interface side of things, up to this point.

Is your team at a point where you'd like to try this? Keep me posted...

Link to comment
Share on other sites

Thanks for getting back so timely 🙂

No, we only installed Project Dragon today and I'm starting to think about the whole process/lifecycle, hence my question. But seeing as we build all the projects we host ourselves through CI, there will be an immediate need for the server side support once we start using the lv-venv. 

In the meantime, it would probably be ok if the .vipc on the build server is just installed to regular LabVIEW vi.lib. Would that work with the current version (i.e. is this the default or fallback behaviour)?

Link to comment
Share on other sites

That would probably work (we could do some tests), but it would be better to have the virtual environment under the project when it's built on the CI server.

When working on a project with a virtual environment, the project files will link to the installed package VIs in the virtual environment using relative paths.  So, if the package VIs are installed under LabVIEW, then there will be a process at the project's load time where LabVIEW searches for the package VIs -- it should be able to find them, given the package VIs are installed under the LabVIEW search path, yet these will not be the "expected" locations, given the linker info stored in the project VIs that call the package VIs.

Let's give it a try and see how it works.  We'll also work with you to make sure you can activate the virtual environment for the project at build time.

  • Like 2
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.