What are they?
Expressions are a mechanism for the autocompletion of objects whose values may not be known until build execution time. They can also be used to autocomplete variables.
Where can I use them?
Expressions can be utilised in several dialogue fields throughout Continua (they are especially useful within stage actions, and build event handlers).
The expansion icon (below) denotes fields that have expression capabilities.
Expression Expansion
To initiate n expansion simply type the dollar symbol '$' and the expression auto complete will present (note: not all objects are available in all fields).
$Workspace
Name | Description | Type | Usage Examples | |
---|---|---|---|---|
N/A | The disk location (on the server or agent) of a builds' workspace. | string | $Workspace$\testfolder | "D:\ContinuaAgent\Ws\19\" |
$Build
Name | Description | Type | Usage Example | |
---|---|---|---|---|
Id | A unique Integer allocated automatically to this build | String | $Build.Id$ | "10" |
Version | The build version. This is derived from the configuration 'Version Format String' field on the configuration details tab | Version | $Build.Version.Default.Major$ | "1" |
StartedBy | The username of the user who initiated the build | String | $Build.StartedBy$ | "peter.toms@finalbuilder.com" |
IsFeatureBranchBuild | Utilized via build triggers, this descriptor is set to true when a build is triggered on a non-default branch | Boolean | $Build.IsFeatureBranchBuild$ | true |
BuildNumber | An incremental number allocated to this build (The first build will be build number 0) | Numeric | $Build.BuildNumber$ | 100 |
Metrics | A placeholder for metrics related to this build (eg the number of unit tests passed) | Metrics | $Build.Metrics$ | N/A |
HasNewChanges | Does this build contain any new Changesets (which Continua has not yet seen) | Boolean | $Build.HasNewChanges$ | true |
LinkUrl | Build details Url | String | $Build.LinkUrl$ | "http:\\SERVERNAME\New_Project_1\ci\builds\view\123" |
$Configuration
Name | Description | Type | Usage Examples | |
---|---|---|---|---|
Name | Name of the Configuration as defined on the Configuration Details Page | String | $Configuration.Name$ | "New Configuration 1" |
$Agent
Name | Description | Type | Usage Example | |
---|---|---|---|---|
Port | The Port number used for agent communication | String | $Agent.Port$ | "9000" |
Hostname | The Agents Hostname | String | $Agent.Hostname$ | "AGENTMACHINE" |
Now | The current date and time given as agent local | Datetime | $Agent.Now$ | "2014 4:51:44 PM" |
NowUTC | The Date and Time given as UTC | Datetime | $Agent.NowUtc$ | "2014 6:52:25 AM" |
InstallPath | The installation path of the agent | String | $Agent.InstallPath$ | "C:\Program Files\VSoft Technologies\ContinuaCIAgent\" |
GetUserEnvironmentVairable | Gets the specified user environment variable (relative to the agent machine's service user, and relative to the agent machine) | String | $Agent.GetUserEnvironmentVairable("TEMP")$ | "%USERPROFILE%\AppData\Local\Temp" |
GetMachineEnvironmentVairable | Gets the specified Machine Environment Variable (relative to the agent machine) | String | $Agent.GetMachineEnvironmentVairable("NUMBER_OF_PROCESSORS")$ | "8" |
N/A | What follows is a list of property collectors | Property Collector | $Agent.NuGet.Default.Path$ | "C:\Program Files\NuGet\NuGet.exe" |
$Project
Name | Description | Type | Usage Example | |
---|---|---|---|---|
Name | The name of the Project for which this configuration is a part of (as Provided on the Project Details page) | String | $Project.Name$ | "New Project 1" |
Description | The description of the Project for which this configuration is a part of (as Provided on the Project Details page) | String | $Project.Description$ | "This is a description for new project 1" |
Slug | A shorterned version of the project name which is safe to use within Url's and other identifiers. For example "New Project 1" would have a slug of "New_Project_1" | String | $Project.Slug$ | "New_Project_1" |
$Source
Name | Description | Type | Usage Example | |
---|---|---|---|---|
List of the repositories associated with configuration | What follows is a list of repositories associated with the given configuration | Repository | $Source.Reponame$ | "Mercurial_Test_1" |
$Server
Name | Description | Type | Usage Example | |
---|---|---|---|---|
Now | The current date and time given as server local | DateTime | $Server.Now$ | "2014 5:03:18 PM" |
NowUtc | The date and time given as UTC | DateTime | $Server.NowUtc$ | "2014 7:04:01 AM" |
Hostname | The Continua server hostname | String | $Server.Hostname$ | "SERVERMACHINE" |
InstallPath | The Continua server install path (eg C:\Program Files\VSoft\) | String | $Server.InstallPath$ | "C:\Program Files\VSoft Technologies\ContinuaCI\" |
Url | The Server URL (eg http://ContinuaServerName) | String | $Server.Url$ | "http:\\SERVERNAME:8080" |
$Utils
Name | Description | Type | Usage Example | |
---|---|---|---|---|
NewGuid | Create a randomly generated Guid | Guid | $Utils.NewGuid$ | "da47b2d6-3580-48ed-b27a-f152da2345e6" |
RandomNumber | Generate a new random integer value If one parameter is provided it designates a random number in the range of greater than or equal to zero and the number provided will be generated If two parameters are provided they designate the range for the generated number. If no parameters are provided an 32-bit integer greater than or equal to zero and less than int32 max value (2,147,483,647) will be generated. | Integer | $Utils.RandomNumber("1", "10")$ $Utils.RandomNumber("10")$ $Utils.RandomNumber$ | 5 2 1906529119 |
Repository (used by $Source )
Name | Description | Type | Usage Example | |
---|---|---|---|---|
Branch | The name of the branch associated with the build for the given repository () | String | $Source.RepoName.Branch$ | "/branches/a_test_branch" |
BranchName | String | $Source.RepoName.BranchName.ToLower$ | "a_test_branch" | |
LatestChangeset | A placeholder for the changeset information related to the most recent changeset for the given repository | Changeset | $Source.RepoName.LatestChangeset.Comment$ | |
Path | String | $Source.RepoName.Path.ToLower$ | ||
Tag | String | $Source.RepoName.Tag.ToLower$ | ||
Type | String | $Source.RepoNamea.Type$ | ||
Url | String | $Source.RepoName.Url$ |
Changeset (used by $Source)
Name | Description | Type | Usage Example |
---|---|---|---|
Id | String | $Source.RepoName.Id$ | |
Comment | String | $Source.RepoName.Comment$ | |
Repositoryusername | String | $Source.RepoName.Repositoryusername$ | |
Branch | String | $Source.RepoName.Branch$ | |
Branchname | String | $Source.RepoName.Branchname$ | |
Created | Datetime | $Source.RepoName.Created$ | |
Filecount | Int | $Source.RepoName.Filecount$ | |
Committerusername | String | $Source.RepoName.Committerusername$ | |
Committerfullname | String | $Source.RepoName.Committerfullname$ |
Stage (used by $Source)
Name | Description | Type | Usage Example |
---|---|---|---|
Name | |||
Metrics |
Metrics (used by $Build)
Name | Description | Type | Usage Example |
---|---|---|---|
Compiler | |||
Unit Tests |
Version (used by $Source)
Name | Description | Type | Usage Example |
---|---|---|---|
Major | |||
Minor | |||
Build | |||
Revision |