Adding software to a build agent or private build agents

Scott Brickler's Avatar

Scott Brickler

10 Oct, 2014 07:04 PM

My software has a dependency on another particular software being installed. The vendor for the other software doesn't provide a mechanism to just deploy the bits that I need. Unfortunately I have to install the entire app in order to build my app. I realize i could install the app via a script on each build but this would slow down the build process quite a bit since the app would take 5-10 minutes to install each time. Is there any way to have may own build agent in AWS or azure that is configured with the software already installed?

  1. Support Staff 1 Posted by Feodor Fitsner on 10 Oct, 2014 10:04 PM

    Feodor Fitsner's Avatar

    Hi Scott,

    Thanks for your interest in AppVeyor!

    At the moment we are working on a new environment with 3-5 times higher performance and we are going to start testing it next week. I think those 5-10 minutes could easily become 1-3 there which is insignificant compared to the maintenance cost of custom image. If the installation of that software could be automated during the build I'd go this way. No, technically, we could do a custom image, but it's going to be current Azure environment only, not a new one, and image updates will be on you.

    Let me know if you want to participate in private beta of a new environment and I'll arrange that for you when it's ready.

  2. 2 Posted by Scott Brickler on 14 Oct, 2014 05:51 PM

    Scott Brickler's Avatar

    Feodor,
    Thank you for your insight, I am not sure if I should participate in a private beta quite yet. I have a related problem that I wonder if you could help with. I am fairly new to setting up CI and CD services. Our product has been out for a while but we only have a few devs and have basically just build the software on our system. I know this isn't ideal and have been working towards a build server and CI but as a company owner this keeps being put on the back burner. I experimented with TeamCity a few years ago but keeping it current and maintaining our own server was a pain. I really like the idea of having the build server as a hosted service but I am limited on time to figure out all the intricacies of getting it all working with our product. I understand how to setup the build for a single simple project but our application is quite complex with multiple repos/projects and plugins etc. Do you offer a service or can you recommend someone who can help us get our complex project working in Appveyor?

    Thanks!
    Scott

  3. Support Staff 3 Posted by Feodor Fitsner on 22 Oct, 2014 02:13 AM

    Feodor Fitsner's Avatar

    Hi Scott,

    Sorry for the delay with reply! It's been a busy week.

    It's not necessary you need some kind of a service to help you with setting things up!
    We will guide through the process step-by-step!

    We could start from understanding your projects structure:

    • what their types (web, service, console, etc)
    • what are external dependencies
    • what are relationships between projects
    • what are requirements to the build environment.

    Contact me at feodor AT appveyor.com if you'd like to proceed!

  4. 4 Posted by Scott Brickler on 31 Oct, 2014 01:42 PM

    Scott Brickler's Avatar

    Feodor,
    Thanks for your response.
    Currently our project is a .net windows forms application. It is a plugin based product that has a framework set of assemblies. A host application and several separate plugin applications. We use mercurial for our source control with Kiln.

    One of the problems I am trying to solve first is that our framework consists of 3 separate assemblies with 3 different repos. I am considering how to pull from each repo then build and then pass the assets to the next part and build that and then package them all up as a distribution. We have decided to version all 3 of the framework assemblies the same so we need to carry the revision across all of them and tag each repo accordingly. I also need to trigger a build of all of them if any one of them changes. I am really starting to think that combining all 3 repos into a single repo and managing just that may be the simplest solution but would appreciate your thoughts on the matter.

    Another problem that we have is that some of our plugins tie into 3rd party applicationsand thus require that 3rd party app to be installed before we can compile it. Often these applications are CAD systems and the install for those can be quite large and take a long time to complete. The installs for some of those can be in the gigabytes. That was one of the reasons I was asking about having some static build machines.

    If you are willing to take on giving us a little help getting this setup we would be happy to get signed up on your service. I think it would be very beneficial for us in the long term.

    Thanks,
    Scott

  5. Support Staff 5 Posted by Feodor Fitsner on 04 Nov, 2014 02:50 AM

    Feodor Fitsner's Avatar

    Hi Scott,

    Sorry for the delay with reply.

    Regarding multiple repos - I think you could have 4th repo called, say, "build". That repo will be serve as a bootstrap for the rest of 3. It could git clone all three repos (you can store Kiln access token in secured environment variable) and build them. To trigger build in "build" project when there is a change in any of 3 repositories you should add the same webhook to all 3.

    Regarding 3rd party dependencies (CAD app) - is it just some assemblies that you need to build your project with or you need entire suite for integration testing?

  6. 6 Posted by Scott Brickler on 12 Dec, 2014 08:02 PM

    Scott Brickler's Avatar

    Feodor,
    We discussed about a month ago automatically installing the devexpres tools on the build server. I was able to get that working however to get that to work I have to use my login and password for DevExpress in the chocolatey script to get devexpress installed. I noticed you have encrypted string support. Is it possible to use that in the install script?

    Thanks,
    Scott

  7. Support Staff 7 Posted by Feodor Fitsner on 12 Dec, 2014 10:16 PM

    Feodor Fitsner's Avatar

    Hi Scott,

    Sure, just access this variable like any other environment variable: %VARIABLE% in batch or $env:VARIABLE in PS. They are encrypted while in YAML (or AV database).

  8. Ilya Finkelshteyn closed this discussion on 25 Aug, 2018 01:50 AM.

Comments are currently closed for this discussion. You can start a new one.

Keyboard shortcuts

Generic

? Show this help
ESC Blurs the current field

Comment Form

r Focus the comment reply box
^ + ↩ Submit the comment

You can use Command ⌘ instead of Control ^ on Mac