Community Build Server

We've recently been discussing the possibility of hosting a build environment for the PowerShell community.  For those who are unfamiliar with the benefits, such an environment allows you to do things like:

  • Automatically run a suite of tests when new code is checked into source control.  These tests can be run on multiple operating systems or versions of PowerShell concurrently.
  • Publish pass/fail information back to your source control repository for each tested commit.
  • Automatically release code which passes your tests to repositories such as Chocolatey or PowerShellGet, etc.

However, such an environment would require some amount of cloud resources, and those cost money.  The exact amount would depend on how often a build needs to run, but we're estimating the costs will likely be somewhere in the range of two to six thousand dollars (US) per year.  So, at this point, we're looking for contributions to help us make this idea a reality.  These contributions can come from companies or from individuals.  We can accept payments via the PayPal "Donate Now!" button on this page, or if you prefer, we can accept payments by check as well.  If desired, we can provide invoices for the donations.  Unfortunately, for legal reasons, we're not a non-profit entity (because we are in support of PowerShell, a commercial product).  This means that donations for the community build server are not tax deductible.

In an upcoming article, I'll go into more details about how this environment will work.  What I can tell you right away is that it will be freely available for any open-source, PowerShell-related project, and that we will have build agents running PowerShell 2.0 through 5.0.  Pester will be available for running tests on all of these agents, and we will also have the PowerShellGet module available if you want to automatically publish modules to that environment.

Donate Button with Credit Cards

About the Author

Dave Wyatt

Profile photo of Dave Wyatt

Dave Wyatt is a Microsoft MVP (PowerShell) and a member of PowerShell.org's Board of Directors.

7 Comments

  1. You might want to consider applying for a Microsoft BizSpark account for this as it comes with $150/month of Azure credits for 3 years. Any business that makes less than $5 million a year is eligble.

    • We're probably going to be using AWS. Not because we have any particular preference for them as a cloud provider over Azure, but because TeamCity has some AWS-integration out of the box that we'd like to take advantage of. Someone would have to develop an equivalent plugin for Azure in order for us to get the same functionality.

    • It's not really a big investment. $6000/year is not even a rounding error for the large companies who might sponsor us.

      There are many reasons we're considering setting up our own infrastructure, but foremost among those is security. I haven't looked into AppVeyor, but on the CodeBetter site, my observation has been that the TeamCity build agents are running as LocalSystem. There's really very little (if anything) preventing malicious code from being checked into one of the repositories and being executed with admin rights to the same server that everyone else is using to run their builds. This could be used to steal certificates and API keys, etc.

      We have some ideas on how to improve on this situation. Having a set of build agents tailored to be very friendly to PowerShell modules is just a perk.

      • Hey Dave

        AppVeyor throws away the build agent image, after each build, so no concerns about security here.
        Costs for infrastructure is one, time to maintain the system the other.

        But the base idea of teaching people how to use build servers for PowerShell is super cool! Keep going!

  2. Last Microsoft Tech Days, MVP Ronald Beekelaar announced that Windows server 2016 / vNext will support nested hyper-v for demo/lab environments.

    This could be usefull for reducing the cost of those servers. They don't have to be very high available and with enough ram and ssd storage, it should deliver enough punching power for the purpose.