Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Property TypeDescriptionReturns (Properties)
FinalBuilderEnter the version number of Finalbuilder to check for.Version, MajorVersion, MinorVersion, RelaseVersion, BuildVersion, Path.
DotNetFrameworkSelect the Framework and SDK Version of .NET.ToolsPath, FrameworkPath, Path.
VisualStudioSelect the version of Visual Studio to check for.Path

File Version

Check the File/Product Version of the file specified.Version, MajorVersion, MinorVersion, RelaseVersion, BuildVersion
Path Access PluginEnter a path to check for its existence.

HasAccess (boolean value)

Path Finder PluginEnter a file and paths where it can be found.Full path including file name.
Registry Key FinderSearch for a Registry Key and its Value.Value of Registry Key Name.

Environment Variable

Enter an environment variable to store.<EnvironmentVariableName>
Environment VariablesStores a list of all environment variables.All environment variables.
Operating SystemStores a list of important Operating System information.

Platform, Runtime, Name, Arch, ServicePack, HostName

IsWindowsOS (bool), IsMacOS (bool), IsLinuxOS (bool)

ASP.NET MVCChecks for a certain version of ASP.NET MVC libraries.IsInstalled (boolean value)

...

Note: Currently all property collectors listed in Actions are all default property collectors and all have their "Run On" attribute set to Agent. This is how Since they're all set as Agent property collectors, we can construct an Agent Compatibility Matrix which allows the user to see why an Agent may not be compatible with a Configuration. Determining the compatibility of an Agent is as simple as scanning all Actions in a Configuration and seeing if the property collectors they specified to use can find those properties on an Agent. 

Note: You may be wondering how it's possible To see how to get your own property collectors listed in the "Using" drop down, a full explanation can be found below 

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

 

 

...

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.

 

How to access properties gathered from Property Collectors

In the above section, it was mentioned that properties gathered from Property Collectors could be accessed using the Query Syntax. The first step to accessing these properties is to specify the source of the property, that being Server or Agent. The sections below contain an example of each property collector type, some made up values and how to access the resulting properties. The resulting properties match up with the return values from the table above.

Note: All expression examples below assume the property collector was setup to run on an Agent, simply replace Agent with Server if you created a server property collector.

FinalBuilder

Assuming the namespace when creating the property collector was FB.

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.NET.ToolsPath$

$Agent.NET.FrameworkPath$

$Agent.NET.Path$

 

VisualStudio

Assuming the namespace when creating the property collector was VisualStudio.

Properties

$Agent.VisualStudio.Path$

 

File Version

Assuming the namespace when creating the property collector was MyFile.

Properties

$Agent.MyFile.Version$

$Agent.MyFile.MajorVersion$

$Agent.MyFile.MinorVersion$

$Agent.MyFile.RelaseVersion$

$Agent.MyFile.BuildVersion$

 

Path Access Plugin

Assuming the namespace when creating the property collector was MyFile.

Properties

$Agent.MyFile.HasAccess$

 

Path Finder Plugin

Assuming the namespace when creating the property collector was Programs and the property name was MyFile.

Properties

$Agent.Programs.MyFile$

 

Registry Key Finder

Assuming the namespace when creating the property collector was Registry and the property name was MyRegVal.

Properties

$Agent.Registry.MyRegVal$

 

Environment Variable

Assuming the namespace when creating the property collector was Env and the property name was BINPATH.

Properties

$Agent.Env.BINPATH$

 

Environment Variables

Assuming the namespace when creating the property collector was Env.

Properties

$Agent.Env.<environment_variable>$

The results for this property collector are the environment variables so they're different for every machine.

 

Operating System

Assuming the namespace when creating the property collector was OS.

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.

Properties

$Agent.MVC.IsInstalled$

 

Agent/Server Properties and Property Collectors

After adding a property collector, the resulting property will show up on the Agent or Server's properties list with the actual value. Things like Operating System version will show up and any kind of check for paths/files or file access will display the true values. You won't see the changes in the UI immediately after entering a property collector. The server properties have a refresh button to force the properties to get updated and the Agent will update after polling the server which usually happens every minute or so. If a property doesn't show up, there's a chance you either configured the property collector incorrectly or the Server or that particular Agent simply couldn't find what you told it to look for.

 

 

Actions/Repositories and Property Collector Namespaces

Property Collector Namespaces may seem a bit redundant or verbose but they serve an important purpose. Each Action and Repository which use property collectors also define a namespace pattern that is used to determine which property collectors it's interested in. When you create a property collector and give it a namespace which matches the pattern in an Action/Repository, it will show up in the "Using" list of that Action/Repository. The table below shows the patterns for each Action/Repository and Namespace examples which show up in the 'Using' drop down list of Actions/Repositories.

Note: Patterns are case insensitive.

Actions
PluginPatternNamespace 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

FinalBuilderFinalBuilder\..*

FinalBuilder.8

FianlBuilder.8.09

finalbuilder.600

MSBuild^dotnet\..*

DotNet.77

dotnet.123

dotnet.netdot

NAnt^NAnt.*

NAnt10.3

nant.9.33

nantnant4

Visual Studio^VisualStudio\..*

VisualStudio.10

VisualStudio.2012

visualstudio.win

NCover^NCover\.Console.*

NCover.Console.3.22

NCover.Console9

ncover.console1

NCover Reporting^NCover\.Reporting.*

NCover.Reporting.1.33

NCover.Reporting4.99

ncover.reporting2

NuGet Delete

NuGet Install

NuGet Pack

NuGet Push

NuGet Spec

NuGet Update

^NuGet.*

NuGet.1.99

NuGet88

nuget23

PowerShell^PowerShell.*

PowerShell.1.6

PowerShell99

powershell2

NUnit

^NUnit.*

NUnit.1.22

NUnit44

nunit3

 

 

Repositories
PluginPatternNamespace Examples