On 01/17/2013 09:36 PM, Magnus Hagander wrote: > > Yeah. I used to have an AMI with the VS environment preinstalled on > Amazon, but I managed to fat finger things and delete it at some point > and haven't really had time to rebuild it. > > Having a script that would download and install all the pre-requisites > on such a box would be *great*. I'm working on it:
https://github.com/2ndQuadrant/pg_build_win http://blog.2ndquadrant.com/easier-postgresql-builds-for-windows/ I've identified the silent install procedures for most of the required tools (see the docs) and got build recipes written for some of the library dependencies. The next planned step is to have the scripts automatically download and silent-install Visual Studio, etc, rather than have the user run the command lines given in the README manually. It's usable as-is, I just need the time to finish it off. The goal is to have a script that turns building PostgreSQL on a clean fresh Windows install into: - Download ActivePerl - Install ActivePerl - Run "buildgit.pl check install" Right now it takes a fair bit more than that, but it's already better than a fully manual build. > Then you could get up and going pretty > quickly, and getting a Windows box up running for a few hours there is > almost free, and you don't have to deal with licensing hassles. > > (Of course, the AMI method doesn't work all the way since you'd be > distributing Visual Studio, but if we can have a script that > auto-downloads-and-installs it as necessary we can get around that) I've found EC2 to be unusably slow for Windows builds, with a medium instance taking an hour and a half to do a simple build and "vcregress check". They're also restrictive in disk space terms, so you land up needing to add a second EBS volume. A local kvm instance works well if a physical host isn't available; so do some of the alternative cloud providers like LunaCloud, which seems to perform significantly better in the quick testing I did. I haven't tried GoGrid yet. Many of us have Windows license stickers on laptops/desktops, even if we don't use the thing, so for a signficiant proportion of people it's as simple as downloading Windows install media ( http://blog.ringerc.id.au/2012/05/you-can-download-legal-windows-7-iso.html) and installing a KVM instance then shapshotting it. I've also put together a Jenkins server that runs builds on Windows whenever they're pushed to watched git repos. I'd love to make this public, but unfortunately allowing a wide group to run arbitrary code on the current build box isn't something I can afford. I'd need a system that launched a snapshot Windows instance for each build and then destroyed it at the end. This is entirely practical with something like KVM, so if I ever get the chance to work on a Jenkins plugin to do that (or to launch/destroy Windows cloud instances automatically), it's possible a semi-public Windows build testing service may be possible. While we're in fantasy land, the next step would be adding git URLs and branch names to the commitfest app, so it could ping a continuous integration server to build-test any new patch added to the CF. Right now I'm doing that manually when I have time, but it's slow going. -- Craig Ringer http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services