I'm working on setting up a CI/CD pipeline where I want to compile exe files from my local development environment and send them to a client system. The catch? Most of my clients don't have a public IP address. I'm using Azure DevOps to manage my code, and the project is a .NET 8 WinForms application. The final exe files are between 240-300MB and involve several third-party libraries.
3 Answers
One option is to set up a client-server strategy or use a network share on the client’s system that can pull your application. This way, you can easily transfer files without needing direct access.
You might also consider installing an Azure DevOps build agent on your local system. You can run your builds and use the PublishPipelineArtifact@1 task to send the exe to Azure. If the client agrees, you can install a deployment agent on their server and use release pipelines to push the build directly.
Another approach could be to publish your files to an internal repository like Nexus. From there, client machines can pull the artifacts as needed. This way, if security is a concern, you can use a VPN and authentication to access the repo.
That sounds great, but in my situation, we have multiple networks, and they're all tied to different internet providers, which complicates things.