Overview
A project in pulse™ is analogous to a single code line for a software project. For each code line that you want to automatically build and test, you should add a new project to your pulse™ server. Simple software projects may have just one code line, but most projects consist of multiple code lines, commonly represented as branches in the project's SCM. Projects are at the core of pulse™; when using your pulse™ server you will be mostly concerned with viewing and managing projects and builds of those projects.
Managing Projects
You can view a list of all projects on your pulse™ server in the "projects" section of the web interface. This section provides a convenient view of the most recent build for all projects. By clicking on the project name, you will be taken to the project home page. This page is the central place for all current information about the project.
Projects can be added to your pulse™ server using the Add Project Wizard. This wizard can be accessed using the "add new project" link on the projects page. You can also create a new project by cloning a current project. This is convenient when creating multiple projects with similar configuration. To create a project this way, use the "clone project" link in the right hand column of the project home page.
If you ever wish to delete a project, you can do so using the "delete project" link on the project home page. Note that when a project is deleted, the entire build history for the project is also deleted. Removing all of the stored build information from disk may take several minutes.
Organising Projects
If you have a large number of projects, it may be useful to organise them into logical groups. These groups are displayed in the "projects" section of the interface, and may optionally be displayed on your dashboard. For more information, refer to the Project Groups page.
Project Types
pulse™ supports multiple types of projects. These project types fall into two categories:
| Type |
Description |
| Built-in Projects |
Projects that use directly-supported build tools and are completely configured via the web interface. These projects are the easiest to configure, and are a great way to start using your pulse™ server. |
| Pulse File Projects |
Projects that have their recipes described by pulse files. These are the most flexible projects, and although they take more intial effort to configure, offer advantages over built-in projects. |
Built-in projects can be further divided into the following types:
Pulse file projects can also be further divided:
| Type |
Description |
| Custom Projects |
A pulse™ file project where the pulse™ file is edited and stored on the pulse™ server. |
| Versioned Projects |
A pulse™ file project where the pulse™ file is stored and versioned with your code in your SCM. |
Project Configuration
The configuration for a project includes:
| Section |
Description |
| basics |
Basic project details, such as the project name, description and URL. |
| scm |
The project's SCM details, including the type of SCM server and client details. |
| change viewer |
An optional reference to an external tool for viewing changelist and diff information. |
| specifics |
Type-specific configuration, such as the location of an Apache Ant build file (refer to the types above). |
| artifacts |
Files and directories captured and post-processed after commands are executed. |
| build specifications |
Build specifications describe how to build the project. |
| commit message transformers |
Transformers used to filter SCM commit messages, for example to link text in messages to external tools. |
| triggers |
Triggers determine when the project is built. |
| post build actions |
Which are tasks invoked when a build of the project completes (e.g. tagging source code). |
| cleanup rules |
Cleanup rules describe when to clean up old build results. |
All of these settings may be configured on the "configuration" tab for the project. This tab may be viewed by all users, but the settings may only be changed by users who have administration permissions for either the server or the project.