Edgewall Software

Changes between Version 3 and Version 4 of Build Configurations


Ignore:
Timestamp:
Sep 12, 2005, 3:27:10 PM (19 years ago)
Author:
cmlenz
Comment:

More details on setting up target platforms

Legend:

Unmodified
Added
Removed
Modified
  • Build Configurations

    v3 v4  
    44
    55A build configuration is composed of:
     6 * a name used as identifier, a “pretty” name for display, as well as a description that may contain [wiki:WikiFormatting wiki formatting],
     7 * a flag to temporarily or permanently deactivate builds of that tree,
    68 * a path (or branch name) that identifies the subset of the repository that should be built,
    7  * a flag to temporarily or permanently deactivate builds of that tree,
    8  * a “pretty” name for display, as well as a description that may contain [wiki:WikiFormatting wiki formatting], and
     9 * a [wiki:BuildRecipes build recipe] for the configuration, and
    910 * a list of ''target platforms'' (see next section).
    1011
    1112== Target platforms ==
    1213
    13 A target platform is something like ''“NetBSD on x86”'' or ''“Win32 with Java 1.4”''. Technically, a target platform is a named set of rules against which the properties of build slaves are matched. Each rule is a regular expression matching a particular slave property, such as the operating system or the processor.
     14A target platform is something like ''“NetBSD on x86”'' or ''“Win32 with Java 1.4”''.
     15
     16Technically, a target platform is a named set of rules against which the properties of build slaves are matched. Each rule is a regular expression matching a particular slave property, such as the operating system or the processor. When a slave connects to the build master, it sends a registration message that includes information about the slave.
     17
     18By default, the following properties are included:
     19
     20 `family`:: The basic type of operating system, typically “posix” for Unix-like systems and “nt” for Win32 systems.
     21 `os`:: The name of the operating system (for example “Darwin”, “Linux” or “Windows”).
     22 `version`:: The operating system version.
     23 `machine`:: The hardware platform (for example “i686” or “Power Macintosh”).
     24 `processor`:: The processor architecture (for example “athlon” or “powerpc”).
     25
     26Note that not all of these properties may be available for all platforms. For example, the `machine` and `processor` properties are currently empty for build slaves running on Windows. Additional properties can be set up on the slave side using a [wiki:SlaveConfiguration configuration file].
     27
     28So to set up a target platform, you create rules that are checked against the properties of the slave. For example, a target platform that matches slave running Linux on x86 would look like this:
     29
     30|| '''Property''' || '''Expression''' ||
     31|| `os` || `^Linux` ||
     32|| `processor` || `^[xi]\d86$` ||
     33
     34A target platform that matches any slaves running on Windows might look like this:
     35
     36|| '''Property''' || '''Expression''' ||
     37|| `family` || `^nt$` ||
    1438
    1539The build master will request a build from at most one slave for every target platform. So, for example, if there are three slaves connected that are running NetBSD on x86, only one of them will perform the build of a specific revision. Slaves that match a particular target platform are treated as if they were completely interchangable.