...
In addition to the Using property, you can manually specify property collector properties by using the Query Syntax in in any action.
In addition to the "Using" drop down list, you can manually specify property collector properties by using the using the Query Syntax in any action. Chances are at some point you will need to use an executable in your workflow that Continua doesn't have an action form, for example FTP. To do this, you would add a property collector for your FTP executable, then use the Execute Program action and specify the property using the Query Syntax. Accessing properties from property collectors using the query syntax is described below. Please note, when specifying properties manually there's no way for Continua to check if an Agent is compatible until the action is executed (at run time). If you want to manually specify a path and have the compatibility of an Agent detected before run time, then you would need to add a Stage Option that checks of the path exists. As an example, your stage option would look something like this: $Agent.MyFtpExecutable.Path$ with the condition drop down set to Exists.
...
Configuration
Stage Options
...
Actions
Most of the time you will be unaware property collectors are in use due to the extensive list of default property collectors we've added to Continua. There are 3 major areas property collectors are used that you need to be aware of.
Configuration
Actions
When creating an action in the Stage Editor, you may notice a "Using" field at the bottom of the dialog on the first tab for all actions that are backed by When creating an action in the Stage Editor, you may notice a "Using" field at the bottom of the dialog on the first tab for all actions that are backed by an executable. Obviously actions like Delay and Tag Build action don't require executables to perform their job so they won't have a "Using" drop down list. The "Using" list contains the property collectors that are of use to the action. Once a property collector is selected from this list and the action is saved to the Stage and subsequently the Configuration, a requirement is then set on the Configuration for that property needing to be available before the Configuration can execute. One common theme for all property collectors found in the "Using" drop down in actions is they all use a property collector type that returns a Path property. By default, all actions will take the property collector assigned to them and only use the Path property since that's all the action needs... the path to the executable to run the action.
...
In addition to the "Using" drop down list, you can manually specify property collector properties by using the Query Syntax in any action. Chances are at some point you will need to use an executable in your workflow that Continua doesn't have an action form, for example FTP. To do this, you would add a property collector for your FTP executable, then use the Execute Program action and specify the property using the Query Syntax. Accessing properties from property collectors using the query syntax is described below. Please note, when specifying properties manually there's no way for Continua to check if an Agent is compatible until the action is executed (at run time). If you want to manually specify a path and have the compatibility of an Agent detected before run time, then you would need to add a Stage Option that checks of the path exists. As an example, your stage option would look something like this: $Agent.MyFtpExecutable.Path$ with the condition drop down set to Exists.
Stage Options
Stage Options are one place where you can directly access properties provided by property collectors. By using the Query Syntax, you can use access properties such as the Environment Variables of an Agent or the version of a file if you've setup a File Version property collector for that file. Accessing properties from property collectors using the query syntax is described below.
Repositories
Repositories are much like actions with their "Using" field containing a list of property collectors. Like actions, Repository property collectors must have a Path property, currently only the Path Finder Plugin property collector type is used for Repository property collectors. What's important to note with Repository property collectors is they're required to run on the Server but not the Agent. The reason for this is, Continua manages your repository from the Continua Server and not Agents which means the Server is the only one that absolutely needs access to the executable that manages the Repository.
Why Should I Use Property Collectors?
How Do I Know When My Tool Has Registered With Continua?
Property Collector Types
Agent and Server Property Collectors
Viewing Property Collectors
Editing Property Collectors
...
Note: The relative file path can be a file name or a file path relative to main executable path. If the file path is omitted then the main executable path will be added to the extra property name.
Creating Custom Property Collectors
...
Restoring Default Property Collectors
Continua Cannot Find My Build Tool
Continua Does Not have a Property Collector for my Tool
Property Collectors tell Continua to gather certain properties on either an Agent or on the Server. Once a property collector has been defined, it will be sent out to all interested parties (Agents/Server, as defined in the Run On attribute of the collector). The property collector then gathers information on the target and reports those results to the server for later use. The type of property to gather is defined when the property collector is created.
...
Properties |
---|
$Agent.FB.Version$ $Agent.FB.MajorVersion$ $Agent.FB.MinorVersion$ $Agent.FB.RelaseVersion$ $Agent.FB.BuildVersion$ $Agent.FB.Path$ |
DotNetFramework
Assuming the namespace when creating the property collector was NET.
...
Properties |
---|
$Agent.OS.Platform$ $Agent.OS.Runtime$ $Agent.OS.Name$ $Agent.OS.Arch$ $Agent.OS.ServicePack$ $Agent.OS.HostName$ $Agent.OS.IsWindowsOS$ $Agent.OS.IsMacOS $ $Agent.OS.IsLinuxOS$ |
Operating System
Assuming the namespace when creating the property collector was MVC.
...
The tables below show the patterns for each action/Repository repository and Namespace namespace examples which show up in the 'Using' drop down list of actions/repositories.
...
Plugin | Pattern | Namespace Examples |
---|---|---|
7-Zip Create 7-Zip Extract | ^7-Zip.* | 7-Zip.Ver2.1 7-Zipper 7-zip-8.09 |
Ant | ^Ant.* | Ant.9.11 Antler ant.V-10.6 |
Control Azure Web App Create Azure App Service Plan Create Azure Directory Create Azure File Share Create Azure Function Create Azure Resource Group Create Azure Storage Account Create Azure Storage Container Create Azure Web App Delete Azure App Service Plan Delete Azure Blob Delete Azure Directory Delete Azure File Delete Azure File Share Delete Azure Function Delete Azure Resource Group Delete Azure Storage Account Delete Azure Storage Container Delete Azure Web App Deploy Azure Function Deploy Azure Web App Get Azure Storage Account Keys Upload Azure Blob Upload Azure File Upload Azure Web App | ^Azure.Cli.* | |
Bower Install Bower Update | ^Bower.* | |
Cake | ^Cake\..* | |
Docker Build Docker Command Docker Commit Docker Inspect Docker Pull Docker Push Docker Run Docker Stop Docker Tag | ^Docker.* | |
DotNet Add DotNet Build DotNet Pack DotNet Publish DotNet Remove DotNet Restore DotNet Run DotNet Test | ^DotNet.Cli.* | |
Fake | ^Fake\..* | |
FinalBuilder | FinalBuilder\..* | FinalBuilder.8 FianlBuilder.8.09 finalbuilder.600 |
Grunt | ^Grunt\..* | |
Gulp | ^Gulp\..* | |
Karma | ^Karma\..* | |
Maven | Maven\..* | |
Mocha | ^Mocha\..* | |
MSBuild | ^msbuild\..* | MSBuild.2.0 MSBuild.4.0 MSBuild.12.0 |
MSTest | ^MSTest.* | MSTest.1.22 MSTest44 mstest3 |
NAnt | ^NAnt.* | NAnt10.3 nant.9.33 nantnant4 |
NCover 3 | ^NCover\.Console.* | NCover.Console.3.22 NCover.Console9 ncover.console1 |
NCover Reporting | ^NCover\.Reporting.* | NCover.Reporting.1.33 NCover.Reporting4.99 ncover.reporting2 |
NPM Install NPM Pack NPM Publish NPM Update | ^NPM.* | |
NuGet Delete NuGet Install NuGet Pack NuGet Push NuGet Spec NuGet Update | ^NuGet.* | NuGet.1.99 NuGet88 nuget23 |
NUnit | ^NUnit.* | NUnit.1.22 NUnit44 nunit3 |
Octo Pack Octo Push | ^Octo.* | |
OpenCover | ^OpenCover\.Console.* | |
PowerShell | ^PowerShell.* | PowerShell.1.6 PowerShell99 powershell2 |
Rake | ruby\.runtime\..* | |
Report Generator | ^ReportGenerator\.* | |
SQL Package Export SQL Package Extract SQL Package Import SQL Package Publish SQL Package Script | ^SqlPackage\..* | |
Visual Studio | ^VisualStudio\..* | VisualStudio.10 VisualStudio.2012 visualstudio.win |
VSTest | ^VSTest.Console* | |
XUnit | ^XUnit\..* | XUnit.1.22 XUnit.123 XUnit.4.5.6 |
Repositories
Plugin | Pattern | Namespace Examples |
---|---|---|
Bazaar | ^bazaar\..* | Bazaar.2.4 Bazaar.1 bazaar-old |
Git | ^git\..* | Git.1.6 Git.9 git.newest |
Mercurial | ^mercurial\..* | Mercurial.9.4 Mercurial.Latest mercurial.2 |
Perforce | ^perforce\..* | Perforce.3.6 Perforce.old perforce.1 |
Plastic SCM | ^plasticscm\..* | |
Subversion | ^subversion\..* | Subversion.9.77 Subversion.newest subversion.1 |
Surround SCM | ^surroundscm\..* | SurroundSCM.1.2 SurroundSCM.testing surroundscm.9 |
Vault | ^vault\..* | Vault.4.9 Vault.WIN vault.8 |
...