LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Automated LabVIEW builds using Jenkins on Azure Devops

 

Hello LabVIEW community,

 

after a great deal of searching on the forums for discussions around build automation (i.e. Continuous integration & delivery) from cloud-based repositories, I've settled to post my question here as I found nothing.

 

I am familiar with automated builds using Jenkins on local/virtual server, pulling from a repo such as Tortoise SVN. However, I've had immense success delivering multiple customer software development projects on Azure DevOps, which is cloud-based. As a result I am seeking to learn how to setup Jenkins on Azure DevOps so that LabVIEW applications are built automatically on the cloud (Azure DevOps).

 

If you have experience or some understanding of how to set this up, could you give me some pointers?

 

Thanks in advance for taking the time! 

0 Kudos
Message 1 of 11
(6,219 Views)

Hi Michael,

 

Thanks for reaching out.

 

As far as my research has concluded, you my be the first documented case attempting this. I've found resources of LabVIEW with Azure, and with Jenkins and LabVIEW, but not both. Are you planning on using Teststand at all? We have some pretty good documentation of implementing Teststand and Jenkins. What have you attempted so far?

 

Keddy C.
Staff Software Engineer
National Instruments
0 Kudos
Message 2 of 11
(6,164 Views)

 

Hi Keddy, for now there's no plan to use TestStand for our current projects. I've attempted to create a Jenkins pipeline on Azure, but need to dig further on how to deal with the configuration and plug-in aspects of Jenkins. I'm posting on here to see if anyone is attempting this.

 

I'm aware of the Github alternative, but for some projects with regulatory constraints (e.g. ITAR, Controlled Goods...), code cannot be on non-local cloud. With Azure DevOps we have it hosted locally, hence my quest in this direction.

Any chance you could ask folks in the Systems Group about any pointers to achieve this?

 

Thanks again for taking the time!

0 Kudos
Message 3 of 11
(6,145 Views)

@50Michaels wrote:

 

Hi Keddy, for now there's no plan to use TestStand for our current projects. I've attempted to create a Jenkins pipeline on Azure, but need to dig further on how to deal with the configuration and plug-in aspects of Jenkins. I'm posting on here to see if anyone is attempting this.

 

I'm aware of the Github alternative, but for some projects with regulatory constraints (e.g. ITAR, Controlled Goods...), code cannot be on non-local cloud. With Azure DevOps we have it hosted locally, hence my quest in this direction.

Any chance you could ask folks in the Systems Group about any pointers to achieve this?

 

Thanks again for taking the time!


50Micahaels,

Any luck with implementing this?

 

I started down that route, but have now switched to Azure Pipelines for production. I was able to successfully set up automatic builds on a Jenkins Server with Azure DevOps as my git repo and build trigger. Let me know if you have any questions, I may be able to help

0 Kudos
Message 4 of 11
(5,765 Views)

I don't have experience with Azure to help here, but I'm curious about the problem. If you're still working on it, can you highlight what the problems you face with Azure are (compared with e.g. a local Jenkins server)?

 

I have a Jenkins server running on a remote machine hosted by my IT department, and that receives webhook POST requests from GitHub. With a local Git server (i.e. directory) you could certainly implement a polling alternative easily enough. Git Hooks would probably allow you to set up the POST requests too and obviate that need, but I haven't tried using server-side git hooks yet. My builds using LabVIEW (for PPLs on Windows and cRIO) are automated by my Jenkins machine.


GCentral
0 Kudos
Message 5 of 11
(5,750 Views)

@ryan_sheppard wrote:

@50Michaels wrote:

 

Hi Keddy, for now there's no plan to use TestStand for our current projects. I've attempted to create a Jenkins pipeline on Azure, but need to dig further on how to deal with the configuration and plug-in aspects of Jenkins. I'm posting on here to see if anyone is attempting this.

 

I'm aware of the Github alternative, but for some projects with regulatory constraints (e.g. ITAR, Controlled Goods...), code cannot be on non-local cloud. With Azure DevOps we have it hosted locally, hence my quest in this direction.

Any chance you could ask folks in the Systems Group about any pointers to achieve this?

 

Thanks again for taking the time!


50Micahaels,

Any luck with implementing this?

 

I started down that route, but have now switched to Azure Pipelines for production. I was able to successfully set up automatic builds on a Jenkins Server with Azure DevOps as my git repo and build trigger. Let me know if you have any questions, I may be able to help


 

I'm still on the endeavor ryan_sheppard, and feel optimistic knowing you've accomplished a similar objective using Azure DevOps.

 

In numerous attempts to setup a Jenkins build server on Azure DevOps, I realized I had some learning to do w.r.t Jenkins inner workings (things like this URL and so on threw me off). I've since started with reading about Jenkins to understand its fundamental workings while re-attempting to setup on Azure. Nonetheless, any pointers you can provide will be highly appreciated. In particular, 'gotchas'!

 

One question I do have for you is whether your 'Jenkins Server' is external to Azure?


Thanks in advance!

 

P.s: this is the beginnings of an initiative to implement a platform structure that will enable my team deploy real-time software updates to test stations across production plants without having to be physically present. Using the cloud means we are not bound by some fine constraints (too sensitive to talk about). Noting of course it is a controlled process.

0 Kudos
Message 6 of 11
(5,623 Views)

@cbutcher wrote:

I don't have experience with Azure to help here, but I'm curious about the problem. If you're still working on it, can you highlight what the problems you face with Azure are (compared with e.g. a local Jenkins server)?

 

I have a Jenkins server running on a remote machine hosted by my IT department, and that receives webhook POST requests from GitHub. With a local Git server (i.e. directory) you could certainly implement a polling alternative easily enough. Git Hooks would probably allow you to set up the POST requests too and obviate that need, but I haven't tried using server-side git hooks yet. My builds using LabVIEW (for PPLs on Windows and cRIO) are automated by my Jenkins machine.


cbutcher,

In my most recent response to ryan_sheppard, the challenge is the time it takes to make builds for deployment to systems across a manufacturing facility, then the deployment process itself. (There are standard practices that we cannot adopt such as deployment using remote access). It is from these inefficiencies and a strong drive for continuous improvement on the part of clients who want to ensure test solutions are responsive to manufacturing realities (e.g. changes in process capabilities driving change in test limits) that I'm looking to use a cloud solution. There are numerous reasons why we want to use the cloud:

1) continuous IT support will be minimal

2) IT will have no need to micro manage resources

3) globally accessible with no restrictions on team members to VPN into this and authenticate into that

4)...and other futuristic step changes I'm unable to disclose

 

Of course, I'm just trying to actualize what the software products world already achieved. I simply underestimated the deep dive involved.

0 Kudos
Message 7 of 11
(5,610 Views)

@50Michaels wrote:

@ryan_sheppard wrote:

@50Michaels wrote:

 

Hi Keddy, for now there's no plan to use TestStand for our current projects. I've attempted to create a Jenkins pipeline on Azure, but need to dig further on how to deal with the configuration and plug-in aspects of Jenkins. I'm posting on here to see if anyone is attempting this.

 

I'm aware of the Github alternative, but for some projects with regulatory constraints (e.g. ITAR, Controlled Goods...), code cannot be on non-local cloud. With Azure DevOps we have it hosted locally, hence my quest in this direction.

Any chance you could ask folks in the Systems Group about any pointers to achieve this?

 

Thanks again for taking the time!


50Micahaels,

Any luck with implementing this?

 

I started down that route, but have now switched to Azure Pipelines for production. I was able to successfully set up automatic builds on a Jenkins Server with Azure DevOps as my git repo and build trigger. Let me know if you have any questions, I may be able to help


 

I'm still on the endeavor ryan_sheppard, and feel optimistic knowing you've accomplished a similar objective using Azure DevOps.

 

In numerous attempts to setup a Jenkins build server on Azure DevOps, I realized I had some learning to do w.r.t Jenkins inner workings (things like this URL and so on threw me off). I've since started with reading about Jenkins to understand its fundamental workings while re-attempting to setup on Azure. Nonetheless, any pointers you can provide will be highly appreciated. In particular, 'gotchas'!

 

One question I do have for you is whether your 'Jenkins Server' is external to Azure?


Thanks in advance!

 

P.s: this is the beginnings of an initiative to implement a platform structure that will enable my team deploy real-time software updates to test stations across production plants without having to be physically present. Using the cloud means we are not bound by some fine constraints (too sensitive to talk about). Noting of course it is a controlled process.


50Michaels,

 

I no longer use Jenkins in my solution. I have a virtual machine that run an Azure agent. I was able to put together a working solution much faster going this route. After some research, it sounds like Jenkins is only used because of legacy. It was one of the first feature rich CI tools, now other products have caught up. I felt since I was starting fresh, Azure Pipelines solution using the new yaml build spec was the way to go.

 

Ryan Sheppard

Message 8 of 11
(5,588 Views)

 

Ryan, I am losing your lead hereSmiley Happy. Do you mind breaking down how you setup the hosting of the build automation on the Azure agent? What off-the-shelf Azure services/tools were utilized and did you require Azure specialist IT support?

 

Thanks for the feedback, it's a relief to know there is a BETTER way!

0 Kudos
Message 9 of 11
(5,566 Views)

For what it's worth (2.5 years later), we have our tools running with Azure Pipelines using self-hosted agents on our build servers. Feel free to reach out, but please be aware that this is a commercial offering.




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 10 of 11
(3,103 Views)