builderPie
builderPie is the experimental open source project that aims to create an automated building system for any language. The idea is to have a build system that is secure, easy to use, easy to setup, and works in a variety of situations....
What about buildBot?
Sure, buildBot can do a lot. Unfortunately it takes a decent amount of time and effort to setup. Add to that a few security issues and a limited scope, and you have a program that only meets a few needs. Have you ever tried getting it up and running? I attempted it once. It seemed too complicated to be worth it.
Tell me about builderPie
builderPie is written completely in Python (v. 2.5.4). It uses JSON-RPC (using demJSON to encode/decode) to transfer build information between the buildServer and the buildClient. The buildServer uses sqlite3 to store the build information and the build reports.
Minimal setup is needed if you already have Python installed. Simply download the code and unzip, and start going.
How to use this builderPie
There are a few different components to builderPie that allow you to do different things based on what you are tying to accomplish.
buildLocal
This piece of the pie is the quick and simple package testing script. Just pass it a url/local path/network path and it will grab the source and build it in it's own folder. When it's finished you'll get a simple pass/fail message letting you know what happened (if it does fail, you'll get the stderr output).
Example:
buildLocal.py http://deron.meranda.us/python/demjson/
buildServer
buildServer has three functions:
- to serve build information to buildClient (location of the source, what to file to execute, what tests to run, etc.)
- collect build results from buildClient
- report build results
running buildServer on port 8080:
buildServer.py localhost 8080
createBuild
createBuild allows you to setup build information on the buildServer as well as standalone files. What do I mean by build information? I'm glad you asked... Here are the items that can be configured for a build:
- the location of the source
- the method of retrieval (archive tar, tgz, network, local, svn, git etc.)
- the command(s) to run in order to build the project
- the command(s) to run any tests included with the build
Additionally, if you are using createBuild to setup build information on the buildServer, you can specify a name for the build for reference in the reports.
Example usage (with buildServer):
createBuild.py
Example usage (standalone file):
createBuild.py