From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW Architects Forum

cancel
Showing results for 
Search instead for 
Did you mean: 

Continuous Integration, from a conceptual point of view

Hello all,

Fabiolas post about proposing topics for the LAF meetings made me write all this down:

I've been toying around with Continuous Integration during the last weeks, and I got a lot of things up and running:


  • We're using git and gitlab for version control (and issue tracking)
  • Whenever I push, gitlab notifies a Jenkins CI service (running on a Mac)
  • On the same Mac, I have one virtual machine (VMware Fusion) for every LabVIEW / Windows version our customer projects require
  • The Jenkins master on the Mac starts a slave task on the Jenkins client running in the virtual machine that executes a build specification (I've been using "1-click-building" for some time now, so no problems there)

I'm not finished with these things, but they work. Where I'm rather stuck, and where I would very much appreciate other people's input and experience, is how to plan or organize my sources so that I can automatically build:

  1. Source Distributions for the last 3 or 4 LabVIEW versions from a LabVIEW 2014 project (collection of driver VIs for third-party hardware)
  2. Executables for LabVIEW 2014 and/or older LabVIEW versions from a LabVIEW 2014 project (customer-specific application) that contains files without blockdiagram (amongst others, the source distributions mentioned above)

What I'm wondering is:

  • Is it necessary (or will it make things easier) to have all sources of a project saved for multiple versions of LabVIEW in one repository (e.g. in subfolders called /LabVIEW2014, /LabVIEW2013, ...)? I don't like that idea, though.
  • How can I handle the fact that my projects do include VIs compiled for one specific LabVIEW version?
  • Can I have the master pull the sources from the gitlab server, and then have the slaves access these sources locally (then the virtual machines wouldn't have to be connected to the internet)? How could I trigger the build process if the Jenkins task was executed on the master instead of the slaves?
  • Better have all LabVIEW versions in one virtual machine?

I don't know if all of this is making any sense to you guys, but I'd appreciate some feedback on wether you think that's possible at all (with reasonable efforts), and how to get there.


-Joerg




DSH Pragmatic Software Development Workshops (Fab, Steve, Brian and me)
Release Automation Tools for LabVIEW (CI/CD integration with LabVIEW)
HSE Discord Server (Discuss our free and commercial tools and services)
DQMH® (The Future of Team-Based LabVIEW Development)


0 Kudos
Message 1 of 5
(8,340 Views)

Hi Joerg,

We will be talking about Continous Integration in the next meeting on Tuesday, May 19. It will be a little late for you, but I hope you can join us.

If not, we will record it as usual.

https://decibel.ni.com/content/docs/DOC-42560

Regards,

Fab

For an opportunity to learn from experienced developers / entrepeneurs (Steve, Joerg, and Brian amongst them):
Check out DSH Pragmatic Software Development Workshop!

DQMH Lead Architect * DQMH Trusted Advisor * Certified LabVIEW Architect * Certified LabVIEW Embedded Developer * Certified Professional Instructor * LabVIEW Champion * Code Janitor

Have you been nice to future you?
Message 2 of 5
(6,306 Views)

Thanks for the heads-up, Fab!

Being a night owl I don't mind the time, but I'm travelling on that night, so not sure if I can make it.




DSH Pragmatic Software Development Workshops (Fab, Steve, Brian and me)
Release Automation Tools for LabVIEW (CI/CD integration with LabVIEW)
HSE Discord Server (Discuss our free and commercial tools and services)
DQMH® (The Future of Team-Based LabVIEW Development)


0 Kudos
Message 3 of 5
(6,306 Views)

Joerg Hampel wrote:

Thanks for the heads-up, Fab!

Being a night owl I don't mind the time, but I'm travelling on that night, so not sure if I can make it.

Well, you will have to wait for the recording then. Hope you can make it.

Regards,

Fab

For an opportunity to learn from experienced developers / entrepeneurs (Steve, Joerg, and Brian amongst them):
Check out DSH Pragmatic Software Development Workshop!

DQMH Lead Architect * DQMH Trusted Advisor * Certified LabVIEW Architect * Certified LabVIEW Embedded Developer * Certified Professional Instructor * LabVIEW Champion * Code Janitor

Have you been nice to future you?
0 Kudos
Message 4 of 5
(6,306 Views)

Glad I could make it, thanks to the guys presenting!

I only missed the last 10 minutes (and the Pizza, of course) because my cellular network went on the fritz, so I'm still looking forward to viewing the recording.




DSH Pragmatic Software Development Workshops (Fab, Steve, Brian and me)
Release Automation Tools for LabVIEW (CI/CD integration with LabVIEW)
HSE Discord Server (Discuss our free and commercial tools and services)
DQMH® (The Future of Team-Based LabVIEW Development)


Message 5 of 5
(6,306 Views)