Return-Path: Delivered-To: apmail-continuum-dev-archive@www.apache.org Received: (qmail 83084 invoked from network); 22 Oct 2008 02:07:50 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 22 Oct 2008 02:07:50 -0000 Received: (qmail 3671 invoked by uid 500); 22 Oct 2008 02:07:52 -0000 Delivered-To: apmail-continuum-dev-archive@continuum.apache.org Received: (qmail 3634 invoked by uid 500); 22 Oct 2008 02:07:52 -0000 Mailing-List: contact dev-help@continuum.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@continuum.apache.org Delivered-To: mailing list dev@continuum.apache.org Received: (qmail 3623 invoked by uid 99); 22 Oct 2008 02:07:52 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Oct 2008 19:07:52 -0700 X-ASF-Spam-Status: No, hits=2.0 required=10.0 tests=HTML_MESSAGE,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (athena.apache.org: domain of ctan@exist.com designates 74.125.92.146 as permitted sender) Received: from [74.125.92.146] (HELO qw-out-1920.google.com) (74.125.92.146) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 22 Oct 2008 02:06:43 +0000 Received: by qw-out-1920.google.com with SMTP id 5so817026qwc.14 for ; Tue, 21 Oct 2008 19:07:11 -0700 (PDT) Received: by 10.214.149.7 with SMTP id w7mr14467179qad.68.1224641231669; Tue, 21 Oct 2008 19:07:11 -0700 (PDT) Received: by 10.214.217.18 with HTTP; Tue, 21 Oct 2008 19:07:11 -0700 (PDT) Message-ID: <10c62ca80810211907h7be5d9acrb393287f30549db8@mail.gmail.com> Date: Wed, 22 Oct 2008 10:07:11 +0800 From: "Marica Tan" To: dev@continuum.apache.org Subject: Distributed builds MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_Part_14117_28162614.1224641231637" X-Virus-Checked: Checked by ClamAV on apache.org ------=_Part_14117_28162614.1224641231637 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi, Our team in exist came up with a requirements for distributed builds. *A. Distribution of work* Master and Slave Agent will communicate with each other through xml-rpc. 1. Master Agent - controls build via xml-rpc 1. slaves need to be added to the master server - attach the slave to a build environment as a type of "installation". Each slave reports a number of available installations. 2. check availability of slaves - slave is available if it's up and has no current build. - if slave is available then dispatch build to the slave. - if slave is unavailable then enqueue build on the master 3. distribute work - select slave based on build environment (master) - build - pass current configuration - expect result (master)/return result (slave) - attach each result returned by the slave to each project in the group (add to database) 2. Slave Agent - is a dumb build agent that will run on another build server. It will only build the project and return the result. It also has it's own installation. - queried for available installations - start build, stop build - returns build result *B. UI/Configuration* 1. Aggregated view of distributed projects 2. Slave server list (new page) 3. Build Environment - add slave selection - modify installations based on slave selection 4. distributed build configuration stored and editable in XML configuration file Limitations - credentials (s.a. svn credentials) are passed along if specified, but if server cache is used it will need to be done individually on the slaves - slaves can only be configured at the project group level, by a system administrator - project dependencies are not considered in distribution - interdependent projects should target the same slave server Future Enhancements 1. Policy-based distribution - next available - load balanced - target environment matching Comments, suggestions and/or violent reactions are welcome :) Thanks, -- Marica ------=_Part_14117_28162614.1224641231637--