Overview
Before requesting personal builds, you must configure the client. Required configuration includes the URL and credentials used to contact the pulse™ server, the details of which project to execute, and potentially some SCM-specific configuration.
Configuration
Automatic Configuration
If the personal build client is detects that some required configuration is missing, it will attempt to fill in the necessary information by prompting for input. This is the simplest way to configure a new work environment. The configuration gathered is stored in two places:
- Your home directory: configuration likely to be shared among multiple projects (e.g. the address of the pulse™ server) will be stored in a properties file in your home directory.
- The current working directory: configuration specific to one project will be stored in a properties file in the directory where the personal build client was invoked.
For best results, invoke the client from the base directory of your working copy. For more information regarding the properties files created, see below.
Configuration Files
The primary way to provide configuration details is via properties files. The personal build client searched for properties files named ".pulse2.properties", and applies the configuration found within them. Properties files are searched for in the following way:
- The client checks for a ".pulse2.properties" file in its own working directory (i.e. the directory from where the client was executed).
- The client then checks the parent of the working directory, and then its parent, and so on to the root of the filesystem.
- Finally, the client will check in the user's home directory.
All properties files found will be used to form the configuration details. If a property is present in two or more files, the file found earliest in the search will take precedence over those found later. You can also provide and/or override properties using command-line arguments, see Requesting Personal Builds for details.
This system of properties files allows you to store configuration shared between multiple projects in one file, and then use a properties file in each of your working copies for configuration specific to a project. For example, say you work on two projects "p1" and "p2". You check these projects out into directories under a single "work" directory:
These projects are both built using the same pulse™ server. To configure the personal build client for both projects, you can use three properties files:
This layout allows common configuration to be shared instead of duplicated for each project.
Configuration File Format
The properties files use the standard Java format. This is a simple format for specifying key-value pairs. Each pair is specified on its own line, with the key and value separated by an equals sign ('='). For example, to set the property 'myproperty' to the value 'example value', you would use the following line:
Configuration Properties
Core Properties
The core properties are all required to execute a personal build.
| Property |
Description |
Required? |
Default |
Example |
| pulse.url |
The URL of the pulse™ server. |
Yes |
None. |
http://pulse.example.com |
| pulse.user |
Your pulse™ login name. |
No |
Your operating system account name. |
jblogs |
| pulse.password |
Your pulse™ password. |
No |
Prompt. |
mysecret |
| project |
The name of the pulse™ project that the working copy corresponds to. |
Yes |
None. |
myproject trunk |
| proxy.host |
Hostname of an HTTP proxy to use instead of connecting to pulse™ directly. |
No |
None. |
proxy.example.com |
| proxy.port |
Port to use when connecting to an HTTP proxy (see proxy.host). |
No |
80 |
8080 |
Workflow Properties
These are properties that control the personal build client workflow. Often these properties are specified using menu selections or command-line options, but you may choose to make these changes permanent using these properties.
| Property |
Description |
Default |
| check.repository |
If true, the client will verify (where possible) that the working copy repository details match that of the specified pulse™ project. |
true |
| patch.file |
If set, the path of a patch file that includes the changes to send to the server. No working copy is required or examined with this property is specified. |
|
| patch.format |
The format of an explicitly-specified patch file. Pulse will try to guess the format itself, but may not be able to do so unamibiguously. Available options include "git", "standard" and "unified", although extra formats may be plugged in. |
|
| revision |
The revision to build against. May be an explicit revision (e.g. Perforce changelist number) or one of the following symbolic revisions:
- @custom: causes the client to prompt for an explicit revision without giving a menu first
- @floating: use the latest revision at the time that the build commences
- @good: use the latest revision that has been successfully built at the time the build is requested
- @latest: use the latest revision at the time the build is requested
- @local: use a best-guess of the local working copy revision (cannot always be determined)
|
|
| send.request |
If true, send the personal build request after the patch is determined. Otherwise, exit without making a request. |
true |
| update |
If true, and a suitable revision is chosen, update the local working copy to the chosen revision before assembling changes. |
|
CVS-Specific Properties
These properties are only used for CVS working copies.
| Property |
Description |
Required? |
Default |
Example |
| cvs.password |
Your CVS password. |
No |
Prompt. |
mysecret |
Subversion-Specific Preferences
These properties are only used for Subversion working copies.
| Property |
Description |
Required? |
Default |
Example |
| svn.username |
Your subversion user name. |
No |
Your operating system account name. |
jblogs |
| svn.password |
Your subversion password. |
No |
Prompt. |
mysecret |
| svn.keyfile |
The path to a private key file to use for SSH authentication. |
No |
None. |
/home/jblogs/.ssh/id_dsa |
| svn.passphrase |
The passphrase to use to access the specified key file. |
No |
None. |
mypassphrase |
| svn.allow.externals |
By default, personal builds are not allowed for working copies with svn:externals. This is due to the fact that replicating the client working copy state is not always possible with externals. Setting this property to true will allow personal builds even if externals are used, and in many cases it will work sufficiently well. |
No |
false |
true |
Example
A basic all-in-one properties file for a project named "myproject trunk":