MySQL Build Farm Initiative
The MySQL Build Farm Initiative is a community-driven project which aims to facilitate a distributed, automated testing environment which takes advantage of community member's local machines in order to provide a robust testing envinroment for the MySQL Server and GUI Tools.
If you are interested in participating in the build farm, please take the time to vote on features below, and also sign up on the BuildFarmInventory page to enlist hardware for use in the farm.
Contents |
[edit] Benefits
Benefits of a distributed build and testing farm include:
- Automated, consistent, and redundant tests of both common and obscure platforms
- A centralized, publicly available testing interface, which allows for an easier ability to see where failures occur, and where stable builds occur.
- Reduced costs associated with build and test tracking, which leads to quicker turn-around for builds and a more robust testing framework
- A chance for the community to be more involved in the build and testing process, resulting in a greater knowledge of the server build process and the testing platform
- A centralized database repository of test results will enable long-term statistical reporting and valuable community input on how to make the testing process easier and more robust
- Availability of binary builds for testing on various platforms
All are welcome to contribute ideas to this document and participate in the process of designing the build farm system.
[edit] Build Farm Scripts
Ronald Bradford has created the initial build farm scripts which pulls the latest snapshots to the host computer and run the build and tests the build. See the below two files:
[edit] Skoll Build Farm Scripts
To participate in the Skoll build farm, get the Skoll community client at [1]. Results are available on [2].
[edit] Needed/Wanted Features
Please signal your vote on features priorities by attaching your login name or full name next to each bulleted point below. Also, please note ideas you have on implementation complexity and/or whether you have experience developing similar features for another project, or whether you know of other projects that have a source code base that can be built upon.
- Community Inventory
- Web page in Forge in order to have community members register details of boxes which can perform the automated testing pulls
- Web page in Forge showing status of the testing on various inventoried machines (see pgBuildFarm Status page as an example)
- Script which manages the "pull" from the Farm build server
- This should be configurable to accept a simple configuration file and connect to a generic build process running on the farm server.
- Farm server should respond with a simple authentication and a status of whether new snapshots are avilable to pull down for testing
- Script for running the build process and running the testing framework
- Should store results of test in a local file, and upload this file via a web-service call to the farm machine
- Recommend an XML file for storing build results; this will encourage generic reuse of the script and allow us to use existing XML parsers instead of writing our own parser for sent data
- Script to send results file to farm server
- Encryption needed? Authentication definitely needed.
- Ability to complete Cluster and/or Replication environment and testing
- Would need configuration file to allow build script to use other local machines in the Cluster or Replication scheme
- See Ronald Bradford's comment here: [3]
[edit] Overview of the Current Build System
To be filled in as I get more information on pushbuild.
[edit] Thoughts on a Generic Build Farm Project
Sebastian had some thoughts that we should strive to produce a build farm system that is generic enough that other open source projects can use the same distributed system in order to manage automated distributed testing for their own projects. JayPipes think this is a great idea, and any coding we do should have this thought in mind: make the code as modular as possible to encourage flexibility and reuse. This is simply good programming practice.
Ronald agrees, was going to suggest the same thing.
Philip Stoev would also appreciate a compile farm that can be used with distcc.
[edit] Resources
[edit] Software
- Continuous Integration Server Feature Matrix
- One of the most generic and configurable systems for distributed build farms that I have seen so far is BuildBot The sheer number of open source projects using this system is fairly impressive. --Jpipes 15:23, 2 August 2006 (CEST)