I keep each one of my plugins in a separate repo. The first step of my CI build is to build the ProJucer so I can resave the .jucer file and create the projects for VS and Xcode, which I don’t check in. When I updated all my plugins I was spending more time building the Projucer than my plugins. So I built a web service to build and cache Projucer builds.
The following URL https://projucer.rabien.com/get_projucer.php?hash=$HASH&os=$OS&key=$APIKEY will return a URL where you can download the Projucer where $HASH is the full git hash of the version you want. $OS is either
win and $APIKEY is a key I provide you. You don’t need an apikey to download, just to trigger builds.
If the build is ready on the server it will return the download URL, if it triggers a build it will return
BUILDSTARTED. If the build is in progress it will return
INPROGRESS. Or it may return an error like
INVALID PLATFORM or
Here is an example how I use it in my build script:
# Get the hash cd "$ROOT/modules/juce" HASH=`git rev-parse HEAD` echo "Hash: $HASH" # Get the Projucer cd "$ROOT/ci/bin" while true do PROJUCER_URL=$(curl -s -S "https://projucer.rabien.com/get_projucer.php?hash=$HASH&os=$OS&key=$APIKEY") echo "Response: $PROJUCER_URL" if [[ $PROJUCER_URL == http* ]]; then curl -s -S $PROJUCER_URL -o "$ROOT/ci/bin/Projucer.zip" unzip Projucer.zip break fi sleep 15 done
No guarantees of uptime. I just wrote this yesterday, so it may still have bugs. You may want to hit my server and see if the build is there, and if not, fall back and build it yourself. Email me at email@example.com if you want an API key.
Update: I’ve added a cron job that builds the Projucer for the tip of master and develop every hour, so if you need builds of the Projucer going forward, they should always be there.