Internet Explorer is no longer supported. Many things will still work, but your experience will be degraded and some things won't function. Please use a modern browser such as Edge, Chrome, or Firefox.

Amazon

  • Upload Files to S3 - Transfers files to an Amazon S3 bucket.

    Upload Files to S3

    Transfers files to an Amazon S3 bucket.

    Script usage:

    AWS::Upload-Files(
    	[From: <text>],
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	Bucket: <text>,
    	[To: <text>],
    	[ReducedRedundancy: <true/false>],
    	[Public: <true/false>],
    	[Encrypted: <true/false>],
    	[Credentials: <text>],
    	[AccessKey: <text>],
    	[SecretAccessKey: <text>],
    	[RegionEndpoint: <text>],
    	[PartSize: <Int64>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Source directory
    text
    From
    Value note: "$WorkingDirectory".
    Include
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Default value is "*".
    Exclude
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Bucket
    text
    Bucket
    This argument is required.
    Target folder
    text
    To
    The directory in the specified S3 bucket that will receive the uploaded files.
    Use reduced redundancy
    true/false
    ReducedRedundancy
    Make public
    true/false
    Public
    Encrypted
    true/false
    Encrypted
    Credentials
    text
    Credentials
    Access key
    text
    AccessKey
    Not specifying will "Use credentials".
    Secret access key
    text
    SecretAccessKey
    Not specifying will "Use credentials".
    Region endpoint
    text
    RegionEndpoint
    Part size
    Int64
    PartSize
    The size (in bytes) of individual parts for an S3 multipart upload. Default value is "5242880".

Artifacts

  • Create Artifact - Collects files in the specified directory, compresses them in a zip file, and saves it to the artifact library.

    Create Artifact

    Collects files in the specified directory, compresses them in a zip file, and saves it to the artifact library.

    Script usage:

    Create-Artifact(
    	[Name: <text>],
    	[From: <text>],
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	[Verbose: <true/false>],
    	[IgnoreEmptyArtifact: <true/false>],
    	[Overwrite: <true/false>],
    	[IncludeSystemFiles: <true/false>],
    	[IncludeHiddenFiles: <true/false>],
    	[Deployable: <text>],
    	[UseLegacyStoragePath: <true/false>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Artifact name (default)
    text
    Name
    Default value is "Default".
    From directory
    text
    From
    Value note: "$WorkingDirectory".
    Include files
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Default value is "**".
    Exclude files
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Verbose logging
    true/false
    Verbose
    Logs every file added to the artifact, which may be helpful for logging purposes.
    Ignore empty artifact warning
    true/false
    IgnoreEmptyArtifact
    A warning will be logged if no files are captured unless this option is set.
    Overwrite
    true/false
    Overwrite
    Value note: "false".
    Include system files
    true/false
    IncludeSystemFiles
    Value note: "false".
    Include hidden files
    true/false
    IncludeHiddenFiles
    Value note: "false".
    [Obsolete] Deployable name
    text
    Deployable
    Associates the created artifact with a deployable in the application; this defaults the current deployable in context. Deployables will be removed in a future version.
    [Obsolete] Use legacy storage path
    true/false
    UseLegacyStoragePath
    See KB#1133 for information about legacy paths. Legacy paths support will be removed in a future version.
  • Deploy Artifact - Retrieves the specified artifact from the artifact library and deploys it to a directory.

    Deploy Artifact

    Retrieves the specified artifact from the artifact library and deploys it to a directory.

    Script usage:

    Deploy-Artifact(
    	[Name: <text>],
    	[To: <text>],
    	[Application: <text>],
    	[Release: <text>],
    	[Build: <text>],
    	[Deployable: <text>],
    	[DeployAsZipFile: <text>],
    	[TransferAll: <true/false>],
    	[DoNotClearTarget: <true/false>],
    	[Verbose: <true/false>],
    	[OverwriteReadOnly: <true/false>],
    	[OptimizedFileTransfer: <true/false>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Artifact name (default)
    text
    Name
    Default value is "Default".
    To directory
    text
    To
    Value note: "$WorkingDirectory".
    Application name
    text
    Application
    Value note: "$ApplicationName".
    Release number
    text
    Release
    Value note: "$ReleaseNumber".
    Build number
    text
    Build
    Valid values are specific build numbers, or "furthest" or "latest". Value note: "$BuildNumber".
    Deployable name
    text
    Deployable
    Value note: "$DeployableName".
    Deploy as zip file
    text
    DeployAsZipFile
    When set to "true", the This field is only used when deploying as a zip file.
    Transfer all files
    true/false
    TransferAll
    By default, files will only be transferred if the last modified date or file size has changed. If set to true, all files will be transferred regardless if they have been modified.

    This value should generally be set to false, except when it would take more time to compare the files than simply transferring and overwriting them all (i.e. the artifact contains thousands of small files).
    Do not clear target
    true/false
    DoNotClearTarget
    Verbose logging
    true/false
    Verbose
    Overwrite read-only files
    true/false
    OverwriteReadOnly
    Use optimized file transfer
    true/false
    OptimizedFileTransfer
    Transfers artifact files using a new implementation that increases performance. This feature is still experimental, so verify results before using in production. This option is ignored if TransferAllFiles is true.

    Note: Specifying "latest" as the source package number will attempt to retrieve the artifact from the most recently created build, whereas "furthest" will use the one that has been deployed to the furthest environment in the pipeline.

  • Download Azure DevOps Artifact - Downloads a build artifact from Azure DevOps.

    Download Azure DevOps Artifact

    Downloads a build artifact from Azure DevOps.

    Script usage:

    AzureDevOps::Download-Artifact(
    	BuildDefinition: <text>,
    	[BuildNumber: <text>],
    	ArtifactName: <text>,
    	[AzureDevOpsBuildNumber: <text>],
    	[TargetDirectory: <text>],
    	[ExtractFiles: <true/false>],
    	[Project: <text>],
    	[Repository: <text>],
    	[Url: <text>],
    	[UserName: <text>],
    	[Token: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Build definition
    text
    BuildDefinition
    This argument is required.
    Build number
    text
    BuildNumber
    Value note: "latest".
    Artifact name
    text
    ArtifactName
    This argument is required.
    Set build number to variable
    text
    AzureDevOpsBuildNumber
    The Azure DevOps build number can be output into a runtime variable. e.g. $AzureDevOpsBuildNumber".
    Target directory
    text
    TargetDirectory
    Value note: "$WorkingDirectory".
    Extract files
    true/false
    ExtractFiles
    Default value is "True".
    Project name
    text
    Project
    Not specifying will "Use team project from AzureDevOps resource".
    Repository name
    text
    Repository
    Not specifying will "Use the project name".
    Project collection URL
    text
    Url
    Not specifying will "Use team project from AzureDevOps resource".
    User name
    text
    UserName
    Not specifying will "Use user name from AzureDevOps resource's credentials".
    Personal access token
    text
    Token
    Not specifying will "Use team project from AzureDevOps resource's credential".
  • Import Artifact from Jenkins - Downloads an artifact from the specified Jenkins server and saves it to the artifact library.

    Import Artifact from Jenkins

    Downloads an artifact from the specified Jenkins server and saves it to the artifact library.

    Script usage:

    Jenkins::Import-Artifacts(
    	[From: <text>],
    	[Project: <text>],
    	[Branch: <text>],
    	[BuildNumber: <text>],
    	[Artifact: <text>],
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	[JenkinsBuildNumber: <text>],
    	[Credentials: <text>],
    	[Server: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[CsrfProtectionEnabled: <true/false>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Jenkins resource
    text
    From
    Default value is "$CIProject".
    Project name
    text
    Project
    Default value is "$JenkinsProjectName($CIProject)".
    Branch name
    text
    Branch
    The branch name is required for a Jenkins multi-branch project, otherwise should be left empty. Default value is "$JenkinsBranchName($CIBuild)".
    Build number
    text
    BuildNumber
    The build number may be a specific build number, or a special value such as "lastSuccessfulBuild", "lastStableBuild", "lastBuild", or "lastCompletedBuild". Default value is "$JenkinsBuildNumber($CIBuild)".
    BuildMaster artifact name
    text
    Artifact
    The name of the artifact in BuildMaster to create after artifacts are downloaded from Jenkins. Default value is "Default".
    Include files
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Default value is "**".
    Exclude files
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Actual build number (output)
    text
    JenkinsBuildNumber
    When you specify a Build Number like "lastBuild", this will output the real Jenkins BuildNumber into a runtime variable. e.g. $ActualBuildNumber".
    Jenkins service name
    text
    Credentials
    Not specifying will "Use name from Jenkins resource".
    Server URL
    text
    Server
    Not specifying will "Use service's server URL".
    User name
    text
    UserName
    Not specifying will "Use credential's Username".
    API token or password
    text
    Password
    Not specifying will "Use credential's token/password".
    Use CSRF token
    true/false
    CsrfProtectionEnabled
    Default value is "True".
  • Import Artifact from TeamCity - Downloads an artifact from the specified TeamCity server and saves it to the artifact library.

    Import Artifact from TeamCity

    Downloads an artifact from the specified TeamCity server and saves it to the artifact library.

    Script usage:

    TeamCity::Import-Artifact(
    	[From: <text>],
    	[Project: <text>],
    	[BuildConfiguration: <text>],
    	[BuildNumber: <text>],
    	[Artifact: <text>],
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	[Branch: <text>],
    	[TeamCityBuildNumber: <text>],
    	[BuildConfigurationId: <text>],
    	[CredentialName: <text>],
    	[Server: <text>],
    	[Token: <text>],
    	[UserName: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    TeamCity resource
    text
    From
    Default value is "$CIProject".
    Project name
    text
    Project
    Default value is "$CIProject".
    Build configuration
    text
    BuildConfiguration
    Default value is "$CIProjectScope".
    Build number
    text
    BuildNumber
    The build number may be a specific build number, or a special value such as "lastSuccessful", "lastFinished", or "lastPinned". To specify a build ID instead, append ':id' as a suffix, e.g. 1234:id. Default value is "$CIBuildNumber".
    BuildMaster artifact name
    text
    Artifact
    The name of the artifact in BuildMaster to create after artifacts are downloaded from TeamCity. Default value is "Default".
    Include files
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Default value is "**".
    Exclude files
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Branch filter
    text
    Branch
    When the build number is a special value such as "lastSuccesful", this will be used to find that build.
    Actual build number (output)
    text
    TeamCityBuildNumber
    When you specify a Build Number like "lastSuccessful", this will output the real TeamCity BuildNumber into a runtime variable. e.g. $ActualBuildNumber".
    BuildConfigurationId
    text
    BuildConfigurationId
    Credentials
    text
    CredentialName
    Not specifying will "Use credential from resource".
    TeamCity server URL
    text
    Server
    Not specifying will "Use server URL from credential".
    Token
    text
    Token
    Not specifying will "Use token from credential".
    UserName
    text
    UserName
  • Import Azure DevOps Artifact - Downloads an artifact from Azure DevOps and saves it to the artifact library.

    Import Azure DevOps Artifact

    Downloads an artifact from Azure DevOps and saves it to the artifact library.

    Script usage:

    AzureDevOps::Import-Artifact(
    	BuildDefinition: <text>,
    	[BuildNumber: <text>],
    	ArtifactName: <text>,
    	[AzureDevOpsBuildNumber: <text>],
    	From: <text>,
    	[Project: <text>],
    	[Repository: <text>],
    	[Url: <text>],
    	[UserName: <text>],
    	[Token: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Build definition
    text
    BuildDefinition
    This argument is required.
    Build number
    text
    BuildNumber
    Value note: "latest".
    Artifact name
    text
    ArtifactName
    This argument is required.
    Set build number to variable
    text
    AzureDevOpsBuildNumber
    The Azure DevOps build number can be output into a runtime variable. e.g. $AzureDevOpsBuildNumber".
    From AzureDevOps resource
    text
    From
    This argument is required.
    Project name
    text
    Project
    Not specifying will "Use team project from AzureDevOps resource".
    Repository name
    text
    Repository
    Not specifying will "Use the project name".
    Project collection URL
    text
    Url
    Not specifying will "Use team project from AzureDevOps resource".
    User name
    text
    UserName
    Not specifying will "Use user name from AzureDevOps resource's credentials".
    Personal access token
    text
    Token
    Not specifying will "Use team project from AzureDevOps resource's credential".

Assets

  • Create Asset Directory Folder - Ensures that a subdirectory exists in a ProGet Asset Directory.

    Create Asset Directory Folder

    Ensures that a subdirectory exists in a ProGet Asset Directory.

    Script usage:

    ProGet::Create-Directory(
    	Path: <text>,
    	[Source: <text>],
    	[Resource: <text>],
    	[EndpointUrl: <text>],
    	[ApiKey: <text>],
    	[UserName: <text>],
    	[Password: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Path (default)
    text
    Path
    This argument is required.
    Source
    text
    Source
    Secure resource (legacy)
    text
    Resource
    API endpoint URL
    text
    EndpointUrl
    Not specifying will "Use URL from secure resource".
    API key
    text
    ApiKey
    Not specifying will "Use token from secure credentials".
    User name
    text
    UserName
    Not specifying will "Use user name from secure credentials".
    Password
    text
    Password
    Not specifying will "Use password from secure credentials".

    Example:

    # ensures that the my/folder/path directory exists in the ProGet Asset Directory specified by the MyAssetDirResource secure resource
    ProGet::Create-Directory my/folder/path
    (
        Resource: MyAssetDirResource
    );
    
  • Download Asset from ProGet - Downloads a file from a ProGet Asset Directory.

    Download Asset from ProGet

    Downloads a file from a ProGet Asset Directory.

    Script usage:

    ProGet::Download-Asset(
    	From: <text>,
    	[To: <text>],
    	[ProxyData: <true/false>],
    	[Source: <text>],
    	[Resource: <text>],
    	[EndpointUrl: <text>],
    	[ApiKey: <text>],
    	[UserName: <text>],
    	[Password: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    From (default)
    text
    From
    This argument is required.
    To
    text
    To
    Proxy data through BuildMaster/Otter
    true/false
    ProxyData
    When true, requests will be made from the BuildMaster/Otter server instead of directly from the server in context.
    Source
    text
    Source
    Secure resource (legacy)
    text
    Resource
    API endpoint URL
    text
    EndpointUrl
    Not specifying will "Use URL from secure resource".
    API key
    text
    ApiKey
    Not specifying will "Use token from secure credentials".
    User name
    text
    UserName
    Not specifying will "Use user name from secure credentials".
    Password
    text
    Password
    Not specifying will "Use password from secure credentials".

    Example:

    # download dir/info.txt to the current working directory from the MyAssetDirResource asset directory
    ProGet::Download-Asset
    (
        From: dir/info.txt,
        To: $WorkingDirectory,
        Resource: MyAssetDirResource
    );
    
  • Ensure Asset Directory Item Metadata - Ensures that metadata exists on an Asset Directory item.

    Ensure Asset Directory Item Metadata

    Ensures that metadata exists on an Asset Directory item.

    Script usage:

    ProGet::Ensure-Metadata(
    	Path: <text>,
    	[Metadata: <%(key1: value1, ...)>],
    	[Source: <text>],
    	[Resource: <text>],
    	[EndpointUrl: <text>],
    	[ApiKey: <text>],
    	[UserName: <text>],
    	[Password: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Path
    text
    Path
    This argument is required.
    Metadata
    %(key1: value1, ...)
    Metadata
    Source
    text
    Source
    Secure resource (legacy)
    text
    Resource
    API endpoint URL
    text
    EndpointUrl
    Not specifying will "Use URL from secure resource".
    API key
    text
    ApiKey
    Not specifying will "Use token from secure credentials".
    User name
    text
    UserName
    Not specifying will "Use user name from secure credentials".
    Password
    text
    Password
    Not specifying will "Use password from secure credentials".

    Example:

    # ensures that the my/folder/path directory exists in the ProGet Asset Directory specified by the MyAssetDirResource secure resource
    ProGet::Ensure-Metadata
    (
        Path: assetitem.html,
        Metadata: %(CreatedFor: $ApplicationName, Release: $ReleaseNumber),
        Resource: MyAssetDirResource
    );
    
  • Upload Assets to ProGet - Uploads files to a ProGet Asset Directory.

    Upload Assets to ProGet

    Uploads files to a ProGet Asset Directory.

    Script usage:

    ProGet::Upload-Assets(
    	[To: <text>],
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	[From: <text>],
    	[ProxyData: <true/false>],
    	[Source: <text>],
    	[Resource: <text>],
    	[EndpointUrl: <text>],
    	[ApiKey: <text>],
    	[UserName: <text>],
    	[Password: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    To
    text
    To
    Include
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Value note: "* (top-level items)".
    Exclude
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Source directory
    text
    From
    Value note: "$WorkingDirectory".
    Proxy data through BuildMaster/Otter
    true/false
    ProxyData
    When true, requests will be made from the BuildMaster/Otter server instead of directly from the server in context.
    Source
    text
    Source
    Secure resource (legacy)
    text
    Resource
    API endpoint URL
    text
    EndpointUrl
    Not specifying will "Use URL from secure resource".
    API key
    text
    ApiKey
    Not specifying will "Use token from secure credentials".
    User name
    text
    UserName
    Not specifying will "Use user name from secure credentials".
    Password
    text
    Password
    Not specifying will "Use password from secure credentials".

    Example:

    # upload all .zip files from the working directory to the remotedir/subdir directory on the MyAssetDirResource asset directory
    ProGet::Upload-Assets
    (
        From: $WorkingDirectory,
        To: remotedir/subdir,
        Include: *.zip,
        Resource: MyAssetDirResource
    );
    

Batch

  • BATCall - Executes an OtterScript Script stored in a raft.

    BATCall

    Executes an OtterScript Script stored in a raft.

    Script usage:

    Scripting::BATCall(
    	ScriptName: <text>,
    	[Arguments: <text>],
    	[EnvironmentVariables: <%(key1: value1, ...)>],
    	[Parameters: <%(key1: value1, ...)>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Script name (default)
    text
    ScriptName
    This argument is required.
    Arguments
    text
    Arguments
    Specify the commandline arguments to pass to the batch file.
    Environment variables
    %(key1: value1, ...)
    EnvironmentVariables
    Specify variables to set before running the batch script.
    Parameters
    %(key1: value1, ...)
    Parameters

BuildMaster

  • Backup Application - Exports an application to a package source.

    Backup Application

    Exports an application to a package source.

    Script usage:

    System::Backup-Application(
    	[Application: <text>],
    	PackageSource: <text>
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Application name
    text
    Application
    Default value is "$ApplicationName".
    Package source
    text
    PackageSource
    This argument is required.
  • Create Build - Creates a new build in BuildMaster of an application, and optionally waits for it to complete.

    Create Build

    Creates a new build in BuildMaster of an application, and optionally waits for it to complete.

    Script usage:

    Create-Build(
    	Application: <text>,
    	[ReleaseNumber: <text>],
    	[Pipeline: <text>],
    	[Variables: <%(key1: value1, ...)>],
    	[ForcePromotion: <true/false>],
    	[Wait: <true/false>],
    	[FailIfCannotCreate: <true/false>],
    	[DeployToFirstStage: <true/false>]
    );
    
    

    This operation may be prefixed with BuildMaster::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    In application
    text
    Application
    This argument is required.
    For release number
    text
    ReleaseNumber
    This may be a specific release number, "latest" or "all". Default value is "latest".
    With pipeline
    text
    Pipeline
    This is used if ReleaseNumber is empty.
    Build variables
    %(key1: value1, ...)
    Variables
    Value note: "%(var1: 1000, var2: $HdarFsServer, ...)".
    Force past gate
    true/false
    ForcePromotion
    Wait for execution
    true/false
    Wait
    Default value is "True".
    Fail if nothing created
    true/false
    FailIfCannotCreate
    Deploy to first stage
    true/false
    DeployToFirstStage
    Default value is "True".

    Note: When all releases is specified, then a build in *each* release will be created.

    Note: When FailIfCannotCreate is specified, the execution will halt if there are no valid builds to create; for example, if the targeted release number doesn't exist. Otherwise, a warning will be issued.

    Example:

    Create-Build
    (
        Application: Hdars.Packager,
        ReleaseNumber: latest,
        Variables: %(ReleaseCandidate: true, PackageType: $PackageType)
    );
  • Create Release - Creates a release in another application.

    Create Release

    Creates a release in another application.

    Script usage:

    Create-Release(
    	Application: <text>,
    	[ReleaseNumber: <text>],
    	Pipeline: <text>,
    	[ReleaseName: <text>],
    	[ReleaseTemplate: <text>],
    	[Variables: <%(key1: value1, ...)>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    In application
    text
    Application
    This argument is required.
    Release number
    text
    ReleaseNumber
    Not specifying will use value: "Auto-increment".
    Pipeline name
    text
    Pipeline
    This argument is required.
    Release name
    text
    ReleaseName
    Release template
    text
    ReleaseTemplate
    Variables
    %(key1: value1, ...)
    Variables
    Value note: "%(var1: 1000, var2: $HdarFsServer, ...)".

    Example:

    Create-Release
    (
        Application: Hdars.Packager,
        ReleaseNumber: $ReleaseNumber,
        Pipeline: AutoCreate,
        ReleaseTemplate: TemplateName,
        Variables: %(TargetServer: Tst001, ReleaseType: $ReleaseType)
    );
  • Create Release Note - Attaches a release note to the current release.

    Create Release Note

    Attaches a release note to the current release.

    Script usage:

    Create-ReleaseNote(
    	[Note: <text>],
    	[Application: <text>],
    	[Release: <text>],
    	[Build: <text>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Note text (default)
    text
    Note
    Application name
    text
    Application
    Default value is "$ApplicationName".
    Release number
    text
    Release
    Default value is "$ReleaseNumber".
    Build number
    text
    Build
    Value note: "none".

    Example:

    Create-ReleaseNote Build $ReleaseNumber.$BuildNumber deployed to ProGet.;
  • Deploy Build - Deploys a build in BuildMaster of an application, and optionally waits for it to complete.

    Deploy Build

    Deploys a build in BuildMaster of an application, and optionally waits for it to complete.

    Script usage:

    Deploy-Build(
    	Application: <text>,
    	[ReleaseNumber: <text>],
    	[BuildNumber: <text>],
    	[Variables: <%(key1: value1, ...)>],
    	[From: <text>],
    	[To: <text>],
    	[Force: <true/false>],
    	[Wait: <true/false>],
    	[FailIfCannotDeploy: <true/false>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    In application
    text
    Application
    This argument is required.
    For release number
    text
    ReleaseNumber
    This may be a specific release number, "latest" or "all". Default value is "latest".
    Build number
    text
    BuildNumber
    Select a specific build number. This may also be left blank to select all active builds. Value note: "(all active builds)".
    Deployment variables
    %(key1: value1, ...)
    Variables
    Value note: "%(var1: 1000, var2: $HdarFsServer, ...)".
    From stage
    text
    From
    To stage
    text
    To
    Force past gate
    true/false
    Force
    Wait for deployments
    true/false
    Wait
    Default value is "True".
    Fail if nothing is deployed
    true/false
    FailIfCannotDeploy

    Note: When all releases is specified, then a build in *each* release will be created.

    Note: When "from" or "to" pipeline stages are specified, only packages that come from or are going to those stages in their pipeline will be deployed.

  • Ensure Release - Ensures a release exists in another application.

    Ensure Release

    Ensures a release exists in another application.

    Script usage:

    Ensure-Release(
    	[Application: <text>],
    	[ReleaseNumber: <text>],
    	[Pipeline: <text>],
    	[ReleaseName: <text>],
    	[Variables: <%(key1: value1, ...)>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    In application
    text
    Application
    Default value is "$ApplicationName".
    Release number
    text
    ReleaseNumber
    Default value is "$ReleaseNumber".
    Pipeline name
    text
    Pipeline
    Default value is "$PipelineName".
    Release name
    text
    ReleaseName
    Variables
    %(key1: value1, ...)
    Variables
    Value note: "%(var1: 1000, var2: $HdarFsServer, ...)".

    Example:

    Ensure-Release
    (
        Application: Hdars.Packager,
        ReleaseNumber: $ReleaseNumber,
        Pipeline: AutoCreate,
        Variables: %(TargetServer: Tst001, ReleaseType: $ReleaseType)
    );
  • Invoke Module - Executes an OtterScript module stored in BuildMaster.

    Invoke Module

    Executes an OtterScript module stored in BuildMaster.

    Script usage:

    Invoke-Module(
    	Module: <text>,
    	[Arguments: <%(key1: value1, ...)>],
    	[CaptureOutputArguments: <@(text)>]
    );
    
    

    This operation may be prefixed with BuildMaster::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Module (default)
    text
    Module
    This argument is required.
    Arguments
    %(key1: value1, ...)
    Arguments
    Specify arguments to pass in to the module using a map. If any required values are not supplied, a runtime error will be raised. For example: %(arg1: value, arg2: @(list,of,items)).
    Capture output arguments
    @(text)
    CaptureOutputArguments
    Specify output arguments to capture and set in the calling scope as variables using a list. For example: @(filePath,errorMessage).

    Note: Runtime variables you've defined before executing an Invoke operation will not be visible to the invoked script, and variables that you set within the invoked script will not be available.

    Example:

    # This will call the global "MyModule" module and pass in an argument called $name with value "Steve"
    Invoke-Module global::MyModule
    (
        AdditionalArguments: %(name: Steve)
    );
  • Invoke OtterScript - Executes OtterScript specified as a string.

    Invoke OtterScript

    Executes OtterScript specified as a string.

    Script usage:

    Invoke-OtterScript(
    	Text: <text>,
    	[AdditionalVariables: <%(key1: value1, ...)>],
    	[CaptureOutputVariables: <@(text)>]
    );
    
    

    This operation may be prefixed with BuildMaster::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Script text (default)
    text
    Text
    This argument is required.
    Additional variables
    %(key1: value1, ...)
    AdditionalVariables
    Specify variables to pass in to the script using a map. For example: %(var1: MyVariableValue, var2: @(list,of,items)).
    Capture output variables
    @(text)
    CaptureOutputVariables
    Specify variables to capture and set in the calling scope using a list. For example: @(filePath,errorMessage).

    Note: Runtime variables you've defined before executing an Invoke operation will not be visible to the invoked script, and variables that you set within the invoked script will not be available.

    Example:

    # This will output "Hello, Steve"
    Invoke-OtterScript
    (
      Text: >> 
        set $MyName = Steve;
        Log-Information Hello, `$MyName; 
        >>,
      CaptureOutputArguments: @(MyName)
    );
    
    # This will output "Hello, Steve"
    Log-Information Hello, $MyName;
  • Invoke Script - Executes an OtterScript-based Script stored in BuildMaster.

    Invoke Script

    Executes an OtterScript-based Script stored in BuildMaster.

    Script usage:

    Invoke-Script(
    	Script: <text>,
    	[AdditionalVariables: <%(key1: value1, ...)>],
    	[CaptureOutputVariables: <@(text)>]
    );
    
    

    This operation may be prefixed with BuildMaster::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Script (default)
    text
    Script
    This argument is required.
    Additional variables
    %(key1: value1, ...)
    AdditionalVariables
    Specify variables to pass in to the script using a map. For example: %(var1: MyVariableValue, var2: @(list,of,items)).
    Capture output variables
    @(text)
    CaptureOutputVariables
    Specify variables to capture and set in the calling scope using a list. For example: @(filePath,errorMessage).

    Note: Runtime variables you've defined before executing an Invoke operation will not be visible to the invoked script, and variables that you set within the invoked script will not be available.

    Example:

    # This will call the global "MyDeploy" script and pass in a variable called $name with value "Steve"
    Invoke-Plan global::MyDeploy
    (
        AdditionalVariables: %(name: Steve)
    );
  • Manual Operation - Halts the execution until an individual or group completes a specified task.

    Manual Operation

    Halts the execution until an individual or group completes a specified task.

    Script usage:

    Perform-ManualOperation(
    	Name: <text>,
    	[Description: <text>],
    	AssignedTo: <text>,
    	[SendEmail: <true/false>],
    	[CC: <@(text)>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Task name
    text
    Name
    The name of the task that uniquely identifies it in the UI. This argument is required.
    Task description
    text
    Description
    Assigned to
    text
    AssignedTo
    The user or group who is responsible to complete the specified task. Default value is "$ExecutionUser". This argument is required.
    Send email to assignees
    true/false
    SendEmail
    CC email addresses
    @(text)
    CC
  • Reject Build - Rejects a BuildMaster build.

    Reject Build

    Rejects a BuildMaster build.

    Script usage:

    Reject-Build(
    	[Application: <text>],
    	[ReleaseNumber: <text>],
    	BuildNumber: <text>,
    	[FailIfAlreadyRejected: <true/false>],
    	[RejectionNotes: <text>]
    );
    
    

    This operation may be prefixed with BuildMaster::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    In application
    text
    Application
    Default value is "$ApplicationName".
    With release
    text
    ReleaseNumber
    Default value is "$ReleaseNumber".
    Build number (default)
    text
    BuildNumber
    This argument is required.
    Fail if build is already rejected
    true/false
    FailIfAlreadyRejected
    Value note: "false".
    Rejection notes
    text
    RejectionNotes
    Value note: "unspecified".

    Example:

    Reject-Build $BuildToReject;
  • Set Build Number - Sets (changes) the build number of the currently executing build.

    Set Build Number

    Sets (changes) the build number of the currently executing build.

    Script usage:

    Set-BuildNumber <text>;
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    New build number (default)
    text
    BuildNumber
    This argument is required.

    Build Number in Context: This operation will do two things: change the BuildNumber in the database and create a runtime variable named $BuildNumber with the new build number. However, it will *not* update the execution context with the new BuildNumber; this means that, for some operations that rely on the BuildNumber in context (instead of looking up the BuildNumber based on the BuildId), this will likely result in a "build not found" or such error. To resolve this, explicitly pass in $BuildNumber as an argument. For example, if you create an artifact after setting the BuildNumber, explicitly pass in the BuildNumber.

    Example:

    # The build.xml file contains a project version we wish to show users in the build number
    PSCall GLOBAL::ExtractProjectVersion
    (
        buildFilePath: $WorkingDirectory\build.xml,
        OutputArg => $ProjectVersionTemp
    );
    
    # This will update the build number
    Set-BuildNumber $ExtractProjectVersion.$BuildNumber;
    
  • Set Build Variable - Creates or updates a variable on a build.

    Set Build Variable

    Creates or updates a variable on a build.

    Script usage:

    Set-BuildVariable(
    	Variable: <text>,
    	Value: <RuntimeValue>,
    	[Release: <text>],
    	[Build: <text>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Variable name (default)
    text
    Variable
    This argument is required.
    Variable value
    RuntimeValue
    Value
    This argument is required.
    Release number
    text
    Release
    Value note: "$ReleaseNumber".
    Build number
    text
    Build
    Value note: "$BuildNumber".
  • Set Configuration Variable - Creates or updates a variable in BuildMaster.

    Set Configuration Variable

    Creates or updates a variable in BuildMaster.

    Script usage:

    Set-ConfigurationVariable(
    	Variable: <text>,
    	Value: <RuntimeValue>,
    	[Application: <text>],
    	[ApplicationGroup: <text>],
    	[Deployable: <text>],
    	[Server: <text>],
    	[ServerRole: <text>],
    	[Environment: <text>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Variable name (default)
    text
    Variable
    This argument is required.
    Variable value
    RuntimeValue
    Value
    This argument is required.
    Application
    text
    Application
    Application group
    text
    ApplicationGroup
    Deployable
    text
    Deployable
    Server
    text
    Server
    Server role
    text
    ServerRole
    Environment
    text
    Environment
  • Set Release Variable - Creates or updates a variable on a release or build.

    Set Release Variable

    Creates or updates a variable on a release or build.

    Script usage:

    Set-ReleaseVariable(
    	Variable: <text>,
    	Value: <RuntimeValue>,
    	[Release: <text>],
    	[Build: <text>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Variable name (default)
    text
    Variable
    This argument is required.
    Variable value
    RuntimeValue
    Value
    This argument is required.
    Release number
    text
    Release
    Value note: "$ReleaseNumber".
    Build number
    text
    Build
    Value note: "none (create as release variable)".
  • Wait for Deployments - Waits for deployments to a pipeline stage to complete.

    Wait for Deployments

    Waits for deployments to a pipeline stage to complete.

    Script usage:

    WaitFor-Deployments(
    	Application: <text>,
    	PipelineStage: <text>,
    	[ReleaseNumber: <text>],
    	[BuildNumber: <text>]
    );
    
    

    This operation may be prefixed with BuildMaster::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    In application
    text
    Application
    This argument is required.
    Pipeline stage
    text
    PipelineStage
    This argument is required.
    Release number
    text
    ReleaseNumber
    This may be a specific release number, "latest" or "any". Default value is "any".
    Build number
    text
    BuildNumber
    This may be a specific release number, "latest" or "any". Default value is "any".

    Example:

    WaitFor-Deployments
    (
        Application: Hdars.Packager,
        ReleaseNumber: 1.0.0,
        BuildNumber: 10,
        PipelineStage: Integration
    );

Builds

  • Queue Azure DevOps Build - Queues a build in Azure DevOps, optionally waiting for its completion.

    Queue Azure DevOps Build

    Queues a build in Azure DevOps, optionally waiting for its completion.

    Script usage:

    AzureDevOps::Queue-Build(
    	BuildDefinition: <text>,
    	[WaitForCompletion: <true/false>],
    	[Validate: <true/false>],
    	[AzureDevOpsBuildNumber: <text>],
    	From: <text>,
    	[Project: <text>],
    	[Repository: <text>],
    	[Url: <text>],
    	[UserName: <text>],
    	[Token: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Build definition
    text
    BuildDefinition
    This argument is required.
    Wait for completion
    true/false
    WaitForCompletion
    Default value is "True".
    Validate success
    true/false
    Validate
    Default value is "True".
    Set build number to variable
    text
    AzureDevOpsBuildNumber
    The Azure DevOps build number can be output into a runtime variable. e.g. $AzureDevOpsBuildNumber".
    From AzureDevOps resource
    text
    From
    This argument is required.
    Project name
    text
    Project
    Not specifying will "Use team project from AzureDevOps resource".
    Repository name
    text
    Repository
    Not specifying will "Use the project name".
    Project collection URL
    text
    Url
    Not specifying will "Use team project from AzureDevOps resource".
    User name
    text
    UserName
    Not specifying will "Use user name from AzureDevOps resource's credentials".
    Personal access token
    text
    Token
    Not specifying will "Use team project from AzureDevOps resource's credential".
  • Queue Jenkins Build - Queues a build in Jenkins, optionally waiting for its completion.

    Queue Jenkins Build

    Queues a build in Jenkins, optionally waiting for its completion.

    Script usage:

    Jenkins::Queue-Build(
    	[From: <text>],
    	[Project: <text>],
    	[Branch: <text>],
    	[BuildNumber: <text>],
    	[Parameters: <%(key1: value1, ...)>],
    	[WaitForStart: <true/false>],
    	[WaitForCompletion: <true/false>],
    	[JenkinsBuildNumber: <text>],
    	[ProxyRequest: <true/false>],
    	[AdditionalParameters: <text>],
    	[Credentials: <text>],
    	[Server: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[CsrfProtectionEnabled: <true/false>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Jenkins resource
    text
    From
    Default value is "$CIProject".
    Project name
    text
    Project
    Default value is "$JenkinsProjectName($CIProject)".
    Branch name
    text
    Branch
    The branch name is required for a Jenkins multi-branch project, otherwise should be left empty. Default value is "$JenkinsBranchName($CIBuild)".
    Build number
    text
    BuildNumber
    The build number may be a specific build number, or a special value such as "lastSuccessfulBuild", "lastStableBuild", "lastBuild", or "lastCompletedBuild". Default value is "$JenkinsBuildNumber($CIBuild)".
    Jenkins build parameters
    %(key1: value1, ...)
    Parameters
    e.g. %(MyVar:MyValue, MyVar2:MyValue2)".
    Wait for start
    true/false
    WaitForStart
    Ignored if wait for completion is true. Default value is "True".
    Wait for completion
    true/false
    WaitForCompletion
    Default value is "True".
    Actual build number (output)
    text
    JenkinsBuildNumber
    When you specify a Build Number like "lastBuild", this will output the real Jenkins BuildNumber into a runtime variable. e.g. $ActualBuildNumber".
    Use server in context
    true/false
    ProxyRequest
    When selected, this will proxy the HTTP calls through the server in context instead of using the server Otter or BuildMaster is installed on. If the server in context is SSH-based, then an error will be raised.
    AdditionalParameters
    text
    AdditionalParameters
    Jenkins service name
    text
    Credentials
    Not specifying will "Use name from Jenkins resource".
    Server URL
    text
    Server
    Not specifying will "Use service's server URL".
    User name
    text
    UserName
    Not specifying will "Use credential's Username".
    API token or password
    text
    Password
    Not specifying will "Use credential's token/password".
    Use CSRF token
    true/false
    CsrfProtectionEnabled
    Default value is "True".

Configuration Files

  • Deploy Configuration File - Deploys an instance of a configuration file to disk after applying an optional template.

    Deploy Configuration File

    Deploys an instance of a configuration file to disk after applying an optional template.

    Script usage:

    Deploy-ConfigFile(
    	ConfigFileName: <text>,
    	Instance: <text>,
    	[To: <text>],
    	[OutputFileName: <text>]
    );
    
    

    This operation may be prefixed with ConfigFiles::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Configuration file name
    text
    ConfigFileName
    This argument is required.
    Instance
    text
    Instance
    This argument is required.
    To directory
    text
    To
    Value note: "$WorkingDirectory".
    To file name
    text
    OutputFileName
    Value note: "do not rename file".
  • Export Configuration File - Exports a configuration file instance or template to disk without recording a deployment or replacing variables.

    Export Configuration File

    Exports a configuration file instance or template to disk without recording a deployment or replacing variables.

    Script usage:

    Export-ConfigFile(
    	ConfigFileName: <text>,
    	Instance: <text>,
    	[To: <text>],
    	[OutputFileName: <text>]
    );
    
    

    This operation may be prefixed with ConfigFiles::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Configuration file name
    text
    ConfigFileName
    This argument is required.
    Instance
    text
    Instance
    This argument is required.
    To directory
    text
    To
    Value note: "$WorkingDirectory".
    To file name
    text
    OutputFileName
    Value note: "do not rename file".

Databases

  • Backup Database - Uses a Database Connection to back up a database to a file on disk.

    Backup Database

    Uses a Database Connection to back up a database to a file on disk.

    Script usage:

    DB::Backup-Database(
    	Connection: <text>,
    	Name: <text>,
    	To: <text>
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Database connection
    text
    Connection
    This argument is required.
    From database name
    text
    Name
    This argument is required.
    To backup file
    text
    To
    This argument is required.
  • Build Database Updater Executable - Generates an executable file that can act as a self-installing package of database change scripts.

    Build Database Updater Executable

    Generates an executable file that can act as a self-installing package of database change scripts.

    Script usage:

    SqlServer::Bundle-SqlScripts(
    	[Directory: <text>],
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	OutputFile: <text>
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    From directory
    text
    Directory
    Value note: "$WorkingDirectory".
    Include
    @(text)
    Include
    See KB#1119 to learn more about masking syntax.
    Exclude
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Output file
    text
    OutputFile
    This argument is required.
  • Execute Database Change Scripts - Executes change scripts associated with the current release and any change scripts from prior releases that have not been run against the database to date.

    Execute Database Change Scripts

    Executes change scripts associated with the current release and any change scripts from prior releases that have not been run against the database to date.

    Script usage:

    Execute-ChangeScripts(
    	Connection: <text>,
    	[InitializeDatabase: <true/false>],
    	[Group: <text>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Database connection
    text
    Connection
    This argument is required.
    Initialize database
    true/false
    InitializeDatabase
    Group
    text
    Group

    Note: When initialize database is true, the database will be initialized (i.e. a metadata table will be created too track change scripts) if it is required.

  • Execute Database Scripts on Disk - Finds files matching a search mask and executes those scripts against a database connection.

    Execute Database Scripts on Disk

    Finds files matching a search mask and executes those scripts against a database connection.

    Script usage:

    Execute-DatabaseScripts(
    	Connection: <text>,
    	[Directory: <text>],
    	[Include: <@(text)>],
    	[Exclude: <@(text)>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Database connection
    text
    Connection
    This argument is required.
    In directory
    text
    Directory
    Value note: "$WorkingDirectory".
    Include (default)
    @(text)
    Include
    See KB#1119 to learn more about masking syntax.
    Exclude
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
  • Execute Database Statement - Executes a statement against a database.

    Execute Database Statement

    Executes a statement against a database.

    Script usage:

    Execute-DatabaseStatement(
    	Connection: <text>,
    	Statement: <text>,
    	[LogStatement: <true/false>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Database connection
    text
    Connection
    This argument is required.
    SQL Statement
    text
    Statement
    This argument is required.
    Log statement to execute
    true/false
    LogStatement
    Default value is "True".

    Example:

    Execute-DatabaseStatement (
        Statement: >>
        print 'Executing BuildMaster statement...'
    
        select * from sys.databases
        where owner_sid > 1
        order by name
    
        print 'Execution complete.'
    >>,
        Connection: SqlServerTesting
    );
    
  • Restore Database - Uses a Database Connection to restore a database from a file on disk.

    Restore Database

    Uses a Database Connection to restore a database from a file on disk.

    Script usage:

    Restore-Database(
    	Connection: <text>,
    	From: <text>,
    	Name: <text>,
    	[Verbose: <true/false>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Database connection
    text
    Connection
    This argument is required.
    From backup file
    text
    From
    This argument is required.
    To database name
    text
    Name
    This argument is required.
    Log database statements
    true/false
    Verbose

Docker

  • Assemble Docker Image - A simplified version of Build Docker Image for when the full power of a Dockerfile is not required.

    Assemble Docker Image

    A simplified version of Build Docker Image for when the full power of a Dockerfile is not required.

    Script usage:

    Docker::Assemble-Image(
    	Source: <text>,
    	RepositoryName: <text>,
    	[Tag: <text>],
    	BaseSource: <text>,
    	BaseRepositoryName: <text>,
    	BaseTag: <text>,
    	[From: <text>],
    	[To: <text>],
    	[Cmd: <text>],
    	[Env: <%(key1: value1, ...)>],
    	[Volumes: <@(text)>],
    	[AdditionalArguments: <text>],
    	[AttachToBuild: <true/false>],
    	[DockerExePath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Container Source
    text
    Source
    This argument is required.
    Repository name
    text
    RepositoryName
    This argument is required.
    Tag
    text
    Tag
    Default value is "$ReleaseNumber-ci.$BuildNumber".
    Container Source
    text
    BaseSource
    This argument is required.
    Repository name
    text
    BaseRepositoryName
    This argument is required.
    Tag
    text
    BaseTag
    Default value is "eg. latest". This argument is required.
    External path
    text
    From
    Value note: "$WorkingDirectory".
    Internal path
    text
    To
    Value note: "eg. /opt/myapplication".
    Command
    text
    Cmd
    Value note: "eg. ./myApplication".
    Environment variables
    %(key1: value1, ...)
    Env
    Value note: "eg. %(VARIABLE_NAME: value, ...)".
    Data paths
    @(text)
    Volumes
    Addtional arguments
    text
    AdditionalArguments
    Additional arguments for the docker CLI build command, such as --build-arg=ARG_NAME=value.
    Attach to build
    true/false
    AttachToBuild
    Default value is "True".
    Docker client path
    text
    DockerExePath
    Default value is "$DockerExePath".
  • Build Docker Image - Builds a Docker image using a text template and pushes it to a specified container source.

    Build Docker Image

    Builds a Docker image using a text template and pushes it to a specified container source.

    Script usage:

    Docker::Build-Image(
    	DockerfileAsset: <text>,
    	[TemplateArguments: <%(key1: value1, ...)>],
    	Source: <text>,
    	[From: <text>],
    	RepositoryName: <text>,
    	Tag: <text>,
    	[AdditionalArguments: <text>],
    	[AttachToBuild: <true/false>],
    	[RemoveAfterPush: <true/false>],
    	[DockerExePath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Dockerfile text template
    text
    DockerfileAsset
    Value note: "Select text template...". This argument is required.
    Addtional template arguments
    %(key1: value1, ...)
    TemplateArguments
    Value note: "eg. %(name: value, ...)".
    Container registry source
    text
    Source
    This argument is required.
    From
    text
    From
    Value note: "$WorkingDirectory".
    Repository name
    text
    RepositoryName
    This argument is required.
    Tag
    text
    Tag
    Value note: "eg. $ReleaseNumber-ci.$BuildNumber". This argument is required.
    Addtional arguments
    text
    AdditionalArguments
    Additional arguments for the docker CLI build command, such as --build-arg=ARG_NAME=value.
    Attach to build
    true/false
    AttachToBuild
    Default value is "True".
    Remove after pushing
    true/false
    RemoveAfterPush
    Docker client path
    text
    DockerExePath
    Default value is "$DockerExePath".
  • Docker exec in Container - Attaches and runs a command in an already running container

    Docker exec in Container

    Attaches and runs a command in an already running container

    Script usage:

    Docker::Docker-Exec(
    	ContainerName: <text>,
    	Command: <text>,
    	[WorkDir: <text>],
    	[Interactive: <true/false>],
    	[RunInBackground: <true/false>],
    	[AdditionalArguments: <text>],
    	[DockerExePath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Container name
    text
    ContainerName
    This argument is required.
    Command
    text
    Command
    Value note: "eg. sh -c "echo a && echo b"". This argument is required.
    Working directory in container
    text
    WorkDir
    Log output (interactive)
    true/false
    Interactive
    Keep STDIN open even if not attached. Default value is "True".
    Run in background (detach)
    true/false
    RunInBackground
    Detached mode: run command in the background. Default value is "False".
    Addtional arguments
    text
    AdditionalArguments
    Additional arguments for the docker CLI exec command, such as --env key=value.
    Docker client path
    text
    DockerExePath
    Default value is "$DockerExePath".
  • Run Docker Container - Runs a Docker container on a container host server using a container configuration file.

    Run Docker Container

    Runs a Docker container on a container host server using a container configuration file.

    Script usage:

    Docker::Run-Container(
    	Source: <text>,
    	RepositoryName: <text>,
    	Tag: <text>,
    	ConfigFileName: <text>,
    	ConfigFileInstanceName: <text>,
    	[ContainerName: <text>],
    	[RunInBackground: <true/false>],
    	[AdditionalArguments: <text>],
    	[DockerExePath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Container source
    text
    Source
    This argument is required.
    Repository name
    text
    RepositoryName
    This argument is required.
    Tag
    text
    Tag
    This argument is required.
    Container Configuration
    text
    ConfigFileName
    This argument is required.
    Container Runtime
    text
    ConfigFileInstanceName
    This argument is required.
    Container name
    text
    ContainerName
    Not specifying will use value: "auto".
    Run in background
    true/false
    RunInBackground
    Default value is "True".
    Addtional arguments
    text
    AdditionalArguments
    Additional arguments for the docker CLI exec command, such as --env key=value.
    Docker client path
    text
    DockerExePath
    Default value is "$DockerExePath".
  • Stop or Delete Docker Container - Stops a running Docker Container on a container host server.

    Stop or Delete Docker Container

    Stops a running Docker Container on a container host server.

    Script usage:

    Docker::Stop-Container(
    	ContainerName: <text>,
    	[Remove: <true/false>],
    	[FailIfContainerDoesNotExist: <true/false>],
    	[DockerExePath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Container name
    text
    ContainerName
    This argument is required.
    Remove after stop
    true/false
    Remove
    Default value is "True".
    Fail if container does not exist
    true/false
    FailIfContainerDoesNotExist
    Default value is "False".
    Docker client path
    text
    DockerExePath
    Default value is "$DockerExePath".
  • Tag Docker Image - Applies a new tag to a Docker image in the specified container source.

    Tag Docker Image

    Applies a new tag to a Docker image in the specified container source.

    Script usage:

    Docker::Tag-Image(
    	RepositoryName: <text>,
    	OriginalTag: <text>,
    	Source: <text>,
    	[DeactivateOriginalTag: <true/false>],
    	[NewRepositoryName: <text>],
    	NewTag: <text>,
    	[NewSource: <text>],
    	[AttachToBuild: <true/false>],
    	[DockerExePath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Repository name
    text
    RepositoryName
    This argument is required.
    Original tag
    text
    OriginalTag
    This argument is required.
    Container source
    text
    Source
    This argument is required.
    Remove from build
    true/false
    DeactivateOriginalTag
    Default value is "True".
    Repository name
    text
    NewRepositoryName
    Value note: "(same as original repository name)".
    New tag
    text
    NewTag
    This argument is required.
    New container source
    text
    NewSource
    Value note: "(same as original container source)".
    Attach to build
    true/false
    AttachToBuild
    Default value is "True".
    Docker client path
    text
    DockerExePath
    Default value is "$DockerExePath".

Docker Compose

  • Remove containers with Docker Compose - Stops containers and removes containers, networks, volumes, and images created by Docker::Compose-Up.

    Remove containers with Docker Compose

    Stops containers and removes containers, networks, volumes, and images created by Docker::Compose-Up.

    Script usage:

    Docker::Compose-Down(
    	[Timeout: <integer>],
    	ProjectName: <text>,
    	[ComposeYaml: <text>],
    	[WorkingDirectory: <text>],
    	[Verbose: <true/false>],
    	[AddArgs: <@(text)>],
    	[Source: <text>],
    	[DockerExePath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Timeout (seconds)
    integer
    Timeout
    Default value is "10".
    Project name (default)
    text
    ProjectName
    This argument is required.
    Compose file (YAML)
    text
    ComposeYaml
    You can specify the path to the "docker-compose.yaml" or this can be the compose file contents, eg. $FileContents(docker-compose.yml) or $ConfigurationFileText(Integration, docker-compose.yaml). Value note: "eg. $FileContents(docker-compose.yml)".
    Working directory
    text
    WorkingDirectory
    Verbose
    true/false
    Verbose
    Default value is "False".
    Additional docker-compose arguments
    @(text)
    AddArgs
    Container source
    text
    Source
    Docker client path
    text
    DockerExePath
    Default value is "$DockerExePath".
  • Run command in Docker Compose - Runs an arbitrary docker-compose command.

    Run command in Docker Compose

    Runs an arbitrary docker-compose command.

    Script usage:

    Docker::Compose-Command(
    	[Args: <@(text)>],
    	ProjectName: <text>,
    	[ComposeYaml: <text>],
    	[WorkingDirectory: <text>],
    	[Verbose: <true/false>],
    	[Source: <text>],
    	[DockerExePath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Command arguments
    @(text)
    Args
    Project name (default)
    text
    ProjectName
    This argument is required.
    Compose file (YAML)
    text
    ComposeYaml
    You can specify the path to the "docker-compose.yaml" or this can be the compose file contents, eg. $FileContents(docker-compose.yml) or $ConfigurationFileText(Integration, docker-compose.yaml). Value note: "eg. $FileContents(docker-compose.yml)".
    Working directory
    text
    WorkingDirectory
    Verbose
    true/false
    Verbose
    Default value is "False".
    Container source
    text
    Source
    Docker client path
    text
    DockerExePath
    Default value is "$DockerExePath".
  • Set container status with Docker Compose - Starts, restarts, stops, pauses, or resumes existing containers for a service.

    Set container status with Docker Compose

    Starts, restarts, stops, pauses, or resumes existing containers for a service.

    Script usage:

    Docker::Compose-SetStatus(
    	Action: <integer>,
    	[Timeout: <integer>],
    	[Signal: <text>],
    	[Services: <@(text)>],
    	ProjectName: <text>,
    	[ComposeYaml: <text>],
    	[WorkingDirectory: <text>],
    	[Verbose: <true/false>],
    	[AddArgs: <@(text)>],
    	[Source: <text>],
    	[DockerExePath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Action
    integer
    Action
    This argument is required.
    Timeout
    integer
    Timeout
    Used for the Restart and Stop actions. Default value is "10".
    Signal
    text
    Signal
    Used for the ForceStop action. Default value is "SIGKILL".
    Services
    @(text)
    Services
    Value note: "(all services)".
    Project name (default)
    text
    ProjectName
    This argument is required.
    Compose file (YAML)
    text
    ComposeYaml
    You can specify the path to the "docker-compose.yaml" or this can be the compose file contents, eg. $FileContents(docker-compose.yml) or $ConfigurationFileText(Integration, docker-compose.yaml). Value note: "eg. $FileContents(docker-compose.yml)".
    Working directory
    text
    WorkingDirectory
    Verbose
    true/false
    Verbose
    Default value is "False".
    Additional docker-compose arguments
    @(text)
    AddArgs
    Container source
    text
    Source
    Docker client path
    text
    DockerExePath
    Default value is "$DockerExePath".
  • Update containers with Docker Compose - Builds, (re)creates, and optionally starts containers for a Docker Compose project.

    Update containers with Docker Compose

    Builds, (re)creates, and optionally starts containers for a Docker Compose project.

    Script usage:

    Docker::Compose-Up(
    	[Recreate: <integer>],
    	[Build: <integer>],
    	[Timeout: <integer>],
    	[StartContainers: <true/false>],
    	[Services: <@(text)>],
    	ProjectName: <text>,
    	[ComposeYaml: <text>],
    	[WorkingDirectory: <text>],
    	[Verbose: <true/false>],
    	[AddArgs: <@(text)>],
    	[Source: <text>],
    	[DockerExePath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Re-create containers
    integer
    Recreate
    Default value is "IfChanged".
    Build images
    integer
    Build
    Default value is "IfMissing".
    Timeout (seconds)
    integer
    Timeout
    Default value is "10".
    Start containers
    true/false
    StartContainers
    Default value is "True".
    Services
    @(text)
    Services
    Value note: "(all services)".
    Project name (default)
    text
    ProjectName
    This argument is required.
    Compose file (YAML)
    text
    ComposeYaml
    You can specify the path to the "docker-compose.yaml" or this can be the compose file contents, eg. $FileContents(docker-compose.yml) or $ConfigurationFileText(Integration, docker-compose.yaml). Value note: "eg. $FileContents(docker-compose.yml)".
    Working directory
    text
    WorkingDirectory
    Verbose
    true/false
    Verbose
    Default value is "False".
    Additional docker-compose arguments
    @(text)
    AddArgs
    Container source
    text
    Source
    Docker client path
    text
    DockerExePath
    Default value is "$DockerExePath".

DotNet

  • Build MSBuild Project - Builds a project or solution using MSBuild.

    Build MSBuild Project

    Builds a project or solution using MSBuild.

    Script usage:

    MSBuild::Build-Project(
    	ProjectFile: <text>,
    	[Configuration: <text>],
    	[Platform: <text>],
    	[MSBuildProperties: <@(text)>],
    	[Arguments: <text>],
    	[MSBuildToolsPath: <text>],
    	[To: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Project file (default)
    text
    ProjectFile
    e.g. ProjectName.csproj or SolutionName.sln". This argument is required.
    Configuration
    text
    Configuration
    Default value is "Release".
    Target platform
    text
    Platform
    MSBuild properties
    @(text)
    MSBuildProperties
    Additional properties to pass to MSBuild, formatted as key=value pairs.
    Additional arguments
    text
    Arguments
    Raw command line arguments to pass to MSBuild.
    MSBuild tools path
    text
    MSBuildToolsPath
    Full path of the directory containing the MSBuild tools to use. This is usually similar to C:\Program Files (x86)\MSBuild\14.0\Bin. If no value is supplied, the operation will use vswhere to determine the path to the latest installation of MSBuild. Default value is "$MSBuildToolsPath".
    Target directory
    text
    To
    Value note: "Default".
  • dotnet build - Builds a .NET Core/Framework/Standard project using dotnet build.

    dotnet build

    Builds a .NET Core/Framework/Standard project using dotnet build.

    Script usage:

    DotNet::Build(
    	Project: <text>,
    	[Configuration: <text>],
    	[PackageSource: <text>],
    	[Version: <text>],
    	[Framework: <text>],
    	[Runtime: <text>],
    	[Output: <text>],
    	[VSToolsPath: <text>],
    	[ForceDependencyResolution: <true/false>],
    	[Verbosity: <integer>],
    	[ContinuousIntegrationBuild: <true/false>],
    	[AdditionalArguments: <text>],
    	[EnsureDotNetInstalled: <text>],
    	[DotNetPath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Project path (default)
    text
    Project
    This must be the path to either a project file, solution file, or a directory containing a project or solution file. This argument is required.
    Configuration
    text
    Configuration
    Package source
    text
    PackageSource
    If specified, this NuGet package source will be used to restore packages when building.
    Version
    text
    Version
    Value note: "not set".
    Framework
    text
    Framework
    Runtime
    text
    Runtime
    Output
    text
    Output
    Specifies an output directory for the build.
    VSToolsPath
    text
    VSToolsPath
    Some older .NET applications (especially Framework) may require MSBuild targets included with Visual Studio. Use "embedded" to try resolving these without Visual Studio, "search" to try to find the targets using the Registry, or enter a path like C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\v17.0. Value note: "not set".
    Force dependency resolution
    true/false
    ForceDependencyResolution
    Value note: "false".
    Verbosity
    integer
    Verbosity
    Default value is "Minimal".
    CI build
    true/false
    ContinuousIntegrationBuild
    Sets the ContinuousIntegrationBuild MSBuild flag, which is recommended for all official (non-local) builds. Default value is "True".
    Additional arguments
    text
    AdditionalArguments
    Ensure dotnet installed
    text
    EnsureDotNetInstalled
    This uses Microsoft's dotnet-install script to ensure that the specified version is installed. Values other than "auto" will be passed to the Channel parameter. The "auto" value will attempt to determine the SDK your project uses and ensure that it is installed. Value note: "not set (do not install)".
    dotnet path
    text
    DotNetPath
    Full path of dotnet.exe (or dotnet on Linux). This is usually C:\Program Files\dotnet\dotnet.exe on Windows. If no value is supplied, the operation will default to %PROGRAMFILES%\dotnet\dotnet.exe for Windows and dotnet (from the path) on Linux. Value note: "default".

    Example:

    # Build ~\src\MyProject.csproj with Release configuration, restoring NuGet packages from the InternalNuGet source
    DotNet::Build ~\src\MyProject.csproj
    (
        Configuration: Release,
        PackageSource: InternalNuGet
    );
  • dotnet publish - Publishes a .NET Core/Framework/Standard project using dotnet publish.

    dotnet publish

    Publishes a .NET Core/Framework/Standard project using dotnet publish.

    Script usage:

    DotNet::Publish(
    	[SelfContained: <true/false>],
    	Project: <text>,
    	[Configuration: <text>],
    	[PackageSource: <text>],
    	[Version: <text>],
    	[Framework: <text>],
    	[Runtime: <text>],
    	[Output: <text>],
    	[VSToolsPath: <text>],
    	[ForceDependencyResolution: <true/false>],
    	[Verbosity: <integer>],
    	[ContinuousIntegrationBuild: <true/false>],
    	[AdditionalArguments: <text>],
    	[EnsureDotNetInstalled: <text>],
    	[DotNetPath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Self-contained
    true/false
    SelfContained
    Project path (default)
    text
    Project
    This must be the path to either a project file, solution file, or a directory containing a project or solution file. This argument is required.
    Configuration
    text
    Configuration
    Package source
    text
    PackageSource
    If specified, this NuGet package source will be used to restore packages when building.
    Version
    text
    Version
    Value note: "not set".
    Framework
    text
    Framework
    Runtime
    text
    Runtime
    Output
    text
    Output
    Specifies an output directory for the build.
    VSToolsPath
    text
    VSToolsPath
    Some older .NET applications (especially Framework) may require MSBuild targets included with Visual Studio. Use "embedded" to try resolving these without Visual Studio, "search" to try to find the targets using the Registry, or enter a path like C:\Program Files\Microsoft Visual Studio\2022\Enterprise\MSBuild\Microsoft\VisualStudio\v17.0. Value note: "not set".
    Force dependency resolution
    true/false
    ForceDependencyResolution
    Value note: "false".
    Verbosity
    integer
    Verbosity
    Default value is "Minimal".
    CI build
    true/false
    ContinuousIntegrationBuild
    Sets the ContinuousIntegrationBuild MSBuild flag, which is recommended for all official (non-local) builds. Default value is "True".
    Additional arguments
    text
    AdditionalArguments
    Ensure dotnet installed
    text
    EnsureDotNetInstalled
    This uses Microsoft's dotnet-install script to ensure that the specified version is installed. Values other than "auto" will be passed to the Channel parameter. The "auto" value will attempt to determine the SDK your project uses and ensure that it is installed. Value note: "not set (do not install)".
    dotnet path
    text
    DotNetPath
    Full path of dotnet.exe (or dotnet on Linux). This is usually C:\Program Files\dotnet\dotnet.exe on Windows. If no value is supplied, the operation will default to %PROGRAMFILES%\dotnet\dotnet.exe for Windows and dotnet (from the path) on Linux. Value note: "default".

    See also:

    Example:

    # Publish ~\src\MyProject.csproj with Release configuration for .net core 3.1, restoring NuGet packages from the InternalNuGet source
    DotNet::Publish ~\src\MyProject.csproj
    (
        Configuration: Release,
        Framework: netcoreapp3.1,
        Runtime: win-x64,
        PackageSource: InternalNuGet
    );
  • dotnet test - Runs unit tests on a specified test project using the dotnet test command.

    dotnet test

    Runs unit tests on a specified test project using the dotnet test command.

    Script usage:

    DotNet::Test(
    	Project: <text>,
    	[Configuration: <text>],
    	[PackageSource: <text>],
    	[Group: <text>],
    	[Framework: <text>],
    	[AdditionalArguments: <text>],
    	[EnsureDotNetInstalled: <text>],
    	[DotNetPath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Project path
    text
    Project
    This must be the path to either a project file, solution file, or a directory containing a project or solution file. This argument is required.
    Configuration
    text
    Configuration
    Package source
    text
    PackageSource
    If specified, this NuGet package source will be used to restore packages when building.
    Test group
    text
    Group
    Value note: "Unit Tests".
    Framework
    text
    Framework
    Additional arguments
    text
    AdditionalArguments
    Ensure dotnet installed
    text
    EnsureDotNetInstalled
    This uses Microsoft's dotnet-install script to ensure that the specified version is installed. Values other than "auto" will be passed to the Channel parameter. The "auto" value will attempt to determine the SDK your project uses and ensure that it is installed. Value note: "not set (do not install)".
    dotnet path
    text
    DotNetPath
    Full path of dotnet.exe (or dotnet on Linux). This is usually C:\Program Files\dotnet\dotnet.exe on Windows. If no value is supplied, the operation will default to %PROGRAMFILES%\dotnet\dotnet.exe for Windows and dotnet (from the path) on Linux. Value note: "default".
  • Ensure AppSetting - Ensures a .NET application configuration file has the specified appSetting key/value pair.

    Ensure AppSetting

    Ensures a .NET application configuration file has the specified appSetting key/value pair.

    Script usage:

    DotNet::Ensure-AppSetting(
    	File: <text>,
    	Key: <text>,
    	Value: <text>,
    	[AppSettingsXPath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Config file path
    text
    File
    The file path of the configuration file, typically web.config or app.config. This argument is required.
    AppSetting key
    text
    Key
    This argument is required.
    AppSetting value
    text
    Value
    This argument is required.
    XPath for appSettings
    text
    AppSettingsXPath
    Value note: "default".

    Note: By default, the "appSettings" section must exist in the file under the "configuration" element in order to ensure the key/value pair is present. Use the AppSettingsXPath argument to select a different element instead.

    Example:

    # ensures that the application is configured to use test mode for the example third-party API
    DotNet::Ensure-AppSetting(
    	File: E:\Website\web.config,
    	Key: Accounts.ThirdParty.PaymentApi,
    	Value: https://test.example.com/api/v3
    );
    
  • Get NuGet Dependencies - Inspects a .NET build project/packages.config to return the required versions of NuGet package dependencies.

    Get NuGet Dependencies

    Inspects a .NET build project/packages.config to return the required versions of NuGet package dependencies.

    Script usage:

    DotNet::Get-Dependencies(
    	[ProjectPath: <text>],
    	[PackageId: <text>],
    	[Dependencies: <RuntimeValue>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Project path
    text
    ProjectPath
    Value note: "$WorkingDirectory".
    Package ID
    text
    PackageId
    Value note: "return all packages as a map".
    Dependencies
    RuntimeValue
    Dependencies
    If PackageId is specified, the name of a text variable to receive the package version. If PackageId is not specified, the name of a map variable to received all dependency information.

    Example:

    # Store project dependencies in %depends map
    DotNet::Get-Dependencies
    (
        ProjectPath: ~\Src\MyProject,
        Dependencies => %depends
    );
  • Run dotnet Tool - Runs a dotnet tool, optionally ensuring that it is installed.

    Run dotnet Tool

    Runs a dotnet tool, optionally ensuring that it is installed.

    Script usage:

    DotNet::Tool(
    	Command: <text>,
    	[Arguments: <text>],
    	[Global: <true/false>],
    	[PackageId: <text>],
    	[Version: <text>],
    	[PackageSource: <text>],
    	[AdditionalArguments: <text>],
    	[EnsureDotNetInstalled: <text>],
    	[DotNetPath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Command (default)
    text
    Command
    This argument is required.
    Arguments
    text
    Arguments
    Global tool
    true/false
    Global
    Package ID
    text
    PackageId
    Version
    text
    Version
    Value note: "latest".
    Package source
    text
    PackageSource
    Additional arguments
    text
    AdditionalArguments
    Ensure dotnet installed
    text
    EnsureDotNetInstalled
    This uses Microsoft's dotnet-install script to ensure that the specified version is installed. Values other than "auto" will be passed to the Channel parameter. The "auto" value will attempt to determine the SDK your project uses and ensure that it is installed. Value note: "not set (do not install)".
    dotnet path
    text
    DotNetPath
    Full path of dotnet.exe (or dotnet on Linux). This is usually C:\Program Files\dotnet\dotnet.exe on Windows. If no value is supplied, the operation will default to %PROGRAMFILES%\dotnet\dotnet.exe for Windows and dotnet (from the path) on Linux. Value note: "default".

    Example:

    # Install and run the latest version of dotnetsay locally
    DotNet::Tool dotnetsay
    (
        Arguments: Hello World!,
        PackageId: dotnetsay
    );
  • Set Project Version - Sets the version elements in .NET project files to a specified value.

    Set Project Version

    Sets the version elements in .NET project files to a specified value.

    Script usage:

    DotNet::Set-ProjectVersion(
    	[FromDirectory: <text>],
    	[Include: <@(text)>],
    	[Version: <text>],
    	[Exclude: <@(text)>],
    	[AssemblyVersion: <text>],
    	[FileVersion: <text>],
    	[PackageVersion: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    From directory
    text
    FromDirectory
    Value note: "$WorkingDirectory".
    Project files to set
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Default value is "**.csproj".
    Version
    text
    Version
    Default value is "$ReleaseNumber".
    Exclude
    @(text)
    Exclude
    Assembly version
    text
    AssemblyVersion
    Value note: "don't set AssemblyVersion".
    File version
    text
    FileVersion
    Value note: "don't set FileVersion".
    Package version
    text
    PackageVersion
    Value note: "don't set PackageVersion".

    Note: This operation is intended to be used when generating assembly info properties from a .NET project file. To set attributes in AssemblyInfo.cs, use DotNet::WriteAssemblyVersion.

    Example:

    # Build ~\src\MyProject.csproj with Release configuration, restoring NuGet packages from the InternalNuGet source
    DotNet::SetProjectVersion
    (
        Version: $ReleaseNumber,
        AssemblyVersion: $ReleaseNumber.0
        FileVersion: $ReleaseNumber.$BuildNumber
    );
  • Transform config file - Applies a transform to an XML or JSON .NET config file.

    Transform config file

    Applies a transform to an XML or JSON .NET config file.

    Script usage:

    DotNet::Transform-Config(
    	BaseConfig: <text>,
    	TransformConfig: <text>,
    	[Target: <text>],
    	[ConfigType: <integer>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Config file to transform
    text
    BaseConfig
    This argument is required.
    Transform file
    text
    TransformConfig
    This argument is required.
    Target
    text
    Target
    Value note: "overwrite source".
    Config file type
    integer
    ConfigType
    Default value is "Auto".
  • Write Assembly Versions - Updates AssemblyVersion, AssemblyFileVersion, and AssemblyInformationalVersion Attributes (in AssemblyInfo source files).

    Write Assembly Versions

    Updates AssemblyVersion, AssemblyFileVersion, and AssemblyInformationalVersion Attributes (in AssemblyInfo source files).

    Script usage:

    DotNet::Write-AssemblyVersion(
    	[AssemblyVersion: <text>],
    	[FileVersion: <text>],
    	[InformationalVersion: <text>],
    	[FromDirectory: <text>],
    	[Include: <@(text)>],
    	[Exclude: <@(text)>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Assembly version
    text
    AssemblyVersion
    Default value is "$ReleaseNumber.$PackageNumber".
    File version
    text
    FileVersion
    Value note: "same as AssemblyVersion".
    Informational version
    text
    InformationalVersion
    Value note: "same as AssemblyVersion".
    From directory
    text
    FromDirectory
    Value note: "$WorkingDirectory".
    Include
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Default value is "**\AssemblyInfo.cs".
    Exclude
    @(text)
    Exclude

    Note: This operation is intended to be used when assembly version attributes are stored directly in AssemblyInfo.cs. To set these values in the project file instead, use DotNet::SetProjectVersion.

Email

  • Send Email - Sends an email message.

    Send Email

    Sends an email message.

    Script usage:

    InedoCore::Send-Email(
    	To: <@(text)>,
    	[Subject: <text>],
    	[Text: <text>],
    	[Html: <text>],
    	[Attachments: <@(text)>],
    	[AttachmentDirectory: <text>],
    	[CC: <@(text)>],
    	[Bcc: <@(text)>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    To address(es)
    @(text)
    To
    A single email address may be used, or a list variable containing multiple email addresses. This argument is required.
    Subject
    text
    Subject
    Plain-text body
    text
    Text
    HTML body
    text
    Html
    Attachments
    @(text)
    Attachments
    From directory
    text
    AttachmentDirectory
    Value note: "$WorkingDirectory".
    CC address(es)
    @(text)
    CC
    A single email address may be used, or a list variable containing multiple email addresses.
    BCC address(es)
    @(text)
    Bcc
    A single email address may be used, or a list variable containing multiple email addresses.

    Note: If the Html property is specified, then the Text property will be ignored.

    Example:

    Send-Email (
        To: @(someone@example.org, someone-else@example.org),
        Subject: Howdy!,
        Text: >>Hello there!
    
    This email was sent from BuildMaster on $Date.>>
    );
    

Files

  • Concatenate Files - Concatenates files on a server.

    Concatenate Files

    Concatenates files on a server.

    Script usage:

    Concatenate-Files(
    	File: <text>,
    	[Directory: <text>],
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	[Encoding: <text>],
    	[Separator: <text>]
    );
    
    

    This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Output file
    text
    File
    This argument is required.
    Directory
    text
    Directory
    Value note: "$WorkingDirectory".
    Include
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Value note: "* (top-level items)".
    Exclude
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Encoding
    text
    Encoding
    Value note: "utf8".
    Separator
    text
    Separator

    Example:

    # concatenates all SQL files in the working directory into a 
    # single file, each script separated by a GO statement
    Concatenate-Files(
        File: all.sql,
        Include: *.sql,
        Separator: >>
    GO
    >>
    );
    
  • Copy Files - Copies files on a server.

    Copy Files

    Copies files on a server.

    Script usage:

    Copy-Files(
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	[From: <text>],
    	To: <text>,
    	[Verbose: <true/false>],
    	[Overwrite: <true/false>],
    	[RenameFrom: <text>],
    	[RenameTo: <text>],
    	[RenameRegex: <true/false>]
    );
    
    

    This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Include
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Value note: "* (top-level items)".
    Exclude
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Source directory
    text
    From
    Value note: "$WorkingDirectory".
    Target directory
    text
    To
    This argument is required.
    Verbose
    true/false
    Verbose
    Overwrite target files
    true/false
    Overwrite
    Rename from
    text
    RenameFrom
    Rename to
    text
    RenameTo
    Use regular expression
    true/false
    RenameRegex
    Default value is "False".

    Example:

    # copy all files and all subdirectories beneath it to the target,
    # and log each individual file that is copied, and overwrite any files
    Copy-Files(
        From: E:\Source,
        To: F:\Target,
        Include: **,
        Verbose: true,
        Overwrite: true
    );
    
  • Create File - Creates a file on a server.

    Create File

    Creates a file on a server.

    Script usage:

    Create-File(
    	Name: <text>,
    	[Text: <text>],
    	[Overwrite: <true/false>],
    	[FileMode: <text>]
    );
    
    

    This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    File name (default)
    text
    Name
    The path of the file to create. This argument is required.
    Text
    text
    Text
    Overwrite
    true/false
    Overwrite
    File mode
    text
    FileMode
    The octal file mode for the file. This value is ignored on Windows. Default value is "644".

    Example:

    # write the name of the current working directory to my desktop
    Create-File(
        Name: C:\Users\atripp\Desktop\workingdir.txt,
        Text: $WorkingDirectory
    );
    
  • Create Zip File - Creates a zip file on a server.

    Create Zip File

    Creates a zip file on a server.

    Script usage:

    Create-ZipFile(
    	Name: <text>,
    	Directory: <text>,
    	[Overwrite: <true/false>]
    );
    
    

    This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Zip file name
    text
    Name
    This argument is required.
    Source directory
    text
    Directory
    This argument is required.
    Overwrite
    true/false
    Overwrite

    Example:

    # zip all log files and place them in the backup directory
    Create-ZipFile(
        Name: E:\backup\logs.$Date("yyyyMMdd-hhmmss").zip,
        Directory: E:\site\logs
    );
    
  • Delete Files - Deletes files on a server.

    Delete Files

    Deletes files on a server.

    Script usage:

    Delete-Files(
    	Include: <@(text)>,
    	[Exclude: <@(text)>],
    	[Directory: <text>],
    	[Verbose: <true/false>]
    );
    
    

    This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Include (default)
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Value note: "* (top-level items)". This argument is required.
    Exclude
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Directory
    text
    Directory
    Verbose
    true/false
    Verbose

    Note: This operation will delete files one-by-one. To clear large directories, a PowerShell script may be more performant.

    Example:

    # delete all .config files in the working directory except web.config
    Delete-Files(
        Include: *.config,
        Exlude: web.config
    );
    
  • Ensure Directory - Ensures the existence of a directory on a server.

    Ensure Directory

    Ensures the existence of a directory on a server.

    Script usage:

    Ensure-Directory(
    	Name: <text>,
    	[Exists: <true/false>]
    );
    
    

    This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Name
    text
    Name
    This argument is required.
    Exists
    true/false
    Exists
    Default value is "True".

    Example:

    # ensures the Logs directory for the website exists and that it's writable
    Ensure-Directory(
        Name: E:\Website\Logs,
        ReadOnly: false
    );
    
  • Ensure File - Ensures the existence of a file on a server.

    Ensure File

    Ensures the existence of a file on a server.

    Script usage:

    Ensure-File(
    	[Text: <text>],
    	[ReadOnly: <true/false>],
    	Name: <text>,
    	[Attributes: <integer>],
    	[Exists: <true/false>],
    	[Modified: <DateTime>]
    );
    
    

    This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Text contents
    text
    Text
    The contents of the file. A missing or empty value indicates the file should be a 0-byte file.
    Read Only
    true/false
    ReadOnly
    Indicates that the file should be marked with the read-only attribute. Note that when this value is set, it is applied after the FileAttributes value, which will override the readonly flag specified in that property.
    Name
    text
    Name
    The name or path of the file or directory. This argument is required.
    Attributes
    integer
    Attributes
    The attributes for the file or directory. These may be entered as an integer flag or by name. Common values are ReadOnly=1, Hidden=2, System=4, Archive=32, and Normal=128. Integral values may be ORed together to specify any combination of attributes, except for "Normal (128)", which may only be used alone.
    Exists
    true/false
    Exists
    Default value is "True".
    Last write time
    DateTime
    Modified
    The last write time (UTC) of the file or directory.

    Example:

    # ensures the otter.txt file exists on the server and is marked readonly
    Ensure-File(
        Name: E:\Docs\otter.txt,
        Text: >>
    Otter is a common name for a carnivorous mammal in the subfamily Lutrinae. 
    Help, I'm trapped in an Otter documentation factory! The 13 extant otter species are all semiaquatic, 
    aquatic or marine, with diets based on fish and invertebrates.
    >>,
        ReadOnly: true
    );
    
  • Extract Zip File - Extracts a zip file on a server.

    Extract Zip File

    Extracts a zip file on a server.

    Script usage:

    Extract-ZipFile(
    	Name: <text>,
    	[Directory: <text>],
    	[ClearTarget: <true/false>],
    	[Overwrite: <true/false>]
    );
    
    

    This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    File name (default)
    text
    Name
    This argument is required.
    Target directory
    text
    Directory
    Clear target directory
    true/false
    ClearTarget
    Overwrite
    true/false
    Overwrite

    Example:

    # extracts archive.zip in ArchiveContents after deleting the directory contents
    Extract-ZipFile(
        Name: archive.zip,
        Directory: E:\Services\ArchiveContents,
        ClearTarget: true
    );
    
  • Generate Release Notes - Generates an HTML file containing the BuildMaster release notes and/or issues from the application's issue tracking provider.

    Generate Release Notes

    Generates an HTML file containing the BuildMaster release notes and/or issues from the application's issue tracking provider.

    Script usage:

    Generate-ReleaseNotes(
    	Name: <text>,
    	[IncludeReleaseNotes: <true/false>],
    	[IncludeIssueSummary: <true/false>],
    	[IncludeIssueDescriptions: <true/false>],
    	[ClosedIssuesOnly: <true/false>],
    	[CustomCss: <text>],
    	[Overwrite: <true/false>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    File name
    text
    Name
    This argument is required.
    Include release notes
    true/false
    IncludeReleaseNotes
    Default value is "True".
    Include issue summary
    true/false
    IncludeIssueSummary
    Default value is "True".
    Include issue descriptions
    true/false
    IncludeIssueDescriptions
    Default value is "True".
    Closed issues only
    true/false
    ClosedIssuesOnly
    Custom CSS
    text
    CustomCss
    Overwrite
    true/false
    Overwrite

    Example:

    # generates an HTML file containing this application's issues with descriptions along with release notes
    Generate-ReleaseNotes(
        Name: notes.html
    );
    
  • Rename File - Renames a file on a server.

    Rename File

    Renames a file on a server.

    Script usage:

    Rename-File(
    	From: <text>,
    	To: <text>,
    	[Overwrite: <true/false>]
    );
    
    

    This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Source file
    text
    From
    This argument is required.
    Target file
    text
    To
    This argument is required.
    Overwrite
    true/false
    Overwrite

    Note: To rename multiple files at once, running a PowerShell script is recommended.

    Example:

    # renames logs.txt to include the environment name in context
    Rename-File (
        From: logs.txt,
        To: logs.$EnvironmentName.txt,
        Overwrite: true
    );
    
  • Search/Replace File Contents - Searches a text file for a specified string and replaces it.

    Search/Replace File Contents

    Searches a text file for a specified string and replaces it.

    Script usage:

    Replace-Text(
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	[Directory: <text>],
    	SearchText: <text>,
    	[ReplaceWith: <text>],
    	[Regex: <true/false>]
    );
    
    

    This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Include
    @(text)
    Include
    See KB#1119 to learn more about masking syntax.
    Exclude
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Directory
    text
    Directory
    Search text
    text
    SearchText
    This argument is required.
    Replace with
    text
    ReplaceWith
    The text that replaces all occurrences of the search string found in matching files. If the Regex property is true, this property can replace matched group numbers as well, e.g.
    Example line: Version: 0.0.0-b05f2ad
    SearchText: Version: (\d+\.\d+\.\d+)(?<commitId>-\w+)?
    ReplaceWith: Version: $ReleaseNumber`${commitId} (was `$1)
    Example result: Version: 1.2.3-b05f2ad (was 0.0.0)

    Note the backtick characters (`) used to escape the $ in the replacement text, which otherwise would be interpreted as OtterScript variables..
    Use regex
    true/false
    Regex
    Determines whether the search text should be interpreted as .NET Regular Expression syntax.

    Example:

    # Replaces the product version in an example vdproj file with the BuildMaster release number
    Create-File example.vdproj
    (
    	Text: >>"Product"
    		{
    			"ProductVersion" = "8:1.0.0"
    		}>>
    );
    
    Replace-Text
    (
    	Include: **.vdproj,
    	SearchText: '"ProductVersion" = "(?<1>[0-9]+)\:[0-9]+\.[0-9]+\.[0-9]+"',
    	ReplaceWith: '"ProductVersion" = "`$1:$ReleaseNumber"',
    	Regex: true
    );
    
    Log-Information `$FileContents = $FileContents(example.vdproj);  # "ProductVersion" = "8:1.2.3"
    
  • Set File Attributes - Sets or clears attributes on matching files.

    Set File Attributes

    Sets or clears attributes on matching files.

    Script usage:

    Set-FileAttributes(
    	[Directory: <text>],
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	[ReadOnly: <true/false>],
    	[Hidden: <true/false>],
    	[System: <true/false>],
    	[Verbose: <true/false>]
    );
    
    

    This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Directory
    text
    Directory
    Include
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Value note: "* (top-level items)".
    Exclude
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Read only
    true/false
    ReadOnly
    Hidden
    true/false
    Hidden
    System
    true/false
    System
    Verbose
    true/false
    Verbose
  • Transfer Files - Copies files from a directory on a source server to a directory on a target server.

    Transfer Files

    Copies files from a directory on a source server to a directory on a target server.

    Script usage:

    Transfer-Files(
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	[FromDirectory: <text>],
    	[FromServer: <text>],
    	ToDirectory: <text>,
    	[ToServer: <text>],
    	[DeleteTarget: <true/false>],
    	[SetLastModifiedDate: <true/false>],
    	[BatchSize: <integer>],
    	[Verbose: <true/false>]
    );
    
    

    This operation may be prefixed with Files::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Include
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Value note: "* (top-level items)".
    Exclude
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Source directory
    text
    FromDirectory
    Value note: "$WorkingDirectory".
    Source server
    text
    FromServer
    Value note: "$ServerName".
    Target directory
    text
    ToDirectory
    This argument is required.
    Target server
    text
    ToServer
    Value note: "Same as source server".
    Delete target
    true/false
    DeleteTarget
    When set to true, files in the target directory will be deleted if they are not present in the source directory. If false, files present in the target directory that are not present in the source directory are unmodified.
    Set last modified
    true/false
    SetLastModifiedDate
    When true, the modified date on any transferred files will be set to match their source files. Default value is "True".
    Batch size
    integer
    BatchSize
    The number of files to transfer in each batch. Default value is "1".
    Verbose
    true/false
    Verbose

Firewall

  • Ensure Firewall Rule - Ensures the existence of a firewall rule on a Windows server.

    Ensure Firewall Rule

    Ensures the existence of a firewall rule on a Windows server.

    Script usage:

    Firewall::Ensure-NetFirewallRule(
    	Name: <text>,
    	Profiles: <text>,
    	Port: <text>,
    	Protocol: <text>,
    	Inbound: <true/false>,
    	Allow: <true/false>,
    	[Exists: <true/false>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Name
    text
    Name
    This argument is required.
    Profiles
    text
    Profiles
    Specify a comma separated list of profiles: "Public", "Private", and/or "Domain". (ex: "Public, Private"). This argument is required.
    Port or Port Range
    text
    Port
    Specify the port(s) affected by the firewall rule. Ports can be a comma separated list or a port range specified as "start-end" ex: 80-81,443. This argument is required.
    Protocol
    text
    Protocol
    Specify if the protocol is "UDP" or "TCP". This argument is required.
    Inbound
    true/false
    Inbound
    Specify if the connection is Inbound or Outbound. (Default = true). Default value is "True". This argument is required.
    Allow
    true/false
    Allow
    Select if you want to Allow or Block a connection. (Default = true). Default value is "True". This argument is required.
    Exists
    true/false
    Exists
    Default value is "True".

    Example:

    # ensures that TCP ports 80 and 443 are allowed on "Domain" and Private profiles in Window's Firewall
    Firewall::Ensure-NetFirewallRule(
        Name: OtterHttpTCP80443,
        Profiles: "Domain, Private",
        Port: "80,443",
        Protocol: TCP,
        Inbound: true,
        Allow: true
    );
    
    
    # ensures that UDP ports 5000 through 5004 and 5008 are allowed on the "Domain" profile Window's Firewall
    Firewall::Ensure-NetFirewallRule(
        Name: OtterHttpUdpTest,
        Profiles: "Domain",
        Port: "5000-5004,5008",
        Protocol: UDP,
        Inbound: true,
        Allow: true
    );
    
    # ensures that the "OtterHttpTCP80443" Window's Firewall rule is removed
    IIS::Ensure-Site(
        Name: OtterHttpTCP80443,
        Exists: false
    );
    

General

  • Attach Package - Attaches a package to a build.

    Attach Package

    Attaches a package to a build.

    Script usage:

    Packages::Attach-Package(
    	Name: <text>,
    	[Version: <text>],
    	[Source: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Package name
    text
    Name
    This argument is required.
    Version
    text
    Version
    Value note: "latest".
    Package source
    text
    Source
    Value note: "Default".
  • Build - Runs devenv.exe (Visual Studio) to build the specified project or solution.

    Build

    Runs devenv.exe (Visual Studio) to build the specified project or solution.

    Script usage:

    DevEnv::Build(
    	ProjectFile: <text>,
    	Configuration: <text>,
    	[Arguments: <text>],
    	[DevEnvPath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Project file
    text
    ProjectFile
    e.g. ProjectName.csproj or SolutionName.sln". This argument is required.
    Configuration
    text
    Configuration
    Default value is "Release". This argument is required.
    Additional arguments
    text
    Arguments
    Raw command line arguments to pass to devenv.exe.
    devenv.exe path
    text
    DevEnvPath
    Full path to devenv.exe. This is usually similar to C:\Program Files\Microsoft Visual Studio\2022\Enterprise\Common7\IDE\devenv.exe. If no value is supplied, the operation will use vswhere to determine the path to the latest installation of Visual Studio. Default value is "$DevEnvPath".
  • Download File from URL - Downloads a file from a specified URL using an HTTP GET.

    Download File from URL

    Downloads a file from a specified URL using an HTTP GET.

    Script usage:

    Download-Http(
    	FileName: <text>,
    	Url: <text>,
    	[LogResponseBody: <true/false>],
    	[ErrorStatusCodes: <text>],
    	[ResponseBody: <text>],
    	[RequestHeaders: <%(key1: value1, ...)>],
    	[MaxResponseLength: <integer>],
    	[ProxyRequest: <true/false>],
    	[Credentials: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[IgnoreSslErrors: <true/false>]
    );
    
    

    This operation may be prefixed with HTTP::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    File name
    text
    FileName
    The destination path for the downloaded file. This argument is required.
    URL (default)
    text
    Url
    This argument is required.
    Log response body
    true/false
    LogResponseBody
    Error status codes
    text
    ErrorStatusCodes
    Comma-separated status codes (or ranges in the form of start:end) that should indicate this action has failed. For example, a value of "401,500:599" will fail on all server errors and also when "HTTP Unauthorized" is returned. The default is 400:599. Value note: "400:599".
    Store response as
    text
    ResponseBody
    Value note: "Do not store response body as variable".
    Request headers
    %(key1: value1, ...)
    RequestHeaders
    Max response length
    integer
    MaxResponseLength
    Default value is "1000".
    Use server in context
    true/false
    ProxyRequest
    When selected, this will proxy the HTTP calls through the server is in context instead of using the server Otter or BuildMaster is installed on. Default value is "True".
    Credentials
    text
    Credentials
    User name
    text
    UserName
    Not specifying will "Use user name from credential".
    Password
    text
    Password
    Not specifying will "Use password from credential".
    Ignore SSL Errors
    true/false
    IgnoreSslErrors
    Default value is "False".

    Example:

    # downloads a file from example.org service endpoint
    Download-Http http://example.org/upload-service/v3/hdars (
        To: ReleaseNotes.xml
    );
    
  • Execute Process - Executes a process, logs its output, and waits until it exits.

    Execute Process

    Executes a process, logs its output, and waits until it exits.

    Script usage:

    InedoCore::Exec(
    	[FileName: <text>],
    	[Arguments: <text>],
    	[WorkingDirectory: <text>],
    	[OutputLogLevel: <integer>],
    	[ErrorOutputLogLevel: <integer>],
    	[SuccessExitCode: <text>],
    	[ImportVariables: <true/false>],
    	[WarnRegex: <text>],
    	[LogArguments: <true/false>],
    	[ReportProgressRegex: <text>],
    	[OutputFilterRegex: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    File name
    text
    FileName
    Arguments
    text
    Arguments
    Working directory
    text
    WorkingDirectory
    Output log level
    integer
    OutputLogLevel
    Error log level
    integer
    ErrorOutputLogLevel
    Success exit code
    text
    SuccessExitCode
    Integer exit code which indicates no error. The default is 0. This can also be an integer prefixed with an inequality operator. Default value is "== 0".
    Import variables
    true/false
    ImportVariables
    When set to true, all scalar execution variables currently accessible will be exported as environment variables to the process.
    Warning regex
    text
    WarnRegex
    When set to a valid regular expression string, output messages which are matched will be logged as warnings. To log only part of the message, use a group with name "m".
    Log arguments
    true/false
    LogArguments
    Default value is "True".
    Report progress regex
    text
    ReportProgressRegex
    When set to a valid regular expression string, attempts to parse every output message for real-time progress updates. To capature a status message, use a group with name "m". To capture a percent complete as a number from 0 to 100, use a group with name "p".
    Output filter regex
    text
    OutputFilterRegex
    When set to a valid regular expression string, only output messages which match this expression will be logged.

    Example:

    # execute 7zip and only succeed if the executable returns a non-negative exit code
    Exec c:\tools\7za.exe (
        Arguments: i *.*,
        SuccessExitCode: >= 0
    );
  • Execute Python Script - Executes a specified Python script.

    Execute Python Script

    Executes a specified Python script.

    Script usage:

    PYExec(
    	Script: <text>,
    	[Verbose: <true/false>],
    	[SuccessExitCode: <text>],
    	[Variables: <%(key1: value1, ...)>],
    	[OutVariables: <@(text)>],
    	[Arguments: <text>],
    	[EnvironmentVariables: <%(key1: value1, ...)>],
    	[PythonPath: <text>],
    	[CaptureDebug: <true/false>]
    );
    
    

    This operation may be prefixed with Python::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Script (default)
    text
    Script
    This argument is required.
    Verbose
    true/false
    Verbose
    When true, additional information about staging the script is written to the debug log.
    Success exit code
    text
    SuccessExitCode
    Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
    Variables
    %(key1: value1, ...)
    Variables
    OutVariables
    @(text)
    OutVariables
    Command line arguments
    text
    Arguments
    Environment variables
    %(key1: value1, ...)
    EnvironmentVariables
    Python path
    text
    PythonPath
    Full path to python/python.exe on the target server. Default value is "$PythonPath".
    Capture debug messages
    true/false
    CaptureDebug
  • Execute VSTest Tests - Runs VSTest unit tests on a specified test project, recommended for tests in VS 2012 and later.

    Execute VSTest Tests

    Runs VSTest unit tests on a specified test project, recommended for tests in VS 2012 and later.

    Script usage:

    WindowsSDK::Execute-VSTest(
    	TestContainer: <text>,
    	[Group: <text>],
    	[Arguments: <text>],
    	[ClearExistingTestResults: <true/false>],
    	[VsTestPath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Test container
    text
    TestContainer
    This argument is required.
    Test group
    text
    Group
    Value note: "Unit Tests".
    Additional arguments
    text
    Arguments
    Clear existing results
    true/false
    ClearExistingTestResults
    When true, the test results directory will be cleared before the tests are run.
    VSTest Path
    text
    VsTestPath
    The path to vstest.console.exe, typically:

    %VSINSTALLDIR%\Common7\IDE\CommonExtensions\Microsoft\TestWindow\vstest.console.exe

    Leave this value blank to auto-detect the latest vstest.console.exe using vswhere.exe.
    Default value is "$VSTestExePath".
  • Invoke Operation - Invokes a specified operation by its script alias.

    Invoke Operation

    Invokes a specified operation by its script alias.

    Script usage:

    Invoke-Operation(
    	Name: <text>,
    	[Arguments: <%(key1: value1, ...)>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Operation name (default)
    text
    Name
    This argument is required.
    Arguments
    %(key1: value1, ...)
    Arguments
    Value note: "No arguments".

    Note: This operation should only be used when the specific operation type is unknown until runtime. If the operation's script alias is already known when writing the script, that operation should be used directly.

    Example:

    Invoke-Operation
    (
      Name: Send-Email,
      Arguments: %(To: $ToEmail, Subject: Important BuildMaster Email $AdditionalSubject, Text: This email was sent via the Invoke-Operation operation.)
    );
    
  • OSCall - Executes an OtterScript Script stored in a raft.

    OSCall

    Executes an OtterScript Script stored in a raft.

    Script usage:

    OSCall(
    	Name: <text>,
    	[Parameters: <%(key1: value1, ...)>],
    	[Variables: <%(key1: value1, ...)>],
    	[OutputVariables: <@(text)>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Name (default)
    text
    Name
    The name of the script asset. This argument is required.
    Parameters
    %(key1: value1, ...)
    Parameters
    Variables
    %(key1: value1, ...)
    Variables
    Specify parameters to pass in to the script using a map. For example: %(param1: $SomeVariable, param2: @(list,of,items)).
    Output variables
    @(text)
    OutputVariables
    Specify variables to capture and set in the calling scope using a list. For example: @(filePath,errorMessage).

    Note: Runtime variables you've defined before executing an Invoke operation will not be visible to the invoked script, and variables that you set within the invoked script will not be available.

  • OSExec - Executes an OtterScript string.

    OSExec

    Executes an OtterScript string.

    Script usage:

    OSExec(
    	ScriptText: <text>,
    	[Variables: <%(key1: value1, ...)>],
    	[OutputVariables: <@(text)>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Script text (default)
    text
    ScriptText
    This argument is required.
    Variables
    %(key1: value1, ...)
    Variables
    Specify parameters to pass in to the script using a map. For example: %(param1: $SomeVariable, param2: @(list,of,items)).
    Output variables
    @(text)
    OutputVariables
    Specify variables to capture and set in the calling scope using a list. For example: @(filePath,errorMessage).

    Note: Runtime variables you've defined before executing an Invoke operation will not be visible to the invoked script, and variables that you set within the invoked script will not be available.

  • PYCall - Calls a Python script that is stored as an asset.

    PYCall

    Calls a Python script that is stored as an asset.

    Script usage:

    PYCall(
    	Name: <text>,
    	[Parameters: <%(key1: value1, ...)>],
    	[Verbose: <true/false>],
    	[SuccessExitCode: <text>],
    	[InputVariables: <%(key1: value1, ...)>],
    	[OutputVariables: <@(text)>],
    	[PythonPath: <text>],
    	[CaptureDebug: <true/false>],
    	[Arguments: <text>],
    	[EnvironmentVariables: <%(key1: value1, ...)>]
    );
    
    

    This operation may be prefixed with python::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Name (default)
    text
    Name
    The name of the script asset. This argument is required.
    Parameters
    %(key1: value1, ...)
    Parameters
    Verbose
    true/false
    Verbose
    When true, additional information about staging the script is written to the debug log.
    Success exit code
    text
    SuccessExitCode
    Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
    InputVariables
    %(key1: value1, ...)
    InputVariables
    OutputVariables
    @(text)
    OutputVariables
    Python path
    text
    PythonPath
    Full path to python/python.exe on the target server. Default value is "$PythonPath".
    Capture debug messages
    true/false
    CaptureDebug
    Command line arguments
    text
    Arguments
    Environment variables
    %(key1: value1, ...)
    EnvironmentVariables
  • PYEnsure - Uses a Python script asset to Collect, and then Ensure a configuration about a server.

    PYEnsure

    Uses a Python script asset to Collect, and then Ensure a configuration about a server.

    Script usage:

    PYEnsure(
    	Name: <text>,
    	[Parameters: <%(key1: value1, ...)>],
    	[Verbose: <true/false>],
    	[SuccessExitCode: <text>],
    	[PythonPath: <text>],
    	[CaptureDebug: <true/false>],
    	[InputVariables: <%(key1: value1, ...)>],
    	[OutputVariables: <@(text)>],
    	[Arguments: <text>],
    	[EnvironmentVariables: <%(key1: value1, ...)>]
    );
    
    

    This operation may be prefixed with Python::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Name (default)
    text
    Name
    The name of the script asset. This argument is required.
    Parameters
    %(key1: value1, ...)
    Parameters
    Verbose
    true/false
    Verbose
    When true, additional information about staging the script is written to the debug log.
    Success exit code
    text
    SuccessExitCode
    Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
    Python path
    text
    PythonPath
    Full path to python/python.exe on the target server. Default value is "$PythonPath".
    Capture debug messages
    true/false
    CaptureDebug
    InputVariables
    %(key1: value1, ...)
    InputVariables
    OutputVariables
    @(text)
    OutputVariables
    Command line arguments
    text
    Arguments
    Environment variables
    %(key1: value1, ...)
    EnvironmentVariables
  • Queue TeamCity Build - Queues a build in TeamCity, optionally waiting for its completion.

    Queue TeamCity Build

    Queues a build in TeamCity, optionally waiting for its completion.

    Script usage:

    TeamCity::Queue-Build(
    	[From: <text>],
    	[Project: <text>],
    	[BuildConfiguration: <text>],
    	[BuildNumber: <text>],
    	[Artifact: <text>],
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	[Branch: <text>],
    	[TeamCityBuildNumber: <text>],
    	[AdditionalParameters: <text>],
    	[WaitForCompletion: <true/false>],
    	[BuildConfigurationId: <text>],
    	[CredentialName: <text>],
    	[Server: <text>],
    	[Token: <text>],
    	[UserName: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    TeamCity resource
    text
    From
    Default value is "$CIProject".
    Project name
    text
    Project
    Build configuration
    text
    BuildConfiguration
    Build number
    text
    BuildNumber
    The build number may be a specific build number, or a special value such as "lastSuccessful", "lastFinished", or "lastPinned". To specify a build ID instead, append ':id' as a suffix, e.g. 1234:id.
    BuildMaster artifact name
    text
    Artifact
    The name of the artifact in BuildMaster to create after artifacts are downloaded from TeamCity. Default value is "Default".
    Include files
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Default value is "**".
    Exclude files
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Branch
    text
    Branch
    Use the specified branch when creating the build.
    Actual build number (output)
    text
    TeamCityBuildNumber
    When you specify a Build Number like "lastSuccessful", this will output the real TeamCity BuildNumber into a runtime variable. e.g. $ActualBuildNumber".
    Additional parameters
    text
    AdditionalParameters
    Optionally enter any additional parameters accepted by the TeamCity API in query string format, for example:
    &name=agent&value=<agentnamevalue>&name=system.name&value=<systemnamevalue>..
    Wait for completion
    true/false
    WaitForCompletion
    Default value is "True".
    BuildConfigurationId
    text
    BuildConfigurationId
    Credentials
    text
    CredentialName
    Not specifying will "Use credential from resource".
    TeamCity server URL
    text
    Server
    Not specifying will "Use server URL from credential".
    Token
    text
    Token
    Not specifying will "Use token from credential".
    UserName
    text
    UserName
  • SHEnsure - Uses two shell scripts to Collect, and then Ensure a configuration about a server.

    SHEnsure

    Uses two shell scripts to Collect, and then Ensure a configuration about a server.

    Script usage:

    SHEnsure(
    	Key: <text>,
    	Value: <text>,
    	[Collect: <text>],
    	[Configure: <text>],
    	[CollectScript: <text>],
    	[ConfigureScript: <text>],
    	[UseExitCode: <true/false>],
    	[Verbose: <true/false>],
    	[CollectScriptArgs: <text>],
    	[ConfigureScriptArgs: <text>]
    );
    
    

    This operation may be prefixed with Linux::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Configuration key
    text
    Key
    This argument is required.
    Expected value
    text
    Value
    This argument is required.
    Collection script
    text
    Collect
    The output of this shell script will be used to collect the current configuration of the server.
    Configure script
    text
    Configure
    This shell script is executed if the configuration gathered using the collection script does not match the stored configuration.
    Collection script asset
    text
    CollectScript
    The name of a shell script asset to use for collection. The output of this script will be used to collect the current configuration of the server.
    Configuration script asset
    text
    ConfigureScript
    The name of a shell script asset to use for configuration. This script is executed if the configuration gathered using the collection script does not match the stored configuration.
    Use exit code
    true/false
    UseExitCode
    When set, the exit/return code of the script will be used instead of the output stream for collection.
    Verbose
    true/false
    Verbose
    When true, additional information about staging the script is written to the debug log.
    Collection script arguments
    text
    CollectScriptArgs
    Arguments to pass to the collect script.
    Configure script arguments
    text
    ConfigureScriptArgs
    Arguments to pass to the configure script.

    Note: The Key is a unique string per server, and having multiple operations attempt to use the same key will yield in unpredictable behavior.

  • Sleep - Halts the execution of operations for the specified number of seconds.

    Sleep

    Halts the execution of operations for the specified number of seconds.

    Script usage:

    InedoCore::Sleep <integer>;
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Seconds (default)
    integer
    Seconds
    This argument is required.
  • Upload File to URL - Uploads a file to a specified URL using an HTTP POST or PUT.

    Upload File to URL

    Uploads a file to a specified URL using an HTTP POST or PUT.

    Script usage:

    Upload-Http(
    	[Method: <integer>],
    	FileName: <text>,
    	Url: <text>,
    	[LogResponseBody: <true/false>],
    	[ErrorStatusCodes: <text>],
    	[ResponseBody: <text>],
    	[RequestHeaders: <%(key1: value1, ...)>],
    	[MaxResponseLength: <integer>],
    	[ProxyRequest: <true/false>],
    	[Credentials: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[IgnoreSslErrors: <true/false>]
    );
    
    

    This operation may be prefixed with HTTP::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Method
    integer
    Method
    Default value is "POST".
    File name (default)
    text
    FileName
    The path of the file to upload. This argument is required.
    URL
    text
    Url
    This argument is required.
    Log response body
    true/false
    LogResponseBody
    Error status codes
    text
    ErrorStatusCodes
    Comma-separated status codes (or ranges in the form of start:end) that should indicate this action has failed. For example, a value of "401,500:599" will fail on all server errors and also when "HTTP Unauthorized" is returned. The default is 400:599. Value note: "400:599".
    Store response as
    text
    ResponseBody
    Value note: "Do not store response body as variable".
    Request headers
    %(key1: value1, ...)
    RequestHeaders
    Max response length
    integer
    MaxResponseLength
    Default value is "1000".
    Use server in context
    true/false
    ProxyRequest
    When selected, this will proxy the HTTP calls through the server is in context instead of using the server Otter or BuildMaster is installed on. Default value is "True".
    Credentials
    text
    Credentials
    User name
    text
    UserName
    Not specifying will "Use user name from credential".
    Password
    text
    Password
    Not specifying will "Use password from credential".
    Ignore SSL Errors
    true/false
    IgnoreSslErrors
    Default value is "False".

    Example:

    # uploads a file to example.org service endpoint
    Upload-Http ReleaseNotes.xml (
        To: http://example.org/upload-service/v3/hdars
    );
    

Git

  • Check Out Code from Git - Gets source code from a branch or commit on a git repository.

    Check Out Code from Git

    Gets source code from a branch or commit on a git repository.

    Script usage:

    Git::Checkout-Code(
    	[BranchOrCommit: <text>],
    	[To: <text>],
    	[RecurseSubmodules: <true/false>],
    	[CommitHash: <text>],
    	[PreserveLastModified: <true/false>],
    	[WriteMinimalGitData: <true/false>],
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[RepositoryUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Commit or branch
    text
    BranchOrCommit
    Default value is "$Commit".
    To
    text
    To
    Default value is "$WorkingDirectory".
    Recurse submodules
    true/false
    RecurseSubmodules
    Default value is "True".
    Commit hash
    text
    CommitHash
    The full SHA1 hash resolved commit will be stored in this variable. This is useful when you specify a branch for the BranchOrCommit property.
    Preserve Last Modified Date
    true/false
    PreserveLastModified
    By default, Git will not set the Last Modified date of files when checking out. Selecting this option may take additional time, depending on the number of files in the repository.
    Write minimal git data
    true/false
    WriteMinimalGitData
    Writes minimal information to the .git directory in the output directory which contains the head commit and the origin url.
    Repository connection
    text
    From
    Default value is "$Repository".
    User name
    text
    UserName
    Value note: "Username from repository connection".
    Password
    text
    Password
    Value note: "Password from repository connection".
    Repository URL
    text
    RepositoryUrl
    Value note: "Repository URL from repository connection".
  • Create Pull Request - Creates a pull/merge request in a git repository.

    Create Pull Request

    Creates a pull/merge request in a git repository.

    Script usage:

    Git::Create-PullRequest(
    	Title: <text>,
    	[Source: <text>],
    	Target: <text>,
    	[Description: <text>],
    	[Id: <text>],
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Namespace: <text>],
    	[Repository: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Title
    text
    Title
    This argument is required.
    Source branch
    text
    Source
    Default value is "$Branch".
    Target branch
    text
    Target
    This argument is required.
    Description
    text
    Description
    Value note: "optional".
    Request Id
    text
    Id
    The id of the created pull request will be stored in this runtime variable.
    Repository connection
    text
    From
    Default value is "$Repository".
    User name
    text
    UserName
    Not specifying will "Use Username from repository connection".
    Password
    text
    Password
    Not specifying will "Use Password from repository connection".
    Namespace name
    text
    Namespace
    Not specifying will "Use namespace from repository connection".
    Repository name
    text
    Repository
    Not specifying will "Use repository from repository connection".
  • Merge Git Pull Request - Merges a pull/merge request in a git repository.

    Merge Git Pull Request

    Merges a pull/merge request in a git repository.

    Script usage:

    Git::Merge-PullRequest(
    	[Id: <text>],
    	[Method: <text>],
    	[Message: <text>],
    	[Head: <text>],
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Namespace: <text>],
    	[Repository: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Request Id
    text
    Id
    Default value is "$PullRequestId".
    Merge method
    text
    Method
    Default value is "merge".
    Commit message
    text
    Message
    Not specifying will use value: "Auto generated".
    Head commit
    text
    Head
    Pull request must match to allow merge. Default value is "$Commit".
    Repository connection
    text
    From
    Default value is "$Repository".
    User name
    text
    UserName
    Not specifying will "Use Username from repository connection".
    Password
    text
    Password
    Not specifying will "Use Password from repository connection".
    Namespace name
    text
    Namespace
    Not specifying will "Use namespace from repository connection".
    Repository name
    text
    Repository
    Not specifying will "Use repository from repository connection".
  • Set Git Commit Status - Sets a status message on Git server for a commit.

    Set Git Commit Status

    Sets a status message on Git server for a commit.

    Script usage:

    Git::Set-CommitStatus(
    	[Commit: <text>],
    	[Status: <text>],
    	[AdditionalContext: <text>],
    	[Description: <text>],
    	[NormalDescription: <text>],
    	[WarningDescription: <text>],
    	[ErrorDescription: <text>],
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Namespace: <text>],
    	[Repository: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Commit
    text
    Commit
    Default value is "$Commit".
    Status (default)
    text
    Status
    Not specifying will use value: "Automatically determine status".
    Additional context
    text
    AdditionalContext
    Appears in the commit status dialog on GitHub after "ci/buildmaster". Used to differentiate between multiple BuildMaster statuses on the same commit. In most cases, it is safe to leave this blank.
    Description
    text
    Description
    Used for all statuses except 'auto'. Default value is "#$ExecutionId in progress...".
    Complete (success)
    text
    NormalDescription
    Default value is "#$ExecutionId completed.".
    Complete (warning)
    text
    WarningDescription
    Default value is "#$ExecutionId completed with warnings.".
    Complete (error)
    text
    ErrorDescription
    Default value is "#$ExecutionId failed!".
    Repository connection
    text
    From
    Default value is "$Repository".
    User name
    text
    UserName
    Not specifying will "Use Username from repository connection".
    Password
    text
    Password
    Not specifying will "Use Password from repository connection".
    Namespace name
    text
    Namespace
    Not specifying will "Use namespace from repository connection".
    Repository name
    text
    Repository
    Not specifying will "Use repository from repository connection".
  • Tag Code in Git - Creates and pushes a tag to a git repository.

    Tag Code in Git

    Creates and pushes a tag to a git repository.

    Script usage:

    Git::Ensure-Tag(
    	Tag: <text>,
    	[Commit: <text>],
    	[Force: <true/false>],
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[RepositoryUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Tag (default)
    text
    Tag
    This argument is required.
    Commit
    text
    Commit
    Default value is "$Commit".
    Force (overwrite)
    true/false
    Force
    Repository connection
    text
    From
    Default value is "$Repository".
    User name
    text
    UserName
    Value note: "Username from repository connection".
    Password
    text
    Password
    Value note: "Password from repository connection".
    Repository URL
    text
    RepositoryUrl
    Value note: "Repository URL from repository connection".

HTTP

  • HTTP GET Request - Executes an HTTP GET, DELETE, or HEAD request against a URL, typically used for RESTful operations.

    HTTP GET Request

    Executes an HTTP GET, DELETE, or HEAD request against a URL, typically used for RESTful operations.

    Script usage:

    Get-Http(
    	[Method: <integer>],
    	Url: <text>,
    	[LogResponseBody: <true/false>],
    	[ErrorStatusCodes: <text>],
    	[ResponseBody: <text>],
    	[RequestHeaders: <%(key1: value1, ...)>],
    	[MaxResponseLength: <integer>],
    	[ProxyRequest: <true/false>],
    	[Credentials: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[IgnoreSslErrors: <true/false>]
    );
    
    

    This operation may be prefixed with HTTP::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Method
    integer
    Method
    Default value is "GET".
    URL (default)
    text
    Url
    This argument is required.
    Log response body
    true/false
    LogResponseBody
    Error status codes
    text
    ErrorStatusCodes
    Comma-separated status codes (or ranges in the form of start:end) that should indicate this action has failed. For example, a value of "401,500:599" will fail on all server errors and also when "HTTP Unauthorized" is returned. The default is 400:599. Value note: "400:599".
    Store response as
    text
    ResponseBody
    Value note: "Do not store response body as variable".
    Request headers
    %(key1: value1, ...)
    RequestHeaders
    Max response length
    integer
    MaxResponseLength
    Default value is "1000".
    Use server in context
    true/false
    ProxyRequest
    When selected, this will proxy the HTTP calls through the server is in context instead of using the server Otter or BuildMaster is installed on. Default value is "True".
    Credentials
    text
    Credentials
    User name
    text
    UserName
    Not specifying will "Use user name from credential".
    Password
    text
    Password
    Not specifying will "Use password from credential".
    Ignore SSL Errors
    true/false
    IgnoreSslErrors
    Default value is "False".

    Example:

    # downloads the http://httpbin.org/get page and stores its contents in the 
    # $ResponseBody variable, failing only on 500 errors
    Get-Http http://httpbin.org/get
    (
        ErrorStatusCodes: 500:599,
        ResponseBody => $ResponseBody
    );
    
  • HTTP POST to URL - Executes an HTTP POST/PUT/PATCH request to a URL, typically used for RESTful operations.

    HTTP POST to URL

    Executes an HTTP POST/PUT/PATCH request to a URL, typically used for RESTful operations.

    Script usage:

    Post-Http(
    	[Method: <integer>],
    	[ContentType: <text>],
    	[TextData: <text>],
    	[FormData: <%(key1: value1, ...)>],
    	[LogRequestData: <true/false>],
    	Url: <text>,
    	[LogResponseBody: <true/false>],
    	[ErrorStatusCodes: <text>],
    	[ResponseBody: <text>],
    	[RequestHeaders: <%(key1: value1, ...)>],
    	[MaxResponseLength: <integer>],
    	[ProxyRequest: <true/false>],
    	[Credentials: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[IgnoreSslErrors: <true/false>]
    );
    
    

    This operation may be prefixed with HTTP::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Method
    integer
    Method
    Default value is "POST".
    Content type
    text
    ContentType
    Default value is "application/x-www-form-urlencoded".
    Request text content
    text
    TextData
    Direct text input that will be written to the request content body. This will override any form data if both are supplied.
    Form data
    %(key1: value1, ...)
    FormData
    A map of form data key/value pairs to send. If TextData is supplied, this value is ignored.
    Log request data
    true/false
    LogRequestData
    URL (default)
    text
    Url
    This argument is required.
    Log response body
    true/false
    LogResponseBody
    Error status codes
    text
    ErrorStatusCodes
    Comma-separated status codes (or ranges in the form of start:end) that should indicate this action has failed. For example, a value of "401,500:599" will fail on all server errors and also when "HTTP Unauthorized" is returned. The default is 400:599. Value note: "400:599".
    Store response as
    text
    ResponseBody
    Value note: "Do not store response body as variable".
    Request headers
    %(key1: value1, ...)
    RequestHeaders
    Max response length
    integer
    MaxResponseLength
    Default value is "1000".
    Use server in context
    true/false
    ProxyRequest
    When selected, this will proxy the HTTP calls through the server is in context instead of using the server Otter or BuildMaster is installed on. Default value is "True".
    Credentials
    text
    Credentials
    User name
    text
    UserName
    Not specifying will "Use user name from credential".
    Password
    text
    Password
    Not specifying will "Use password from credential".
    Ignore SSL Errors
    true/false
    IgnoreSslErrors
    Default value is "False".

    Example:

    # posts some key-value pairs to a test service and writes the response body to the BuildMaster execution log
    Post-Http http://httpbin.org/post
    (
        FormData: %(
            Var1: "value1",
            Var2: "value2"
        ),
        LogResponseBody: true
    );
    

IIS

  • Ensure App Pool - Ensures the existence of an application pool on a server.

    Ensure App Pool

    Ensures the existence of an application pool on a server.

    Script usage:

    IIS::Ensure-AppPool(
    	Name: <text>,
    	[Runtime: <text>],
    	[Enable32BitAppOnWin64: <true/false>],
    	[Pipeline: <integer>],
    	[AutoStart: <true/false>],
    	[QueueLength: <Int64>],
    	[State: <integer>],
    	[IdentityType: <integer>],
    	[Credentials: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[CpuLimit: <Int64>],
    	[CpuAction: <integer>],
    	[CpuResetInterval: <TimeSpan>],
    	[CpuSmpAffinitized: <true/false>],
    	[CpuSmpProcessorAffinityMask: <Int64>],
    	[CpuSmpProcessorAffinityMask2: <Int64>],
    	[IdleTimeout: <TimeSpan>],
    	[LoadUserProfile: <true/false>],
    	[MaxProcesses: <Int64>],
    	[PingingEnabled: <true/false>],
    	[PingResponseTime: <TimeSpan>],
    	[PingInterval: <TimeSpan>],
    	[ShutdownTimeLimit: <TimeSpan>],
    	[StartupTimeLimit: <TimeSpan>],
    	[OrphanWorkerProcess: <true/false>],
    	[OrphanActionExe: <text>],
    	[OrphanActionParams: <text>],
    	[LoadBalancerCapabilities: <integer>],
    	[RapidFailProtection: <true/false>],
    	[RapidFailProtectionInterval: <TimeSpan>],
    	[RapidFailProtectionMaxCrashes: <Int64>],
    	[AutoShutdownExe: <text>],
    	[AutoShutdownParams: <text>],
    	[DisallowOverlappingRotation: <true/false>],
    	[DisallowRotationOnConfigChange: <true/false>],
    	[PeriodicRestartPrivateMemory: <Int64>],
    	[PeriodicRestartTime: <TimeSpan>],
    	[PeriodicRestartRequests: <Int64>],
    	[PeriodicRestartSchedule: <@(text)>],
    	[PeriodicRestartMemory: <Int64>],
    	[Exists: <true/false>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Name
    text
    Name
    The unique name of the IIS site or application pool. This argument is required.
    .NET CLR version
    text
    Runtime
    The .NET runtime version used by this application pool. Current valid values are v4.0, v2.0, v1.1, or none.
    Enable 32-bit applications
    true/false
    Enable32BitAppOnWin64
    If set to True for an application pool on a 64-bit operating system, the worker process(es) serving the application pool run in WOW64 (Windows on Windows64) mode. In WOW64 mode, 32-bit processes load only 32-bit applications.
    Managed pipeline mode
    integer
    Pipeline
    Configures ASP.NET to run in classic mode as an ISAPI extension or in integrated mode where managed code is integrated into the request-processing pipeline.
    Start automatically
    true/false
    AutoStart
    If True, the application pool starts on creation or when IIS starts. Starting an application pool sets this property to True. Stopping an application sets this property to False.
    Queue length
    Int64
    QueueLength
    Maximum number of requests that Http.sys queues for the application pool. When the queue is full, new requests receive a 503 "Service Unavailable" response.
    State
    integer
    State
    Sets the running state for the application pool.
    Identity type
    integer
    IdentityType
    Configures the application pool to run as a built-in account, such as Network Service (recommended), Local Service, or as a specific user identity.
    Credentials
    text
    Credentials
    The credential name to use for the application pool's identity. If a credential name is specified, the username and password fields will be ignored.
    User name
    text
    UserName
    Configures the application pool to run as a built-in account, such as Network Service (recommended), Local Service, or as a specific user identity.
    Password
    text
    Password
    Limit (percent)
    Int64
    CpuLimit
    Configures the maximum percentage of CPU time (in 1/1000ths of a percent) that the worker processes in an application pool are allowed to consume over a period of time as indicated by the Limit Interval setting (resetInterval property). If the limit set by Limit (limit property) is exceeded, the event is written to the event log and an optional set of events can be triggered or determined by the Limit Action setting (action property). Setting the value of Limit to 0 disables limiting the worker processes to a percentage of CPU time.
    Limit action
    integer
    CpuAction
    If set to NoAction, an event log entry is generated. If set to KillW3WP, the application pool is shut down for the duration of the reset interval and an event log entry is generated.
    Limit interval (minutes)
    TimeSpan
    CpuResetInterval
    Specifies the reset period (in minutes) for CPU monitoring and throttling limits on the application pool. When the number of minutes elapsed since the last process accounting reset equals the number specified by this property, IIS resets the CPU timers for both the logging and limit intervals. Setting the value of Limit Interval to 0 disables CPU monitoring.
    Processor affinity enabled
    true/false
    CpuSmpAffinitized
    If True, Processor Affinity Enabled forces the worker process(es) serving this application pool to run on specific CPUs. This enables sufficient use of CPU caches on multiprocessor servers.
    Processor affinity mask
    Int64
    CpuSmpProcessorAffinityMask
    Hexadecimal mask that forces the worker process(es) for this application pool to run on a specific CPU. If processor affinity is enabled, a value of 0 causes an error condition.
    Processor affinity (64-bit)
    Int64
    CpuSmpProcessorAffinityMask2
    Hexadecimal mask that forces the worker process(es) for this application pool to run on a specific CPU. If processor affinity is enabled, a value of 0 causes an error condition.
    Idle time-out (minutes)
    TimeSpan
    IdleTimeout
    Amount of time (in minutes) a worker process remains idle before it shuts down. A worker process is idle if it is not processing requests and no new requests are received.
    Load user profile
    true/false
    LoadUserProfile
    Specifies whether IIS loads the user profile for an application pool identity. When set to True, IIS loads the user profile for the application pool identity. Set to False when you require IIS 6.0 behavior.
    Max worker processes
    Int64
    MaxProcesses
    Maximum number of worker processes permitted to service requests for the application pool. If this number is greater than 1, the application pool is called a Web garden.
    Ping enabled
    true/false
    PingingEnabled
    If True, the worker process(es) serving this application pool are pinged periodically to ensure that they are still responsive. This process is called health monitoring.
    Ping max response time (seconds)
    TimeSpan
    PingResponseTime
    Maximum time (in seconds) that a worker process is given to respond to a health monitoring ping. If the worker process does not respond, it is terminated.
    Ping period (seconds)
    TimeSpan
    PingInterval
    Period of time (in seconds) between health monitoring pings sent to the worker process(es) serving this application pool.
    Shutdown time limit (seconds)
    TimeSpan
    ShutdownTimeLimit
    Period of time (in seconds) a worker process is given to finish processing requests and shut down. If the worker process exceeds the shutdown time limit, it is terminated.
    Startup time limit (seconds)
    TimeSpan
    StartupTimeLimit
    Period of time (in seconds) a worker process is given to start up and initialize. If the worker process initialization exceeds the startup time limit, it is terminated.
    Process orphaning enabled
    true/false
    OrphanWorkerProcess
    If True, an unresponsive worker process is abandoned (orphaned) instead of terminated. This feature can be used to debug a worker process failure.
    Process orphaning executable
    text
    OrphanActionExe
    Executable to run when a worker process is abandoned (orphaned). For example, C:\dbgtools tsd.exe would invoke NTSD to debug a worker process failure.
    Executable parameters
    text
    OrphanActionParams
    Parameters for the executable that is run when a worker process is abandoned (orphaned). For example, -g –p %1% is appropriate if the NTSD is the executable invoked for debugging worker process failures.
    Service unavailable response type
    integer
    LoadBalancerCapabilities
    If set to HttpLevel and the application pool is stopped, Http.sys returns an HTTP 503 error. If set to TcpLevel, Http.sys resets the connection. This is useful if the load balancer recognizes one of the response types and subsequently redirects it.
    Rapid fail protection enabled
    true/false
    RapidFailProtection
    If True, the application pool is shut down if there are a specified number of worker process failures (Maximum Failures) within a specified period (Failure Interval). By default, an application pool is shut down if there are five failures in a five minute period.
    Failure interval (minutes)
    TimeSpan
    RapidFailProtectionInterval
    The time interval (in minutes) during which the specified number of worker process failures (Maximum Failures) must occur before the application pool is shut down by Rapid Fail Protection.
    Maximum failures
    Int64
    RapidFailProtectionMaxCrashes
    Maximum number of worker process failures permitted before the application pool is shut down by Rapid Fail Protection.
    Shutdown executable
    text
    AutoShutdownExe
    Executable to run when an application pool is shut down by Rapid Fail Protection.This can be used to configure a load balancer to redirect traffic for this application to another server.
    Shutdown executable parameters
    text
    AutoShutdownParams
    Parameters for the executable to run when an application pool is shut down by Rapid Fail Protection.
    Disable overlapped recycle
    true/false
    DisallowOverlappingRotation
    If True, when the application pool recycles, the existing worker process exits before another worker process is created. Set to True if the worker process loads an application that does not support multiple instances.
    Disable for config changes
    true/false
    DisallowRotationOnConfigChange
    If True, the application pool does not recycle when its configuration is changed.
    Private memory limit (KB)
    Int64
    PeriodicRestartPrivateMemory
    Maximum amount of private memory (in KB) a worker process can consume before causing the application pool to recycle. A value of 0 means there is no limit.
    Regular time interval (minutes)
    TimeSpan
    PeriodicRestartTime
    Period of time (in minutes) after which an application pool recycles. A value of 0 means the application pool does not recycle at a regular interval.
    Request Limit
    Int64
    PeriodicRestartRequests
    Maximum number of requests an application pool can process before it is recycled. A value of 0 means the application pool can process an unlimited number of requests.
    Schedule
    @(text)
    PeriodicRestartSchedule
    Specific times of day to recycle the application pool. For example, @(3:30:00, 10:00:00, 23:59:59).
    Virtual memory limit (KB)
    Int64
    PeriodicRestartMemory
    Maximum amount of virtual memory (in KB) a worker process can consume before causing the application pool to recycle. A value of 0 means there is no limit.
    Exists
    true/false
    Exists
    Default value is "True".

    See also:

    Example:

    # ensures that the Otter application pool is present on the web server
    IIS::Ensure-AppPool(
        Name: OtterAppPool,
        Pipeline: 1, # classic mode
        Runtime: v4.0
    );
    
    # ensures that the DefaultAppPool is removed from the web server
    IIS::Ensure-AppPool(
        Name: DefaultAppPool,
        Exists: false
    );
    
  • Ensure Application - Ensures the existence of an application within an IIS site.

    Ensure Application

    Ensures the existence of an application within an IIS site.

    Script usage:

    IIS::Ensure-Application(
    	Site: <text>,
    	Path: <text>,
    	[AppPool: <text>],
    	[PhysicalPath: <text>],
    	[LogonMethod: <integer>],
    	[Credentials: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Exists: <true/false>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Site name
    text
    Site
    The name of this site where the application would exist. This argument is required.
    Application path
    text
    Path
    The relative URL of the path, such as /hdars. This argument is required.
    Application pool
    text
    AppPool
    The name of the application pool assigned to the application.
    Physical path
    text
    PhysicalPath
    Physical path to the content for the application, such as c:\hdars.
    Logon method
    integer
    LogonMethod
    Specifies the type of the logon operation to perform when calling LogonUser to acquire the user token impersonated to access the physical path for the application.
    Credentials
    text
    Credentials
    The credential name to be impersonated when accessing the physical path for the application. If a credential name is specified, the username and password fields will be ignored.
    User name
    text
    UserName
    Password
    text
    Password
    Exists
    true/false
    Exists
    Default value is "True".

    Example:

    # ensures that the hdars application is present on the web server
    IIS::Ensure-Application(
        Site: Hdars,
        Path: /hdars,
        PhysicalPath: C:\hdars
    );
    
  • Ensure Site - Ensures the existence of a site on a server.

    Ensure Site

    Ensures the existence of a site on a server.

    Script usage:

    IIS::Ensure-Site(
    	Name: <text>,
    	[AppPool: <text>],
    	[Path: <text>],
    	[BindingProtocol: <text>],
    	[BindingAddress: <text>],
    	[BindingHostName: <text>],
    	[BindingPort: <integer>],
    	[BindingCertficiate: <text>],
    	[BindingCertificateStoreLocation: <integer>],
    	[BindingCertificateHash: <text>],
    	[BindingRequireSNI: <true/false>],
    	[BindingCertificateStore: <text>],
    	[Binding: <text>],
    	[Bindings: <@(%(key1: value1, ...))>],
    	[Exists: <true/false>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Name
    text
    Name
    The unique name of the IIS site or application pool. This argument is required.
    Application pool
    text
    AppPool
    The name of the application pool assigned to the site.
    Virtual directory physical path
    text
    Path
    The path to the web site files on disk.
    BindingProtocol
    text
    BindingProtocol
    IP address
    text
    BindingAddress
    Default value is "*".
    Host name
    text
    BindingHostName
    BindingPort
    integer
    BindingPort
    Default value is "80".
    SSL certificate
    text
    BindingCertficiate
    Value note: "friendly name, if not using "CertificateHash"".
    Certificate store location
    integer
    BindingCertificateStoreLocation
    SSL certificate hash
    text
    BindingCertificateHash
    When specified, this value will be used to identify the SSL certificate by its thumbprint, and the "Certificate" and "CertificateStoreLocation" values will be ignored.
    Require SNI
    true/false
    BindingRequireSNI
    SSL certificate store
    text
    BindingCertificateStore
    Default value is "My".
    Binding
    text
    Binding
    Multiple bindings (Legacy)
    @(%(key1: value1, ...))
    Bindings
    This setting is no longer recommended; instead, use a separate operation to set multiple bindings. To enter multiple bindings, use a list of maps, e.g.:
    @(%(IPAddress: 192.0.2.100, Port: 80, HostName: example.com, Protocol: http), %(IPAddress: 192.0.2.101, Port: 443, HostName: secure.example.com, Protocol: https, CertificateStoreName: WebHosting, CertificateHash: 51599BF2909EA984793481F0DF946C57E4FD5DEA, ServerNameIndication: true, UseCentralizedStore: false))
    .
    Exists
    true/false
    Exists
    Default value is "True".

    Note: When creating a site, you must specify binding information.

    Example:

    # ensures that the FooBar web site is present on the web server, and binds the site to the single IP address 192.0.2.100  and hostname "foorbar.corp"
    IIS::Ensure-Site(
        Name: FooBar,
        AppPool: FooBarAppPool,
        Path: E:\Websites\FooBar,
        BindingProtocol: http,
        BindingAddress: 192.0.2.100,
        BindingHostName: foobar.corp
    );
    
    # ensures that the Default Web Site is removed from the web server
    IIS::Ensure-Site(
        Name: Default Web Site,
        Exists: false
    );
    
  • Ensure Site Binding - Ensures the existence of a binding on a site.

    Ensure Site Binding

    Ensures the existence of a binding on a site.

    Script usage:

    IIS::Ensure-SiteBinding(
    	Site: <text>,
    	[Protocol: <text>],
    	[Address: <text>],
    	[HostName: <text>],
    	[Port: <integer>],
    	[Certficiate: <text>],
    	[CertificateStoreLocation: <integer>],
    	[CertificateHash: <text>],
    	[RequireSNI: <true/false>],
    	[CertificateStore: <text>],
    	[Exists: <true/false>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    IIS site
    text
    Site
    This argument is required.
    Protocol
    text
    Protocol
    Default value is "http".
    IP address
    text
    Address
    Default value is "*".
    Host name
    text
    HostName
    Port
    integer
    Port
    Default value is "80".
    SSL certificate
    text
    Certficiate
    Value note: "friendly name, if not using "CertificateHash"".
    Certificate store location
    integer
    CertificateStoreLocation
    SSL certificate hash
    text
    CertificateHash
    When specified, this value will be used to identify the SSL certificate by its thumbprint, and the "Certificate" and "CertificateStoreLocation" values will be ignored.
    Require SNI
    true/false
    RequireSNI
    SSL certificate store
    text
    CertificateStore
    Default value is "My".
    Exists
    true/false
    Exists
    Default value is "True".

    See also:

    Example:

    # ensures that the Otter web site is present on the web server, and binds the site to the single IP address 192.0.2.100 on port 80 and hostname "example.com"
    IIS::Ensure-Site(
        Name: Otter,
        AppPool: OtterAppPool,
        Path: E:\Websites\Otter
    );
    
    IIS::Ensure-SiteBinding(
        Site: Otter,
        Protocol: http,
        Address: 192.0.2.100,
        Port: 80,
        HostName: example.com
    );
    
  • Ensure Virtual Directory - Ensures the existence of a virtual directory within an IIS site.

    Ensure Virtual Directory

    Ensures the existence of a virtual directory within an IIS site.

    Script usage:

    IIS::Ensure-VirtualDirectory(
    	Site: <text>,
    	[ApplicationPath: <text>],
    	Path: <text>,
    	[PhysicalPath: <text>],
    	[LogonMethod: <integer>],
    	[Credentials: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Exists: <true/false>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Site name
    text
    Site
    The name of this site where the virtual directory would exist. This argument is required.
    Application path
    text
    ApplicationPath
    The relative URL of the application containing the virtual directory, such as /. Default value is "/".
    Virtual path
    text
    Path
    The relative URL of the path, such as /hdars. This argument is required.
    Physical path
    text
    PhysicalPath
    Physical path to the content for the virtual directory, such as c:\hdars.
    Logon method
    integer
    LogonMethod
    Specifies the type of the logon operation to perform when calling LogonUser to acquire the user token impersonated to access the physical path for the virtual directory.
    Otter credentials
    text
    Credentials
    The Otter credential name to be impersonated when accessing the physical path for the virtual directory. If a credential name is specified, the username and password fields will be ignored.
    User name
    text
    UserName
    Password
    text
    Password
    Exists
    true/false
    Exists
    Default value is "True".

    Example:

    # ensures that the hdars virtual directory pool is present on the web server
    IIS::Ensure-VirtualDirectory(
        Site: Hdars,
        Path: /hdars,
        PhysicalPath: C:\hdars
    );
    
  • Recycle App Pool - Recycles an application pool.

    Recycle App Pool

    Recycles an application pool.

    Script usage:

    IIS::Recycle-AppPool(
    	[WaitForStartedStatus: <true/false>],
    	Name: <text>
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Wait for started status
    true/false
    WaitForStartedStatus
    Default value is "True".
    App pool (default)
    text
    Name
    The name of the application pool to operate on. This argument is required.

    Example:

    # stops the BuildMaster application pool 
    IIS::Stop-AppPool BuildMasterAppPool;
    
    # starts the BuildMaster application pool 
    IIS::Start-AppPool BuildMasterAppPool;
    
    # recycles the BuildMaster application pool 
    IIS::Recycle-AppPool BuildMasterAppPool;
    
  • Start App Pool - Starts an IIS app pool.

    Start App Pool

    Starts an IIS app pool.

    Script usage:

    IIS::Start-AppPool(
    	[WaitForStartedStatus: <true/false>],
    	Name: <text>
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Wait for started status
    true/false
    WaitForStartedStatus
    Default value is "True".
    App pool (default)
    text
    Name
    The name of the application pool to operate on. This argument is required.

    See also:

    Example:

    # stops the BuildMaster application pool 
    IIS::Stop-AppPool BuildMasterAppPool;
    
    # starts the BuildMaster application pool 
    IIS::Start-AppPool BuildMasterAppPool;
    
    # recycles the BuildMaster application pool 
    IIS::Recycle-AppPool BuildMasterAppPool;
    
  • Start Site - Starts an IIS Site.

    Start Site

    Starts an IIS Site.

    Script usage:

    IIS::Start-Site(
    	[WaitForStartedStatus: <true/false>],
    	Name: <text>
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Wait for started status
    true/false
    WaitForStartedStatus
    Default value is "True".
    Site (default)
    text
    Name
    The name of the IIS site to operate on. This argument is required.

    Example:

    # stops the BuildMaster web site 
    IIS::Stop-Site BuildMaster;
    
    # starts the BuildMaster web site
    IIS::Start-Site BuildMaster;
    
  • Stop App Pool - Stops an IIS app pool.

    Stop App Pool

    Stops an IIS app pool.

    Script usage:

    IIS::Stop-AppPool(
    	[WaitForStoppedStatus: <true/false>],
    	Name: <text>
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Wait for stopped status
    true/false
    WaitForStoppedStatus
    Default value is "True".
    App pool (default)
    text
    Name
    The name of the application pool to operate on. This argument is required.

    Example:

    # stops the BuildMaster application pool 
    IIS::Stop-AppPool BuildMasterAppPool;
    
    # starts the BuildMaster application pool 
    IIS::Start-AppPool BuildMasterAppPool;
    
    # recycles the BuildMaster application pool 
    IIS::Recycle-AppPool BuildMasterAppPool;
    
  • Stop Site - Stops an IIS Site.

    Stop Site

    Stops an IIS Site.

    Script usage:

    IIS::Stop-Site(
    	[WaitForStoppedStatus: <true/false>],
    	Name: <text>
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Wait for stopped status
    true/false
    WaitForStoppedStatus
    Default value is "True".
    Site (default)
    text
    Name
    The name of the IIS site to operate on. This argument is required.

    Example:

    # stops the BuildMaster web site 
    IIS::Stop-Site BuildMaster;
    
    # starts the BuildMaster web site
    IIS::Start-Site BuildMaster;
    

Issue Tracking

  • Add Comment to GitHub Issue - Adds a comment to an issue on GitHub.

    Add Comment to GitHub Issue

    Adds a comment to an issue on GitHub.

    Script usage:

    GitHub::Create-IssueComment(
    	Number: <integer>,
    	Body: <text>,
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Organization: <text>],
    	[Repository: <text>],
    	[ApiUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Issue number
    integer
    Number
    This argument is required.
    Body
    text
    Body
    This argument is required.
    From GitHub resource
    text
    From
    User name
    text
    UserName
    Not specifying will "Use user name from GitHub resource's credentials".
    Password
    text
    Password
    Not specifying will "Use password from GitHub resource's credentials".
    Organization name
    text
    Organization
    Not specifying will "Use organization from Github resource".
    Repository name
    text
    Repository
    Not specifying will "Use repository from Github resource".
    API URL
    text
    ApiUrl
    Use URL from Github resource. Value note: "https://api.github.com".
  • Add Note to GitLab Issue - Adds a note to an issue on GitLab.

    Add Note to GitLab Issue

    Adds a note to an issue on GitLab.

    Script usage:

    GitLab::Create-IssueNote(
    	IssueId: <integer>,
    	Body: <text>,
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Namespace: <text>],
    	[Project: <text>],
    	[ApiUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Issue ID
    integer
    IssueId
    This argument is required.
    Body
    text
    Body
    This argument is required.
    From GitLab resource
    text
    From
    User name
    text
    UserName
    Not specifying will "Use user name from GitLab resource's credentials".
    Password
    text
    Password
    Not specifying will "Use password from GitLab resource's credentials".
    Namespace
    text
    Namespace
    Not specifying will "Use namespace from GitLab resource".
    Project name
    text
    Project
    Not specifying will "Use project from GitLab resource".
    API URL
    text
    ApiUrl
    Not specifying will "Use URL from GitLab resource".
  • Close GitHub Issue - Closes an issue on GitHub.

    Close GitHub Issue

    Closes an issue on GitHub.

    Script usage:

    GitHub::Close-Issue(
    	Number: <integer>,
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Organization: <text>],
    	[Repository: <text>],
    	[ApiUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Issue number
    integer
    Number
    This argument is required.
    From GitHub resource
    text
    From
    User name
    text
    UserName
    Not specifying will "Use user name from GitHub resource's credentials".
    Password
    text
    Password
    Not specifying will "Use password from GitHub resource's credentials".
    Organization name
    text
    Organization
    Not specifying will "Use organization from Github resource".
    Repository name
    text
    Repository
    Not specifying will "Use repository from Github resource".
    API URL
    text
    ApiUrl
    Use URL from Github resource. Value note: "https://api.github.com".
  • Close GitLab Issue - Closes an issue on GitLab.

    Close GitLab Issue

    Closes an issue on GitLab.

    Script usage:

    GitLab::Close-Issue(
    	IssueId: <integer>,
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Namespace: <text>],
    	[Project: <text>],
    	[ApiUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Issue ID
    integer
    IssueId
    This argument is required.
    From GitLab resource
    text
    From
    User name
    text
    UserName
    Not specifying will "Use user name from GitLab resource's credentials".
    Password
    text
    Password
    Not specifying will "Use password from GitLab resource's credentials".
    Namespace
    text
    Namespace
    Not specifying will "Use namespace from GitLab resource".
    Project name
    text
    Project
    Not specifying will "Use project from GitLab resource".
    API URL
    text
    ApiUrl
    Not specifying will "Use URL from GitLab resource".
  • Create Azure DevOps Work Item - Creates a work item in Azure DevOps.

    Create Azure DevOps Work Item

    Creates a work item in Azure DevOps.

    Script usage:

    AzureDevOps::Create-WorkItem(
    	Type: <text>,
    	Title: <text>,
    	[Description: <text>],
    	[IterationPath: <text>],
    	[WorkItemId: <text>],
    	From: <text>,
    	[Project: <text>],
    	[Repository: <text>],
    	[Url: <text>],
    	[UserName: <text>],
    	[Token: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Work item type
    text
    Type
    This argument is required.
    Title
    text
    Title
    This argument is required.
    Description
    text
    Description
    Iteration path
    text
    IterationPath
    Set work item ID to variable
    text
    WorkItemId
    The Azure DevOps work item ID can be output into a runtime variable. e.g. $WorkItemId".
    From AzureDevOps resource
    text
    From
    This argument is required.
    Project name
    text
    Project
    Not specifying will "Use team project from AzureDevOps resource".
    Repository name
    text
    Repository
    Not specifying will "Use the project name".
    Project collection URL
    text
    Url
    Not specifying will "Use team project from AzureDevOps resource".
    User name
    text
    UserName
    Not specifying will "Use user name from AzureDevOps resource's credentials".
    Personal access token
    text
    Token
    Not specifying will "Use team project from AzureDevOps resource's credential".

    Example:

    # create issue for the HDARS project
    Create-WorkItem
    (
        Credentials: KarlAzure,
        Project: HDARS,
        Type: Task,
        Title: QA Testing Required for $ApplicationName,
        Description: This issue was created by BuildMaster on $Date
    );
    
  • Create GitHub Issue - Creates an issue on a GitHub repository.

    Create GitHub Issue

    Creates an issue on a GitHub repository.

    Script usage:

    GitHub::Create-Issue(
    	Title: <text>,
    	[Body: <text>],
    	[Labels: <@(text)>],
    	[Assignees: <@(text)>],
    	[Milestone: <text>],
    	[Number: <integer>],
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Organization: <text>],
    	[Repository: <text>],
    	[ApiUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Title
    text
    Title
    This argument is required.
    Body
    text
    Body
    Labels
    @(text)
    Labels
    Assignees
    @(text)
    Assignees
    Milestone
    text
    Milestone
    Issue number
    integer
    Number
    From GitHub resource
    text
    From
    User name
    text
    UserName
    Not specifying will "Use user name from GitHub resource's credentials".
    Password
    text
    Password
    Not specifying will "Use password from GitHub resource's credentials".
    Organization name
    text
    Organization
    Not specifying will "Use organization from Github resource".
    Repository name
    text
    Repository
    Not specifying will "Use repository from Github resource".
    API URL
    text
    ApiUrl
    Use URL from Github resource. Value note: "https://api.github.com".
  • Create GitLab Issue - Creates an issue on a GitLab project.

    Create GitLab Issue

    Creates an issue on a GitLab project.

    Script usage:

    GitLab::Create-Issue(
    	Title: <text>,
    	[Description: <text>],
    	[Labels: <@(text)>],
    	[Assignees: <@(text)>],
    	[Milestone: <text>],
    	[AdditionalProperties: <%(key1: value1, ...)>],
    	[IssueId: <text>],
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Namespace: <text>],
    	[Project: <text>],
    	[ApiUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Title
    text
    Title
    This argument is required.
    Description
    text
    Description
    Labels
    @(text)
    Labels
    Assignees
    @(text)
    Assignees
    Milestone
    text
    Milestone
    Additional properties
    %(key1: value1, ...)
    AdditionalProperties
    Issue ID
    text
    IssueId
    From GitLab resource
    text
    From
    User name
    text
    UserName
    Not specifying will "Use user name from GitLab resource's credentials".
    Password
    text
    Password
    Not specifying will "Use password from GitLab resource's credentials".
    Namespace
    text
    Namespace
    Not specifying will "Use namespace from GitLab resource".
    Project name
    text
    Project
    Not specifying will "Use project from GitLab resource".
    API URL
    text
    ApiUrl
    Not specifying will "Use URL from GitLab resource".
  • Ensure GitHub Milestone - Ensures a GitHub milestone exists with the specified properties.

    Ensure GitHub Milestone

    Ensures a GitHub milestone exists with the specified properties.

    Script usage:

    GitHub::Ensure-Milestone(
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Organization: <text>],
    	[Repository: <text>],
    	[ApiUrl: <text>],
    	Title: <text>,
    	[DueDate: <text>],
    	[Description: <text>],
    	[State: <integer>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    From GitHub resource
    text
    From
    User name
    text
    UserName
    Not specifying will "Use user name from GitHub resource's credentials".
    Password
    text
    Password
    Not specifying will "Use password from GitHub resource's credentials".
    Organization name
    text
    Organization
    Not specifying will "Use organization from Github resource".
    Repository name
    text
    Repository
    Not specifying will "Use repository from Github resource".
    API URL
    text
    ApiUrl
    Not specifying will "Use URL from Github resource.".
    Title
    text
    Title
    This argument is required.
    Due date
    text
    DueDate
    Description
    text
    Description
    State
    integer
    State
  • Ensure GitLab Milestone - Ensures a GitLab milestone exists with the specified properties.

    Ensure GitLab Milestone

    Ensures a GitLab milestone exists with the specified properties.

    Script usage:

    GitLab::Ensure-Milestone(
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Namespace: <text>],
    	[Project: <text>],
    	[ApiUrl: <text>],
    	Title: <text>,
    	[StartDate: <text>],
    	[DueDate: <text>],
    	[Description: <text>],
    	[State: <integer>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    From GitLab resource
    text
    From
    User name
    text
    UserName
    Not specifying will "Use user name from GitLab resource's credentials".
    Password
    text
    Password
    Not specifying will "Use password from GitLab resource's credentials".
    Namespace
    text
    Namespace
    Not specifying will "Use namespace from GitLab resource".
    Project name
    text
    Project
    Not specifying will "Use project from GitLab resource".
    API URL
    text
    ApiUrl
    Not specifying will "Use URL from GitLab resource".
    Title
    text
    Title
    This argument is required.
    Start date
    text
    StartDate
    Due date
    text
    DueDate
    Description
    text
    Description
    State
    integer
    State
  • Find Azure DevOps Work Items - Finds Work Items in Azure DevOps.

    Find Azure DevOps Work Items

    Finds Work Items in Azure DevOps.

    Script usage:

    AzureDevOps::Find-WorkItems(
    	[IterationPath: <text>],
    	[Filter: <text>],
    	[CustomWiql: <text>],
    	[Output: <RuntimeValue>],
    	From: <text>,
    	[Project: <text>],
    	[Repository: <text>],
    	[Url: <text>],
    	[UserName: <text>],
    	[Token: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Iteration path
    text
    IterationPath
    Value note: "Unchanged".
    Filter
    text
    Filter
    Filter WIQL that will be appended to the WIQL where clause.See the Azure DevOps Query Language documentation for more information.
    Custom WIQL
    text
    CustomWiql
    Custom WIQL will ignore the project name and iteration path if supplied. See the Azure DevOps Query Language documentation for more information. Not specifying will "Use above fields".
    Output variable
    RuntimeValue
    Output
    The output variable should be a list variable where each item is a map variable. This will include all columns from your WIQL SELECT and "Id", "URL", and "IsClosed". For example: @AzureDevOpsIssueIDs.
    From AzureDevOps resource
    text
    From
    This argument is required.
    Project name
    text
    Project
    Not specifying will "Use team project from AzureDevOps resource".
    Repository name
    text
    Repository
    Not specifying will "Use the project name".
    Project collection URL
    text
    Url
    Not specifying will "Use team project from AzureDevOps resource".
    User name
    text
    UserName
    Not specifying will "Use user name from AzureDevOps resource's credentials".
    Personal access token
    text
    Token
    Not specifying will "Use team project from AzureDevOps resource's credential".
  • Update Azure DevOps Work Item - Updates an existing work item in Azure DevOps.

    Update Azure DevOps Work Item

    Updates an existing work item in Azure DevOps.

    Script usage:

    AzureDevOps::Update-WorkItem(
    	Id: <text>,
    	[Title: <text>],
    	[Description: <text>],
    	[IterationPath: <text>],
    	[State: <text>],
    	[OtherFields: <%(key1: value1, ...)>],
    	From: <text>,
    	[Project: <text>],
    	[Repository: <text>],
    	[Url: <text>],
    	[UserName: <text>],
    	[Token: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Id
    text
    Id
    The ID for issues may be stored as output variables of the Create-WorkItem operation. This argument is required.
    Title
    text
    Title
    Value note: "Unchanged".
    Description
    text
    Description
    Value note: "Unchanged".
    Iteration path
    text
    IterationPath
    Value note: "Unchanged".
    State
    text
    State
    Value note: "Unchanged".
    OtherFields
    %(key1: value1, ...)
    OtherFields
    A map variable containing other fields and values to update.
    From AzureDevOps resource
    text
    From
    This argument is required.
    Project name
    text
    Project
    Not specifying will "Use team project from AzureDevOps resource".
    Repository name
    text
    Repository
    Not specifying will "Use the project name".
    Project collection URL
    text
    Url
    Not specifying will "Use team project from AzureDevOps resource".
    User name
    text
    UserName
    Not specifying will "Use user name from AzureDevOps resource's credentials".
    Personal access token
    text
    Token
    Not specifying will "Use team project from AzureDevOps resource's credential".

    Example:

    # Update issue stored in package variable to 'In Progress'
    Update-WorkItem
    (
        Credentials: KarlAzure,
        Project: HDARS,
        Id: $WorkItemId,
        State: In Progress
    );
    

Java

  • Build Ant Project - Builds an Ant project using a build file.

    Build Ant Project

    Builds an Ant project using a build file.

    Script usage:

    Build-AntProject(
    	BuildPath: <text>,
    	BuildTarget: <text>,
    	[Properties: <@(text)>],
    	[AntPath: <text>]
    );
    
    

    This operation may be prefixed with Java::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Build path
    text
    BuildPath
    The project path for the build script. Default value is "build.xml". This argument is required.
    Build target
    text
    BuildTarget
    The project target for the build script. This argument is required.
    Properties
    @(text)
    Properties
    The project properties for the build script, in the format PROPERTY=VALUE.
    ant path
    text
    AntPath
    Full path to ant on the server. Default value is "$AntPath".
  • Execute jUnit Tests - Executes jUnit 4.x and later tests.

    Execute jUnit Tests

    Executes jUnit 4.x and later tests.

    Script usage:

    Execute-JUnit(
    	Include: <@(text)>,
    	[Exclude: <@(text)>],
    	[From: <text>],
    	[ExtensionDirectories: <@(text)>],
    	[JavaPath: <text>]
    );
    
    

    This operation may be prefixed with Java::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Include
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Default value is "**Test.class". This argument is required.
    Exclude
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Source directory
    text
    From
    Extension directories
    @(text)
    ExtensionDirectories
    Cross-compile against the specified extension directories. Each JAR archive in the specified directories is searched for class files.
    Java path
    text
    JavaPath
    Full path to java (java.exe on Windows) on the target server. Default value is "$JavaPath".
  • Execute Maven - Runs the Maven executable.

    Execute Maven

    Runs the Maven executable.

    Script usage:

    Execute-Maven(
    	[GoalsAndPhases: <text>],
    	[In: <text>],
    	[Arguments: <text>],
    	[MavenPath: <text>]
    );
    
    

    This operation may be prefixed with Java::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Goals/phases
    text
    GoalsAndPhases
    Space-separated list of Maven goals and/or phases.
    Source directory
    text
    In
    The working directory in which Maven will be executed.
    Additional arguments
    text
    Arguments
    Raw command line arguments to pass to Maven.
    Maven path
    text
    MavenPath
    Full path to mvn on the server. Default value is "$MavenPath".

Jenkins

  • Download Jenkins Artifact - Downloads artifact files from a Jenkins build to the specified directory. Note this will not save them in BuildMaster's artifacts.

    Download Jenkins Artifact

    Downloads artifact files from a Jenkins build to the specified directory. Note this will not save them in BuildMaster's artifacts.

    Script usage:

    Jenkins::Download-Artifacts(
    	[From: <text>],
    	[Project: <text>],
    	[Branch: <text>],
    	[BuildNumber: <text>],
    	[To: <text>],
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	[JenkinsBuildNumber: <text>],
    	[Artifact: <text>],
    	[ExtractFiles: <true/false>],
    	[Credentials: <text>],
    	[Server: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[CsrfProtectionEnabled: <true/false>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Jenkins resource
    text
    From
    Default value is "$CIProject".
    Project name
    text
    Project
    Default value is "$JenkinsProjectName($CIProject)".
    Branch name
    text
    Branch
    The branch name is required for a Jenkins multi-branch project, otherwise should be left empty. Default value is "$JenkinsBranchName($CIBuild)".
    Build number
    text
    BuildNumber
    The build number may be a specific build number, or a special value such as "lastSuccessfulBuild", "lastStableBuild", "lastBuild", or "lastCompletedBuild". Default value is "$JenkinsBuildNumber($CIBuild)".
    Target directory
    text
    To
    Default value is "$WorkingDirectory".
    Include files
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Default value is "**".
    Exclude files
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    Actual build number (output)
    text
    JenkinsBuildNumber
    When you specify a Build Number like "lastBuild", this will output the real Jenkins BuildNumber into a runtime variable. e.g. $ActualBuildNumber".
    Artifact
    text
    Artifact
    ExtractFiles
    true/false
    ExtractFiles
    Default value is "True".
    Jenkins service name
    text
    Credentials
    Not specifying will "Use name from Jenkins resource".
    Server URL
    text
    Server
    Not specifying will "Use service's server URL".
    User name
    text
    UserName
    Not specifying will "Use credential's Username".
    API token or password
    text
    Password
    Not specifying will "Use credential's token/password".
    Use CSRF token
    true/false
    CsrfProtectionEnabled
    Default value is "True".

Network

  • Ensure Hosts Entry - Ensures an entry in the hosts file on a server.

    Ensure Hosts Entry

    Ensures an entry in the hosts file on a server.

    Script usage:

    Ensure-HostsEntry(
    	Host: <text>,
    	IP: <text>,
    	[Exists: <true/false>]
    );
    
    

    This operation may be prefixed with Network::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Host name
    text
    Host
    This argument is required.
    IP address
    text
    IP
    This argument is required.
    Exists
    true/false
    Exists
    Default value is "True".

    Example:

    # bind otter.localhost to local ip
    Ensure-HostsEntry otter.localhost (IP: 127.0.0.1);
    
    # override hdars.com to a local address
    Ensure-HostsEntry (
      Host: hdars.com
      IP: 192.168.10.0);
    

Nuget

  • Create NuGet Package - Creates a NuGet package from a project or .nuspec file (requires Windows).

    Create NuGet Package

    Creates a NuGet package from a project or .nuspec file (requires Windows).

    Script usage:

    NuGet::Create-Package(
    	SourceFile: <text>,
    	[Verbose: <true/false>],
    	[Version: <text>],
    	[Symbols: <true/false>],
    	[Build: <true/false>],
    	[Properties: <@(text)>],
    	[IncludeReferencedProjects: <true/false>],
    	[OutputDirectory: <text>],
    	[SourceDirectory: <text>],
    	[NuGetExePath: <text>],
    	[Arguments: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Source file (default)
    text
    SourceFile
    The .nuspec or MSBuild project that will be passed to NuGet.exe. This argument is required.
    Verbose logging
    true/false
    Verbose
    Version
    text
    Version
    The package version that will be passed to NuGet.exe.
    Symbols
    true/false
    Symbols
    When true, the -Symbols argument will be passed to NuGet.exe.
    Build
    true/false
    Build
    When true, the -Build argument will be passed to NuGet.exe.
    Properties
    @(text)
    Properties
    When Build is true, these values will be passed to NuGet.exe as MSBuild properties in the format PROP=VALUE.
    Include ref. projects
    true/false
    IncludeReferencedProjects
    When true, the -IncludeReferencedProjects argument will be passed to NuGet.exe.
    Output directory
    text
    OutputDirectory
    The output directory that will be passed to NuGet.exe.
    Source directory
    text
    SourceDirectory
    The working directory to use when executing NuGet. Default value is "$WorkingDirectory".
    NuGet.exe path
    text
    NuGetExePath
    Full path to NuGet.exe on the target server. When not set, the included nuget.exe will be used. This will only be used if dotnet is not available on a Windows server or PreferNuGetExe is set to true. Default value is "$NuGetExePath".
    Additional arguments
    text
    Arguments
    When specified, these arguments will be passed to NuGet.exe verbatim.

    See also:

  • dotnet pack - Creates a NuGet package from a .net project using the dotnet pack command.

    dotnet pack

    Creates a NuGet package from a .net project using the dotnet pack command.

    Script usage:

    DotNet::Pack(
    	[Project: <text>],
    	[Configuration: <text>],
    	[PackageSource: <text>],
    	[Output: <text>],
    	[PackageID: <text>],
    	[PackageVersion: <text>],
    	[VersionSuffix: <text>],
    	[IncludeSymbols: <true/false>],
    	[IncludeSource: <true/false>],
    	[Verbosity: <integer>],
    	[ForceDependencyResolution: <true/false>],
    	[AdditionalArguments: <text>],
    	[EnsureDotNetInstalled: <text>],
    	[DotNetPath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Project path
    text
    Project
    This must be the path to either a project file, solution file, or a directory containing a project or solution file.
    Configuration
    text
    Configuration
    Package source
    text
    PackageSource
    If specified, this NuGet package source will be used to restore packages when building.
    Output directory
    text
    Output
    The output directory to place built packages in.
    Package ID
    text
    PackageID
    Value note: "not set".
    Package Version
    text
    PackageVersion
    Value note: "not set".
    Version suffix
    text
    VersionSuffix
    Value note: "not set (ignored if Package Version is set)".
    Include symbols
    true/false
    IncludeSymbols
    Include source
    true/false
    IncludeSource
    Verbosity
    integer
    Verbosity
    Default value is "Minimal".
    ForceDependencyResolution
    true/false
    ForceDependencyResolution
    Additional arguments
    text
    AdditionalArguments
    Ensure dotnet installed
    text
    EnsureDotNetInstalled
    This uses Microsoft's dotnet-install script to ensure that the specified version is installed. Values other than "auto" will be passed to the Channel parameter. The "auto" value will attempt to determine the SDK your project uses and ensure that it is installed. Value note: "not set (do not install)".
    dotnet path
    text
    DotNetPath
    Full path of dotnet.exe (or dotnet on Linux). This is usually C:\Program Files\dotnet\dotnet.exe on Windows. If no value is supplied, the operation will default to %PROGRAMFILES%\dotnet\dotnet.exe for Windows and dotnet (from the path) on Linux. Value note: "default".

    Note: This operation works on Windows and Linux as long as dotnet is installed.

  • Push NuGet Package - Publishes a NuGet package file to a NuGet package source.

    Push NuGet Package

    Publishes a NuGet package file to a NuGet package source.

    Script usage:

    NuGet::Push-Package(
    	FilePath: <text>,
    	[To: <text>],
    	[FeedUrl: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[ApiKey: <text>],
    	[NuGetExePath: <text>],
    	[PreferNuGetExe: <true/false>],
    	[AdditionalArguments: <text>],
    	[EnsureDotNetInstalled: <text>],
    	[DotNetPath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Package file name (default)
    text
    FilePath
    Value note: "example: myPackage-1.0.0.nupkg". This argument is required.
    Package source
    text
    To
    NuGet server URL
    text
    FeedUrl
    Not specifying will "Use server URL from package source".
    User name
    text
    UserName
    Not specifying will "Use user name from package source".
    Password
    text
    Password
    Not specifying will "Use password from package source".
    NuGet API Key
    text
    ApiKey
    Not specifying will "Use API Key from package source".
    NuGet.exe path
    text
    NuGetExePath
    Full path to NuGet.exe on the target server. When not set, the included nuget.exe will be used. This will only be used if dotnet is not available on a Windows server or PreferNuGetExe is set to true. Default value is "$NuGetExePath".
    Prefer NuGet.exe
    true/false
    PreferNuGetExe
    When true, NuGet.exe will be used when run on Windows if it is available, even if dotnet is also available.
    Additional arguments
    text
    AdditionalArguments
    Ensure dotnet installed
    text
    EnsureDotNetInstalled
    This uses Microsoft's dotnet-install script to ensure that the specified version is installed. Values other than "auto" will be passed to the Channel parameter. The "auto" value will attempt to determine the SDK your project uses and ensure that it is installed. Value note: "not set (do not install)".
    dotnet path
    text
    DotNetPath
    Full path of dotnet.exe (or dotnet on Linux). This is usually C:\Program Files\dotnet\dotnet.exe on Windows. If no value is supplied, the operation will default to %PROGRAMFILES%\dotnet\dotnet.exe for Windows and dotnet (from the path) on Linux. Value note: "default".
  • Restore NuGet Packages - Restores all packages in a specified solution, project, or packages.config file.

    Restore NuGet Packages

    Restores all packages in a specified solution, project, or packages.config file.

    Script usage:

    NuGet::Restore-Packages(
    	[Target: <text>],
    	[PackagesDirectory: <text>],
    	[Source: <text>],
    	[NuGetExePath: <text>],
    	[PreferNuGetExe: <true/false>],
    	[AdditionalArguments: <text>],
    	[EnsureDotNetInstalled: <text>],
    	[DotNetPath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Target
    text
    Target
    The target solution, project, or packages.config file used to restore packages, or directory containing a solution. Value note: "$WorkingDirectory".
    Packages directory
    text
    PackagesDirectory
    Value note: "default".
    Package source
    text
    Source
    If specified, this NuGet package source will be used to restore packages.
    NuGet.exe path
    text
    NuGetExePath
    Full path to NuGet.exe on the target server. When not set, the included nuget.exe will be used. This will only be used if dotnet is not available on a Windows server or PreferNuGetExe is set to true. Default value is "$NuGetExePath".
    Prefer NuGet.exe
    true/false
    PreferNuGetExe
    When true, NuGet.exe will be used when run on Windows if it is available, even if dotnet is also available.
    Additional arguments
    text
    AdditionalArguments
    Ensure dotnet installed
    text
    EnsureDotNetInstalled
    This uses Microsoft's dotnet-install script to ensure that the specified version is installed. Values other than "auto" will be passed to the Channel parameter. The "auto" value will attempt to determine the SDK your project uses and ensure that it is installed. Value note: "not set (do not install)".
    dotnet path
    text
    DotNetPath
    Full path of dotnet.exe (or dotnet on Linux). This is usually C:\Program Files\dotnet\dotnet.exe on Windows. If no value is supplied, the operation will default to %PROGRAMFILES%\dotnet\dotnet.exe for Windows and dotnet (from the path) on Linux. Value note: "default".

Otter

  • Remediate Drift - Checks configuration status and if drifted, triggers a remediation job in Otter.

    Remediate Drift

    Checks configuration status and if drifted, triggers a remediation job in Otter.

    Script usage:

    Otter::Remediate-Drift(
    	[Credentials: <text>],
    	[Server: <text>],
    	[Role: <text>],
    	[WaitForCompletion: <true/false>],
    	[Host: <text>],
    	[ApiKey: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Credentials
    text
    Credentials
    Server name
    text
    Server
    Role name
    text
    Role
    Wait until remediated
    true/false
    WaitForCompletion
    Default value is "True".
    Otter server URL
    text
    Host
    Not specifying will "Use URL from credentials".
    API key
    text
    ApiKey
    Not specifying will "Use API key from credentials".

    Note: Either a server name or role name is required, but not both. If both values are entered, role name will be ignored.

    Example:

    # triggers Otter to remediate drift for hdars web server roles
    Otter::Remediate-Drift
    (
        Credentials: ProductionOtter,
        Role: hdars-web-1k
    );
  • Set Variable Value in Otter - Creates or assigns a configuration variable in Otter.

    Set Variable Value in Otter

    Creates or assigns a configuration variable in Otter.

    Script usage:

    Otter::Set-Variable(
    	[Credentials: <text>],
    	Name: <text>,
    	Value: <text>,
    	[Server: <text>],
    	[Role: <text>],
    	[Environment: <text>],
    	[Sensitive: <true/false>],
    	[Host: <text>],
    	[ApiKey: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Credentials
    text
    Credentials
    Variable name
    text
    Name
    This argument is required.
    Value
    text
    Value
    This argument is required.
    Server name
    text
    Server
    Role name
    text
    Role
    Environment name
    text
    Environment
    Sensitive
    true/false
    Sensitive
    Otter server URL
    text
    Host
    Not specifying will "Use URL from credentials".
    API key
    text
    ApiKey
    Not specifying will "Use API key from credentials".

    Note: If multiple entity scopes are provided, the variable will be multi-scoped. If no entity scope is provided, a global variable will be set.

    Example:

    # sets the variable for the hdars-web-1k-tokyo server to the name of the current application
    Otter::Set-Variable
    (
        Credentials: ProductionOtter,
        Server: hdars-web-1k-tokyo,
        Name: LatestDeployedApplication,
        Value: $ApplicationName,
        Sensitive: false
    );

PowerShell

  • Ensure DSC Resource - Ensures the configuration of a specified PowerShell DSC Resource.

    Ensure DSC Resource

    Ensures the configuration of a specified PowerShell DSC Resource.

    Script usage:

    Ensure-DscResource(
    	[ConfigurationKey: <text>],
    	Name: <text>,
    	[Module: <text>],
    	[Properties: <%(key1: value1, ...)>]
    );
    
    

    This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Otter configuration key
    text
    ConfigurationKey
    The name of the DSC property which will be used as the Otter configuration key for the server. If this is not specified, the "Name" property is used. Default value is "Name".
    Resource
    text
    Name
    Value note: "ex: File". This argument is required.
    Module
    text
    Module
    Default value is "PSDesiredStateConfiguration".
    Properties
    %(key1: value1, ...)
    Properties
    DSC property hashtable as an OtterScript map. Example: %(DestinationPath: C:\hdars\1000.txt, Contents: test file ensured). Value note: "%(...)".

    Note: An argument may be explicitly converted to an integral type by prefixing the value with [type::<typeName>], where <typeName> is one of: int, uint, long, ulong, double, decimal. Normally this conversion is performed automatically and this is not necessary.

    See also:

    Example:

    # ensures the existence of a file on the server
    Ensure-DscResource(
      Name: File,
      ConfigurationKey: DestinationPath,
      Properties: %(
        DestinationPath: C:\hdars\1000.txt,
        Contents: test file ensured)
    );
    
    # runs a custom resource
    Ensure-DscResource(
      Name: cHdars,
      Module: cHdarsResource,
      ConfigurationKey: LocalServer,
      Properties: %(
        MaximumSessionLength: 1000,
        PortsToListen: @(3322,4431,1123),
        Enabled: true)
    );
  • Ensure PowerShell Module - Ensures that the specified PowerShell module is installed.

    Ensure PowerShell Module

    Ensures that the specified PowerShell module is installed.

    Script usage:

    Ensure-PsModule(
    	Module: <text>,
    	[Version: <text>],
    	[MinimumVersion: <text>],
    	[Force: <true/false>],
    	[Repository: <text>],
    	[Scope: <text>],
    	[Exists: <true/false>],
    	[AllowClobber: <true/false>],
    	[AllowPrerelease: <true/false>],
    	[AcceptLicense: <true/false>],
    	[AllVersions: <true/false>],
    	[Parameters: <%(key1: value1, ...)>],
    	[Verbose: <true/false>],
    	[DebugLogging: <true/false>]
    );
    
    

    This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Module
    text
    Module
    This argument is required.
    Version
    text
    Version
    Minimum Version
    text
    MinimumVersion
    Force
    true/false
    Force
    Use this to force installation to bypass the Untrusted Repository error or to force this version to install side-by-side with other versions that already exist. Default value is "False".
    Repository Name
    text
    Repository
    Scope
    text
    Scope
    Typically "Local" or "Global".
    Exists
    true/false
    Exists
    Default value is "True".
    Allow Clobber
    true/false
    AllowClobber
    Default value is "False".
    Allow Prerelease
    true/false
    AllowPrerelease
    Default value is "False".
    Accept License
    true/false
    AcceptLicense
    For PowerShell Core only!. Default value is "False".
    All Versions
    true/false
    AllVersions
    Default value is "False".
    Parameters
    %(key1: value1, ...)
    Parameters
    Additional parameters to pass to Install-Module. Example: %(DestinationPath: C:\hdars\1000.txt, Contents: test file ensured). Value note: "%(...)".
    Verbose
    true/false
    Verbose
    Default value is "False".
    Debug Logging
    true/false
    DebugLogging
    Default value is "False".

    Note: An argument may be explicitly converted to an integral type by prefixing the value with [type::<typeName>], where <typeName> is one of: int, uint, long, ulong, double, decimal. Normally this conversion is performed automatically and this is not necessary.

    Example:

    # ensures the existence of a module on the server
    Ensure-PsModule
    (
        Module: PackageManagement,
        MinimumVersion: 1.4.6,
        Repository: internal-powershell,
        Exists: true
    );
    
    # ensures the existence of a specific version of a module on the server
    Ensure-PsModule
    (
        Module: PackageManagement,
        Version: 1.4.6,
        Repository: internal-powershell,
        Force: true,
        Exists: true
    );
    
  • Ensure PowerShell Repository - Ensures that the specified PowerShell Repository is registered.

    Ensure PowerShell Repository

    Ensures that the specified PowerShell Repository is registered.

    Script usage:

    Ensure-PsRepository(
    	Name: <text>,
    	SourceLocation: <text>,
    	[InstallationPolicy: <text>],
    	[Exists: <true/false>],
    	[PackageManagementProvider: <text>],
    	[Parameters: <%(key1: value1, ...)>],
    	[Verbose: <true/false>],
    	[DebugLogging: <true/false>]
    );
    
    

    This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Name
    text
    Name
    This argument is required.
    Source Location
    text
    SourceLocation
    This argument is required.
    Installation Policy
    text
    InstallationPolicy
    Use "Trusted" or "Untrusted".
    Exists
    true/false
    Exists
    Default value is "True".
    Package Management Provider
    text
    PackageManagementProvider
    Parameters
    %(key1: value1, ...)
    Parameters
    Additional parameters to pass to Install-Module. Example: %(DestinationPath: C:\hdars\1000.txt, Contents: test file ensured). Value note: "%(...)".
    Verbose
    true/false
    Verbose
    Default value is "False".
    Debug Logging
    true/false
    DebugLogging
    Default value is "False".

    Note: An argument may be explicitly converted to an integral type by prefixing the value with [type::<typeName>], where <typeName> is one of: int, uint, long, ulong, double, decimal. Normally this conversion is performed automatically and this is not necessary.

    Example:

    # ensures the existence of a repository on the server
    Ensure-PsRepository(
      Name: internal-powershell,
      SourceLocation: https://proget/nuget/internal-powershell/,
      InstallationPolicy: Trusted
      Exists: true)
  • PSCall - Calls a PowerShell Script that is stored as an asset.

    PSCall

    Calls a PowerShell Script that is stored as an asset.

    Script usage:

    PSCall1 [DefaultArgument] (
    	[Arg1: Arg1Value],
    	[Arg2: Arg2Value],
    	[OutputArgument => $CustomVariable]
    );
    

    This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

    Note: An argument may be explicitly converted to an integral type by prefixing the value with [type::<typeName>], where <typeName> is one of: int, uint, long, ulong, double, decimal. Normally this conversion is performed automatically and this is not necessary.

    Example:

    # execute the hdars.ps1 script, passing Argument1 and Aaaaaarg2 as variables, and capturing the value of OutputArg as $MyVariable
    pscall hdars (
      Argument1: hello,
      Aaaaaarg2: World,
      OutputArg => $MyVariable
    );
    
  • PSCall2 - Calls a PowerShell Script that is stored as an asset.

    PSCall2

    Calls a PowerShell Script that is stored as an asset.

    Script usage:

    PSCall(
    	Name: <text>,
    	[Parameters: <%(key1: value1, ...)>],
    	[InputVariables: <%(key1: value1, ...)>],
    	[OutputVariables: <@(text)>],
    	[PreferWindowsPowerShell: <true/false>],
    	[ScriptText: <text>]
    );
    
    

    This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Name (default)
    text
    Name
    The name of the script asset. This argument is required.
    Parameters
    %(key1: value1, ...)
    Parameters
    InputVariables
    %(key1: value1, ...)
    InputVariables
    OutputVariables
    @(text)
    OutputVariables
    Prefer Windows PowerShell
    true/false
    PreferWindowsPowerShell
    When true, the script will be run using Windows PowerShell 5.1 where available. When false or on Linux (or on Windows systems without PowerShell 5.1 installed), the script will be run using PowerShell Core instead. Default value is "True".
    ScriptText
    text
    ScriptText

    Note: An argument may be explicitly converted to an integral type by prefixing the value with [type::<typeName>], where <typeName> is one of: int, uint, long, ulong, double, decimal. Normally this conversion is performed automatically and this is not necessary.

    Example:

    # execute the hdars.ps1 script, passing Argument1 and Aaaaaarg2 as input variables, and capturing the value of OutputArg as $OutputArg 
    PSCall2 hdars.ps1 (
      InputVariables: %(Argument1: hello, Aaaaaarg2: World),
      OutputVariables: @(MyOutputArg)
    );
    
  • PSDsc - Ensures the configuration of a specified PowerShell DSC Resource.

    PSDsc

    Ensures the configuration of a specified PowerShell DSC Resource.

    Script usage:

    PSDsc(
    	[ConfigurationKey: <text>],
    	Name: <text>,
    	[Module: <text>],
    	[Properties: <%(key1: value1, ...)>]
    );
    
    

    This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Otter configuration key
    text
    ConfigurationKey
    The name of the DSC property which will be used as the Otter configuration key for the server. If this is not specified, the "Name" property is used. Default value is "Name".
    Resource
    text
    Name
    Value note: "ex: File". This argument is required.
    Module
    text
    Module
    Default value is "PSDesiredStateConfiguration".
    Properties
    %(key1: value1, ...)
    Properties
    DSC property hashtable as an OtterScript map. Example: %(DestinationPath: C:\hdars\1000.txt, Contents: test file ensured). Value note: "%(...)".

    Note: This is a shorthand version of the Ensure-DscResource operation.

    Default Argument: ResourceName: The default argument for this operation is the DSC Resource Name and should follow the format: "ModuleName::ResourceName". If "ModuleName::" is omitted, the PSDesiredStateConfiguration module will be used.

    Configuration Key: Otter Specific: By default, Otter will use the Name property of the DSC Resource as the configuration key. If there is no Name property or you would like to override the default configuration key name, specify a property named "Otter_ConfigurationKey" with the value containing a string (or list of strings) indicating the name of the property (or properties) to be used as the unique configuration key.

    Note: An argument may be explicitly converted to an integral type by prefixing the value with [type::<typeName>], where <typeName> is one of: int, uint, long, ulong, double, decimal. Normally this conversion is performed automatically and this is not necessary.

    Example:

    # ensures the existence of a file on the server
    PSDsc File (
      Otter_ConfigurationKey: DestinationPath,
      DestinationPath: C:\hdars\1000.txt,
      Contents: test file ensured
    );
    
    # runs a custom resource
    PSDsc cHdarsResource::cHdars (
      Otter_ConfigurationKey: LocalServer,
      MaximumSessionLength: 1000,
      PortsToListen: @(3322,4431,1123),
      Enabled: true
    );
  • PSEnsure - Calls a PowerShell Ensure Script that is stored as an asset.

    PSEnsure

    Calls a PowerShell Ensure Script that is stored as an asset.

    Script usage:

    PSEnsure1 [DefaultArgument] (
    	[Arg1: Arg1Value],
    	[Arg2: Arg2Value],
    	[OutputArgument => $CustomVariable]
    );
    

    This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

    Example:

    # execute the hdars.ps1 ensure script, passing Argument1 and Aaaaaarg2 as variables, and capturing the value of OutputArg as $MyVariable
    PSEnsure hdars (
      Argument1: hello,
      Aaaaaarg2: World,
      OutputArg => $MyVariable
    );
    
  • PSEnsure using Scripts - Uses two PowerShell scripts to Collect, and then Ensure a configuration about a server.

    PSEnsure using Scripts

    Uses two PowerShell scripts to Collect, and then Ensure a configuration about a server.

    Script usage:

    PSEnsureScripts(
    	Key: <text>,
    	Value: <text>,
    	[Collect: <text>],
    	[Configure: <text>],
    	[CollectScript: <text>],
    	[ConfigureScript: <text>],
    	[UseExitCode: <true/false>],
    	[Debug: <true/false>],
    	[Verbose: <true/false>],
    	[CollectScriptParams: <%(key1: value1, ...)>],
    	[ConfigureScriptParams: <%(key1: value1, ...)>]
    );
    
    

    This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Configuration key
    text
    Key
    This argument is required.
    Expected value
    text
    Value
    This argument is required.
    Collection script
    text
    Collect
    The output of this PowerShell script will be used to collect the current configuration of the server. Variables are not expanded within the contents of this property.
    Configure script
    text
    Configure
    This PowerShell script is executed if the configuration gathered using the collection script does not match the stored configuration. Variables are not expanded within the contents of this property.
    Collection script asset
    text
    CollectScript
    The name of a PowerShell script asset to use for collection. The output of this PowerShell script will be used to collect the current configuration of the server.
    Configuration script asset
    text
    ConfigureScript
    The name of a PowerShell script asset to use for configuration. This script is executed if the configuration gathered using the collection script does not match the stored configuration.
    Use exit code
    true/false
    UseExitCode
    When set, the exit/return code of the script will be used instead of the output stream for collection.
    Debug
    true/false
    Debug
    Captures the PowerShell Write-Debug stream into Otter's execution debug log.
    Verbose
    true/false
    Verbose
    Captures the PowerShell Write-Verbose stream into Otter's execution debug log.
    Collection script parameters
    %(key1: value1, ...)
    CollectScriptParams
    Map containing named arguments to pass to the PowerShell collect script.
    Configure script parameters
    %(key1: value1, ...)
    ConfigureScriptParams
    Map containing named arguments to pass to the PowerShell configure script.

    Note: The Key is a unique string per server, and having multiple operations attempt to use the same key will yield in unpredictable behavior.

    Example:

    # ensures the BuildMaster Agent service exists on the remote server
    PSEnsure(
        Key: BuildMasterAgentInstalled,
        # returns the count of INEDOBMAGT services installed
        Collect: @(Get-Service | Where-Object {$_.Name -eq "INEDOBMAGT"}).Count,
        # expected value is 1
        Value: 1,
        # if the returned value is 0 instead of 1, the installer will run
        Configure: & '\\filesrv1000\$e\Resources\BuildMasterAgentSetup.exe' /S /AgentType=TCP /Port=8080,
        Debug: true,
        Verbose: true
    );
    
    # ensures the BuildMaster Agent service exists on the remote server, using a
    # PowerShell script asset to perform the configuration
    PSEnsure(
        Key: BuildMasterAgentInstalled,
        # returns the count of INEDOBMAGT services installed
        Collect: @(Get-Service | Where-Object {$_.Name -eq "INEDOBMAGT"}).Count,
        # expected value is 1
        Value: 1,
        # use script stored in InstallBmAgent asset
        ConfigureScript: InstallBmAgent,
        ConfigureScriptParams: %(
            AgentType: TCP,
            Port: 1000),
        Debug: true,
        Verbose: true
    );
    
  • PSEnsure2 - Calls a PowerShell Ensure Script that is stored as an asset.

    PSEnsure2

    Calls a PowerShell Ensure Script that is stored as an asset.

    Script usage:

    PSEnsure(
    	Name: <text>,
    	[Parameters: <%(key1: value1, ...)>],
    	[InputVariables: <%(key1: value1, ...)>],
    	[OutputVariables: <@(text)>],
    	[PreferWindowsPowerShell: <true/false>],
    	[ScriptText: <text>]
    );
    
    

    This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Name (default)
    text
    Name
    The name of the script asset. This argument is required.
    Parameters
    %(key1: value1, ...)
    Parameters
    InputVariables
    %(key1: value1, ...)
    InputVariables
    OutputVariables
    @(text)
    OutputVariables
    Prefer Windows PowerShell
    true/false
    PreferWindowsPowerShell
    When true, the script will be run using Windows PowerShell 5.1 where available. When false or on Linux (or on Windows systems without PowerShell 5.1 installed), the script will be run using PowerShell Core instead. Default value is "True".
    ScriptText
    text
    ScriptText

    Example:

    # execute the EnsureLocalAdmin.ps1 ensure script
    PSEnsure EnsureLocalAdmin.ps1
    (
      Parameters: %(User: $PSCredential(defaultAdminAccount), Enabled: false)
    );
    
  • PSExec - Executes a specified PowerShell script.

    PSExec

    Executes a specified PowerShell script.

    Script usage:

    Execute-PowerShell(
    	Text: <text>,
    	[Debug: <true/false>],
    	[Verbose: <true/false>],
    	[RunOnSimulation: <true/false>],
    	[Isolated: <true/false>],
    	[SuccessExitCode: <text>],
    	[PreferWindowsPowerShell: <true/false>]
    );
    
    

    This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Script contents (default)
    text
    Text
    The PowerShell script text. Variables are not expanded within the contents of this property. This argument is required.
    Capture debug
    true/false
    Debug
    Captures the PowerShell Write-Debug stream into the Otter debug log. The default is false.
    Capture verbose
    true/false
    Verbose
    Captures the PowerShell Write-Verbose stream into the Otter debug log. The default is false.
    Run on simulation
    true/false
    RunOnSimulation
    Indicates whether the script will execute in simulation mode. The default is false.
    Isolated
    true/false
    Isolated
    When true, the script is run in a temporary AppDomain that is unloaded when the script completes. This is an experimental feature and may decrease performance, but may be useful if a script loads assemblies or other resources that would otherwise be leaked.
    Success exit code
    text
    SuccessExitCode
    Integer exit code which indicates no error. The default is empty, treating all exit codes as success. This can also be an integer prefixed with an inequality operator.
    Prefer Windows PowerShell
    true/false
    PreferWindowsPowerShell
    When true, the script will be run using Windows PowerShell 5.1 where available. When false or on Linux (or on Windows systems without PowerShell 5.1 installed), the script will be run using PowerShell Core instead. Default value is "True".

    Note: This operation will inject PowerShell variables from the execution engine runtime that match PowerShell variable expressions. This means you won't get an error if you use an undeclared variable in your script, but some expressions that PowerShell interoplates at runtime (such as a variable inside of a string), cannot be replaced by the operation.

    Note: If you are attempting to write the results of a Format-* call to the log, you may see messages similar to "Microsoft.PowerShell.Commands.Internal.Format.FormatEntryData". To convert this to text, use the Out-String commandlet at the end of your command chain.

    Note: This script will execute in simulation mode; you set the RunOnSimulation parameter to false to prevent this behavior, or you can use the $IsSimulation variable function within the script.

    Example:

    # writes the list of services running on the computer to the Otter log
    psexec >>
        Get-Service | Where-Object {$_.Status -eq "Running"} | Format-Table Name, DisplayName | Out-String
    >>;
    
    # delete all but the latest 3 logs in the log directory, and log any debug/verbose messages to the Otter log
    psexec >>
        Get-ChildItem "E:\Site\Logs" | Sort-Object $.CreatedDate -descending | Select-Object -skip 3 | Remove-Item
    >> (Verbose: true, Debug: true, RunOnSimulation: false);
    
  • PSVerify - Uses a PowerShell script to collect configuration about a server.

    PSVerify

    Uses a PowerShell script to collect configuration about a server.

    Script usage:

    PSVerify1 [DefaultArgument] (
    	[Arg1: Arg1Value],
    	[Arg2: Arg2Value],
    	[OutputArgument => $CustomVariable]
    );
    

    This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

  • PSVerify2 - Uses a PowerShell script to collect configuration about a server.

    PSVerify2

    Uses a PowerShell script to collect configuration about a server.

    Script usage:

    PSVerify(
    	Name: <text>,
    	[Parameters: <%(key1: value1, ...)>],
    	[InputVariables: <%(key1: value1, ...)>],
    	[OutputVariables: <@(text)>],
    	[PreferWindowsPowerShell: <true/false>],
    	[ScriptText: <text>]
    );
    
    

    This operation may be prefixed with PowerShell::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Name (default)
    text
    Name
    The name of the script asset. This argument is required.
    Parameters
    %(key1: value1, ...)
    Parameters
    InputVariables
    %(key1: value1, ...)
    InputVariables
    OutputVariables
    @(text)
    OutputVariables
    Prefer Windows PowerShell
    true/false
    PreferWindowsPowerShell
    When true, the script will be run using Windows PowerShell 5.1 where available. When false or on Linux (or on Windows systems without PowerShell 5.1 installed), the script will be run using PowerShell Core instead. Default value is "True".
    ScriptText
    text
    ScriptText

ProGet

  • Archive ProGet Project Release - Archives a project release in ProGet, so that it doesn't show up as an active release.

    Archive ProGet Project Release

    Archives a project release in ProGet, so that it doesn't show up as an active release.

    Script usage:

    ProGet::Archive-ProjectRelease(
    	[ProjectName: <text>],
    	[Release: <text>],
    	[To: <text>],
    	[ProGetUrl: <text>],
    	[ApiKey: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Project name
    text
    ProjectName
    Default value is "$ApplicationName".
    Release number
    text
    Release
    Value note: "default ($ReleaseNumber.$BuildNumber or $BuildNumber)".
    ProGet connection
    text
    To
    Value note: "default".
    ProGet base URL
    text
    ProGetUrl
    Not specifying will "Use URL from ProGet connection".
    API key
    text
    ApiKey
    Not specifying will "Use token from ProGet connection".
  • Create Universal Package - Creates a universal package from the specified directory and publishes to a feed.

    Create Universal Package

    Creates a universal package from the specified directory and publishes to a feed.

    Script usage:

    ProGet::Create-Package(
    	Name: <text>,
    	Version: <text>,
    	[From: <text>],
    	[PushTo: <text>],
    	[To: <text>],
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	[Metadata: <%(key1: value1, ...)>],
    	[Overwrite: <true/false>],
    	[Feed: <text>],
    	[EndpointUrl: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[ApiKey: <text>],
    	[Group: <text>],
    	[FeedUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Package name
    text
    Name
    This argument is required.
    Package version
    text
    Version
    This argument is required.
    Source directory
    text
    From
    Value note: "$WorkingDirectory".
    To package source
    text
    PushTo
    Package file name
    text
    To
    This may either be a file name or a directory. If the value ends with .upack, then this is treated as a file name. Otherwise, it is treated as an output directory into which the package file will be written. Value note: "<Name>-<Version>.upack".
    Include files
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. Value note: "** (all items in directory)".
    Exclude files
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax. Value note: "include all files".
    Additional metadata
    %(key1: value1, ...)
    Metadata
    Additional properties may be specified using map syntax. For example: %(description: my package description).
    Overwrite existing package
    true/false
    Overwrite
    Feed name
    text
    Feed
    Not specifying will "Use Feed from package source".
    API endpoint URL
    text
    EndpointUrl
    Not specifying will "Use URL from package source".
    ProGet user name
    text
    UserName
    The name of a user in ProGet that can access this feed. Not specifying will "Use user name from package source".
    ProGet password
    text
    Password
    The password of a user in ProGet that can access this feed. Not specifying will "Use password from package source".
    ProGet API Key
    text
    ApiKey
    An API Key that can access this feed. Not specifying will "Use API Key from package source".
    Group
    text
    Group
    FeedUrl
    text
    FeedUrl

    Example:

    ProGet::Create-Package
    (
        Name: MyAppPackage,
        Version: 3.4.2,
    
        From: $WorkingDirectory,
        PushTo: MyPackageSource
    );
    
  • Delete ProGet Project Release - Deletes a project release in ProGet

    Delete ProGet Project Release

    Deletes a project release in ProGet

    Script usage:

    ProGet::Delete-ProjectRelease(
    	[ProjectName: <text>],
    	[Release: <text>],
    	[To: <text>],
    	[ProGetUrl: <text>],
    	[ApiKey: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Project name
    text
    ProjectName
    Default value is "$ApplicationName".
    Release number
    text
    Release
    Value note: "default ($ReleaseNumber.$BuildNumber or $BuildNumber)".
    ProGet connection
    text
    To
    Value note: "default".
    ProGet base URL
    text
    ProGetUrl
    Not specifying will "Use URL from ProGet connection".
    API key
    text
    ApiKey
    Not specifying will "Use token from ProGet connection".
  • Ensure Universal Package Installed - Ensures that the specified universal package is installed in the specified directory.

    Ensure Universal Package Installed

    Ensures that the specified universal package is installed in the specified directory.

    Script usage:

    ProGet::Ensure-Package(
    	[PackageSource: <text>],
    	Name: <text>,
    	[Version: <text>],
    	[To: <text>],
    	[Exists: <true/false>],
    	[LocalRegistry: <integer>],
    	[LocalCache: <true/false>],
    	[FileCompare: <integer>],
    	[Ignore: <@(text)>],
    	[DirectDownload: <true/false>],
    	[Feed: <text>],
    	[EndpointUrl: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[ApiKey: <text>],
    	[DeleteExtra: <true/false>],
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	[FeedUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Package source
    text
    PackageSource
    Package name
    text
    Name
    This argument is required.
    Package version
    text
    Version
    Default value is "latest".
    Target directory
    text
    To
    The directory path on disk of the package contents. Default value is "$WorkingDirectory".
    Exists
    true/false
    Exists
    Default value is "True".
    Use Local Registry
    integer
    LocalRegistry
    Default value is "Machine".
    LocalCache
    true/false
    LocalCache
    Cache Package. Default value is "False".
    Compare files
    integer
    FileCompare
    Default value is "FileSize".
    Ignore
    @(text)
    Ignore
    See KB#1119 to learn more about masking syntax. Value note: "compare all files".
    Direct download
    true/false
    DirectDownload
    Set this to value to false if your remote server doesn't have direct access to the ProGet feed. Default value is "True".
    Feed name
    text
    Feed
    Not specifying will "Use Feed from package source".
    API endpoint URL
    text
    EndpointUrl
    Not specifying will "Use URL from package source".
    ProGet user name
    text
    UserName
    The name of a user in ProGet that can access this feed. Not specifying will "Use user name from package source".
    ProGet password
    text
    Password
    The password of a user in ProGet that can access this feed. Not specifying will "Use password from package source".
    ProGet API Key
    text
    ApiKey
    An API Key that can access this feed. Not specifying will "Use API Key from package source".
    DeleteExtra
    true/false
    DeleteExtra
    Include
    @(text)
    Include
    Exclude
    @(text)
    Exclude
    FeedUrl
    text
    FeedUrl

    Note: To determine if a package is installed, the local package registry and package files are both checked. You can control these with LocalRegistry and FileCompare options.

    Example:

    #Ensure that FooBarApp is Installed
    ProGet::Ensure-Package
    (
        From: MyPackageSource,
        Name: FooBarApp,
        Version: $FooBarVersion,
        To: D:\WebApps\FooBar.App,
        Ignore: web.config
    );
  • Install Universal Package - Installs a universal package to the specified location using a Package Source.

    Install Universal Package

    Installs a universal package to the specified location using a Package Source.

    Script usage:

    ProGet::Install-Package(
    	[PackageSource: <text>],
    	Name: <text>,
    	[Version: <text>],
    	[To: <text>],
    	[LocalRegistry: <integer>],
    	[LocalCache: <true/false>],
    	[DirectDownload: <true/false>],
    	[Feed: <text>],
    	[EndpointUrl: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[ApiKey: <text>],
    	[FeedUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Package source
    text
    PackageSource
    Value note: "Infer from package name".
    Package name
    text
    Name
    This argument is required.
    Package version
    text
    Version
    Default value is "latest".
    Target directory
    text
    To
    Value note: "$WorkingDirectory".
    Use Local Registry
    integer
    LocalRegistry
    Default value is "Machine".
    LocalCache
    true/false
    LocalCache
    Cache Package. Default value is "False".
    Direct download
    true/false
    DirectDownload
    Set this to value to false if your remote server doesn't have direct access to the ProGet feed. Default value is "True".
    Feed name
    text
    Feed
    Not specifying will "Use Feed from package source".
    API endpoint URL
    text
    EndpointUrl
    Not specifying will "Use URL from package source".
    ProGet user name
    text
    UserName
    The name of a user in ProGet that can access this feed. Not specifying will "Use user name from package source".
    ProGet password
    text
    Password
    The password of a user in ProGet that can access this feed. Not specifying will "Use password from package source".
    ProGet API Key
    text
    ApiKey
    An API Key that can access this feed. Not specifying will "Use API Key from package source".
    FeedUrl
    text
    FeedUrl

    Example:

    ProGet::Install-Package
    (
        From: MyPackageSource,
        Name: MyAppPackage,
        Version: 3.4.2,
        To: C:\MyApps\MyApp
    );
    
  • Promote Package - Promotes a package from one feed to another in a ProGet instance.

    Promote Package

    Promotes a package from one feed to another in a ProGet instance.

    Script usage:

    ProGet::Promote(
    	[PackageSource: <text>],
    	Name: <text>,
    	Version: <text>,
    	[ToFeed: <text>],
    	[Reason: <text>],
    	[To: <text>],
    	[Feed: <text>],
    	[EndpointUrl: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[ApiKey: <text>],
    	[Group: <text>],
    	[FeedUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Package source
    text
    PackageSource
    Package name
    text
    Name
    This argument is required.
    Package version
    text
    Version
    Default value is "latest". This argument is required.
    Promote to Feed
    text
    ToFeed
    Value note: "required if not set in Connection/Identity".
    Reason
    text
    Reason
    Value note: "Unspecified".
    To source
    text
    To
    Value note: "Same as From package source".
    Feed name
    text
    Feed
    Not specifying will "Use Feed from package source".
    API endpoint URL
    text
    EndpointUrl
    Not specifying will "Use URL from package source".
    ProGet user name
    text
    UserName
    The name of a user in ProGet that can access this feed. Not specifying will "Use user name from package source".
    ProGet password
    text
    Password
    The password of a user in ProGet that can access this feed. Not specifying will "Use password from package source".
    ProGet API Key
    text
    ApiKey
    An API Key that can access this feed. Not specifying will "Use API Key from package source".
    Group
    text
    Group
    FeedUrl
    text
    FeedUrl
  • Publish Project Dependencies - Scans for NuGet, npm, or PyPI package dependencies of a project and sends information about them to a ProGet instance.

    Publish Project Dependencies

    Scans for NuGet, npm, or PyPI package dependencies of a project and sends information about them to a ProGet instance.

    Script usage:

    ProGet::Scan(
    	Project: <text>,
    	[To: <text>],
    	[ProGetUrl: <text>],
    	[ApiKey: <text>],
    	[ProjectName: <text>],
    	[Release: <text>],
    	[ProjectType: <text>],
    	[ScanType: <integer>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Project path
    text
    Project
    e.g. src/MyProject.csproj". This argument is required.
    ProGet connection
    text
    To
    Value note: "default".
    ProGet base URL
    text
    ProGetUrl
    Not specifying will "Use URL from ProGet connection".
    API key
    text
    ApiKey
    Not specifying will "Use token from ProGet connection".
    Project name
    text
    ProjectName
    Value note: "$ApplicationName".
    Release number
    text
    Release
    Value note: "default ($ReleaseNumber.$BuildNumber or $BuildNumber)".
    Project type
    text
    ProjectType
    Value note: "application".
    Scan type
    integer
    ScanType
    Default value is "Auto".

    Example:

    # Publish NuGet dependencies for MyProject.csproj in the Libraries feed of the LocalProGet instance
    ProGet::Scan
    (
        Project: src/MyProject.csproj
    );
  • Push Universal Package File - Uploads a universal package file to a package source.

    Push Universal Package File

    Uploads a universal package file to a package source.

    Script usage:

    ProGet::Push-PackageFile(
    	FilePath: <text>,
    	[To: <text>],
    	[Feed: <text>],
    	[EndpointUrl: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[ApiKey: <text>],
    	[FeedUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Package file path (default)
    text
    FilePath
    This argument is required.
    Package source
    text
    To
    Feed name
    text
    Feed
    Not specifying will "Use Feed from package source".
    API endpoint URL
    text
    EndpointUrl
    Not specifying will "Use URL from package source".
    ProGet user name
    text
    UserName
    The name of a user in ProGet that can access this feed. Not specifying will "Use user name from package source".
    ProGet password
    text
    Password
    The password of a user in ProGet that can access this feed. Not specifying will "Use password from package source".
    ProGet API Key
    text
    ApiKey
    An API Key that can access this feed. Not specifying will "Use API Key from package source".
    FeedUrl
    text
    FeedUrl

    Example:

    # Uploads the MyPackage.1.0.0.upack file to the InternalFeed package source
    ProGet::Push-PackageFile MyPackage.1.0.0.upack
    (
        PackageSource: InternalFeed
    );
  • Repackage - Connects to ProGet to repackage an unstable (pre-release) package into a new package with the same contents.

    Repackage

    Connects to ProGet to repackage an unstable (pre-release) package into a new package with the same contents.

    Script usage:

    ProGet::Repackage(
    	[PackageSource: <text>],
    	Name: <text>,
    	[Version: <text>],
    	NewVersion: <text>,
    	[Reason: <text>],
    	[ToFeed: <text>],
    	[Feed: <text>],
    	[EndpointUrl: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[ApiKey: <text>],
    	[Group: <text>],
    	[FeedUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Package source
    text
    PackageSource
    Package name
    text
    Name
    This argument is required.
    Package version
    text
    Version
    Value note: ""attached" (BuildMaster only; otherwise required)".
    New version
    text
    NewVersion
    This argument is required.
    Reason
    text
    Reason
    Value note: "Unspecified".
    To feed
    text
    ToFeed
    Value note: "keep in same feed".
    Feed name
    text
    Feed
    Not specifying will "Use Feed from package source".
    API endpoint URL
    text
    EndpointUrl
    Not specifying will "Use URL from package source".
    ProGet user name
    text
    UserName
    The name of a user in ProGet that can access this feed. Not specifying will "Use user name from package source".
    ProGet password
    text
    Password
    The password of a user in ProGet that can access this feed. Not specifying will "Use password from package source".
    ProGet API Key
    text
    ApiKey
    An API Key that can access this feed. Not specifying will "Use API Key from package source".
    Group
    text
    Group
    FeedUrl
    text
    FeedUrl

Python

  • Install Pip Packages - Installs packages using pip.

    Install Pip Packages

    Installs packages using pip.

    Script usage:

    Pip::Install-Packages(
    	[InstallFromRequirements: <true/false>],
    	[Source: <text>],
    	[AdditionalArguments: <text>],
    	[PythonPath: <text>],
    	[VirtualEnv: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Install from requirements.txt
    true/false
    InstallFromRequirements
    Install a list of requirements specified in the default requirements file (requirements.txt) by passing the "-r requirements.txt" argument to the commandline. Default value is "True".
    Package source
    text
    Source
    If specified, this PyPI package index will be used to install packages from.
    Additional arguments
    text
    AdditionalArguments
    Python path
    text
    PythonPath
    Full path to python/python.exe on the target server. Default value is "$PythonPath".
    VirtualEnv
    text
    VirtualEnv
    Default value is "$PythonVirtualEnv".
  • PYVerify - Uses a Python script to collect configuration about a server.

    PYVerify

    Uses a Python script to collect configuration about a server.

    Script usage:

    PYVerify(
    	Name: <text>,
    	[Parameters: <%(key1: value1, ...)>],
    	[Verbose: <true/false>],
    	[SuccessExitCode: <text>],
    	[PythonPath: <text>],
    	[CaptureDebug: <true/false>],
    	[InputVariables: <%(key1: value1, ...)>],
    	[OutputVariables: <@(text)>],
    	[Arguments: <text>],
    	[EnvironmentVariables: <%(key1: value1, ...)>]
    );
    
    

    This operation may be prefixed with Python::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Name (default)
    text
    Name
    The name of the script asset. This argument is required.
    Parameters
    %(key1: value1, ...)
    Parameters
    Verbose
    true/false
    Verbose
    When true, additional information about staging the script is written to the debug log.
    Success exit code
    text
    SuccessExitCode
    Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
    Python path
    text
    PythonPath
    Full path to python/python.exe on the target server. Default value is "$PythonPath".
    Capture debug messages
    true/false
    CaptureDebug
    InputVariables
    %(key1: value1, ...)
    InputVariables
    OutputVariables
    @(text)
    OutputVariables
    Command line arguments
    text
    Arguments
    Environment variables
    %(key1: value1, ...)
    EnvironmentVariables

Registry

  • Ensure Registry Key - Ensures that a registry key exists or does not exist.

    Ensure Registry Key

    Ensures that a registry key exists or does not exist.

    Script usage:

    Windows::Ensure-RegistryKey(
    	[Exists: <true/false>],
    	[DefaultValue: <text>],
    	Hive: <integer>,
    	Key: <text>
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Exists
    true/false
    Exists
    Default value is "True".
    Default value
    text
    DefaultValue
    A key's default value is the legacy unnamed value that every registry key may have. This is rarely used.
    Hive
    integer
    Hive
    This argument is required.
    Key
    text
    Key
    This argument is required.

    Example:

    Windows::Ensure-RegistryKey
    (
        Hive: LocalMachine,
        Key: SOFTWARE\Inedo\BuildMaster
    );
  • Ensure Registry Value - Ensures that a registry value exists or does not exist on a specified key.

    Ensure Registry Value

    Ensures that a registry value exists or does not exist on a specified key.

    Script usage:

    Windows::Ensure-RegistryValue(
    	Name: <text>,
    	[Value: <@(text)>],
    	[Kind: <integer>],
    	[Exists: <true/false>],
    	Hive: <integer>,
    	Key: <text>
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Value name
    text
    Name
    This argument is required.
    Value
    @(text)
    Value
    Value kind
    integer
    Kind
    Default value is "String".
    Exists
    true/false
    Exists
    Default value is "True".
    Hive
    integer
    Hive
    This argument is required.
    Key
    text
    Key
    This argument is required.

    Example:

    Windows::Ensure-RegistryValue
    (
        Name: ServicePath,
        Value: C:\BuildMaster\Service,
        Hive: LocalMachine,
        Key: SOFTWARE\Inedo\BuildMaster
    );
  • Get Registry Value - Reads a value from the Windows registry and stores it in a variable.

    Get Registry Value

    Reads a value from the Windows registry and stores it in a variable.

    Script usage:

    Windows::Get-RegistryValue(
    	Hive: <integer>,
    	Key: <text>,
    	Name: <text>,
    	[Value: <RuntimeValue>],
    	[FailIfNotFound: <true/false>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Hive
    integer
    Hive
    This argument is required.
    Key
    text
    Key
    This argument is required.
    Value name
    text
    Name
    This argument is required.
    Store to variable
    RuntimeValue
    Value
    Fail if value not found
    true/false
    FailIfNotFound

    Example:

    Windows::Get-RegistryValue
    (
        Hive: LocalMachine,
        Key: SOFTWARE\7-Zip,
        Name: Path,
        Value => $PathTo7Zip
    );

Servers

  • Acquire Server - Acquires a server from a resource pool defined by a server role. This operation is affected by execution priority.

    Acquire Server

    Acquires a server from a resource pool defined by a server role. This operation is affected by execution priority.

    Script usage:

    Acquire-Server(
    	[Role: <text>],
    	[ServerName: <text>],
    	[Verbose: <true/false>],
    	[DoNotShare: <true/false>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Server role
    text
    Role
    A server role that defines the list of servers to be used as the source of the pool.
    Server name output
    text
    ServerName
    Default value is "$AcquiredServerName".
    Log verbose
    true/false
    Verbose
    Do not share
    true/false
    DoNotShare
    Do not share this server between multiple AcquireServerOperation uses in this execution. This means that you must call Release Server in order to acquire the same server before the execution finishes.

    Example:

    # acquires a server associated with the build-servers role
    Acquire-Server( 
       Role: build-servers,
       ServerName => $AcquiredServerName
    );
    
    for server $AcquiredServerName
    {
        Log-Information Acquired server: $ServerName;
    }
    
  • Release Server - Releases a server from a resource pool if acquired previously in the execution.

    Release Server

    Releases a server from a resource pool if acquired previously in the execution.

    Script usage:

    Release-Server(
    	Server: <text>,
    	[Role: <text>],
    	[Verbose: <true/false>]
    );
    
    

    This operation may be prefixed with Core::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Server name (default)
    text
    Server
    This argument is required.
    Server role
    text
    Role
    Value note: "global".
    Log verbose
    true/false
    Verbose

    Example:

    # releases a server acquired earlier
    Acquire-Server( 
       Role: build-servers,
       ServerName => $AcquiredServerName
    );
    
    # ...
    
    Release-Server( 
       Role: build-servers,
       Server: $AcquiredServerName
    );
    
  • Restart Server - Restarts a server and waits for it to become available again.

    Restart Server

    Restarts a server and waits for it to become available again.

    Script usage:

    Restart-Server(
    	[After: <integer>],
    	[MinimumDelay: <integer>]
    );
    
    

    This operation may be prefixed with BuildMaster::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Restart after
    integer
    After
    Value note: "default (immediately)".
    Minimum reconnect wait
    integer
    MinimumDelay
    Value note: "default (15 seconds)".

    Note: The After and MinimumDelay properties are advanced options, and determine how many seconds to wait before the operating system shutdown is initiated (default and minimum value is 5), and how many seconds to wait until attempting to reconnect to the agent (default and minimum value is 15). These generally should be kept at defaults, unless the server takes an extraordinary time to shutdown.

    Note: If the server is used by another operation before this operation completes, then the results are undefined.

    Example:

        # restart the current server after 10 seconds
        Restart-Server(
            After: 10
        );

Services

  • Ensure Service - Ensures the configuration of a Windows service on a server.

    Ensure Service

    Ensures the configuration of a Windows service on a server.

    Script usage:

    Ensure-Service(
    	Name: <text>,
    	[DisplayName: <text>],
    	[Description: <text>],
    	[Status: <integer>],
    	[Exists: <true/false>],
    	Path: <text>,
    	[Startup: <integer>],
    	[DelayedStart: <true/false>],
    	[Credentials: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[FirstFailure: <integer>],
    	[SecondFailure: <integer>],
    	[SubsequentFailures: <integer>],
    	[RestartDelay: <integer>],
    	[OnFailureProgramPath: <text>],
    	[RebootMessage: <text>],
    	[Dependencies: <@(text)>],
    	[StatusChangeTimeout: <TimeSpan>]
    );
    
    

    This operation may be prefixed with Windows::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Name
    text
    Name
    This argument is required.
    Display name
    text
    DisplayName
    Description
    text
    Description
    Status
    integer
    Status
    Exists
    true/false
    Exists
    Default value is "True".
    Path w/ arguments
    text
    Path
    The executable path of the service. This field may include any arguments that will be supplied to the executable. Executable paths that include spaces should be wrapped with double-quotes, e.g.: "C:\Program Files\Hdars\Hdars.Service.exe" -arg1 -arg2. This argument is required.
    Startup
    integer
    Startup
    Startup type.
    DelayedStart
    true/false
    DelayedStart
    Delayed start.
    Credentials
    text
    Credentials
    The credential name to use as the service's Log On user. If a credential name is specified, the username and password fields will be ignored.
    User name
    text
    UserName
    The user account name to run the service as. If this value is not supplied, NT AUTHORITY\LocalSystem will be assumed.
    Password
    text
    Password
    The password for the account that runs the service. If NT AUTHORITY\LocalSystem is specified, this field must not have a value set.
    First failure
    integer
    FirstFailure
    Second failure
    integer
    SecondFailure
    Subsequent failures
    integer
    SubsequentFailures
    Restart delay
    integer
    RestartDelay
    Run program
    text
    OnFailureProgramPath
    Reboot message
    text
    RebootMessage
    Dependencies
    @(text)
    Dependencies
    Status change timeout
    TimeSpan
    StatusChangeTimeout
    The number of seconds to wait for a server to change between two statuses (e.g. stopped to starting) before raising an error. Default value is "30".

    Example:

    # ensures the HdarsSvc is present on the server using the HdarsSvc credentials in Otter
    Windows::Ensure-Service
    (
        Name: HdarsSvc,
        DisplayName: HDARS Console Log Service,
        Status: Running,
        Path: E:\Services\Hdars.Service.exe,
        Startup: Auto,
        Credentials: HdarsSvc,
        FirstFailure: Restart
    );
    
  • Start Windows Service - Starts an existing Windows service.

    Start Windows Service

    Starts an existing Windows service.

    Script usage:

    Windows::Start-Service(
    	Name: <text>,
    	[WaitForRunningStatus: <true/false>],
    	[FailIfServiceDoesNotExist: <true/false>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Service name (default)
    text
    Name
    This argument is required.
    Wait for running status
    true/false
    WaitForRunningStatus
    Default value is "True".
    Fail if service does not exist
    true/false
    FailIfServiceDoesNotExist
    Default value is "False".

    Example:

    # starts the FOOBAR service on the remote server
    Start-Service FOOBAR;
  • Stop Windows Service - Stops an existing Windows service.

    Stop Windows Service

    Stops an existing Windows service.

    Script usage:

    Windows::Stop-Service(
    	Name: <text>,
    	[WaitForStoppedStatus: <true/false>],
    	[FailIfServiceDoesNotExist: <true/false>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Service name (default)
    text
    Name
    This argument is required.
    Wait for stopped status
    true/false
    WaitForStoppedStatus
    Default value is "True".
    Fail if service does not exist
    true/false
    FailIfServiceDoesNotExist
    Default value is "True".

    Example:

    # stops the HDARS service on the remote server
    Stop-Service HDARS;

Shell

  • Execute Shell Script - Executes a specified shell script.

    Execute Shell Script

    Executes a specified shell script.

    Script usage:

    SHExec(
    	Text: <text>,
    	[Variables: <%(key1: value1, ...)>],
    	[OutVariables: <@(text)>],
    	[EnvironmentVariables: <%(key1: value1, ...)>],
    	[Arguments: <text>],
    	[Verbose: <true/false>],
    	[OutputLogLevel: <integer>],
    	[ErrorOutputLogLevel: <integer>],
    	[SuccessExitCode: <text>],
    	[CaptureDebug: <true/false>]
    );
    
    

    This operation may be prefixed with Linux::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Text (default)
    text
    Text
    The shell script text. This argument is required.
    Variables
    %(key1: value1, ...)
    Variables
    OutVariables
    @(text)
    OutVariables
    Environment variables
    %(key1: value1, ...)
    EnvironmentVariables
    Command line arguments
    text
    Arguments
    Verbose
    true/false
    Verbose
    When true, additional information about staging the script is written to the debug log.
    Output log level
    integer
    OutputLogLevel
    Error log level
    integer
    ErrorOutputLogLevel
    Success exit code
    text
    SuccessExitCode
    Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
    Capture debug messages
    true/false
    CaptureDebug
  • SHCall - Calls a shell script that is stored as an asset.

    SHCall

    Calls a shell script that is stored as an asset.

    Script usage:

    SHCall(
    	Name: <text>,
    	[Arguments: <text>],
    	[Verbose: <true/false>],
    	[ExitCode: <integer>],
    	[SuccessExitCode: <text>],
    	[OutputLogLevel: <integer>],
    	[ErrorOutputLogLevel: <integer>],
    	[Parameters: <%(key1: value1, ...)>],
    	[InputVariables: <%(key1: value1, ...)>],
    	[OutputVariables: <@(text)>],
    	[EnvironmentVariables: <%(key1: value1, ...)>],
    	[CaptureDebug: <true/false>]
    );
    
    

    This operation may be prefixed with Linux::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Name (default)
    text
    Name
    The name of the script asset. This argument is required.
    Arguments
    text
    Arguments
    Arguments to pass to the script.
    Verbose
    true/false
    Verbose
    When true, additional information about staging the script is written to the debug log.
    Exit code
    integer
    ExitCode
    Value note: "eg. $ScriptExitCode".
    Success exit code
    text
    SuccessExitCode
    Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
    Output log level
    integer
    OutputLogLevel
    Error log level
    integer
    ErrorOutputLogLevel
    Parameters
    %(key1: value1, ...)
    Parameters
    InputVariables
    %(key1: value1, ...)
    InputVariables
    OutputVariables
    @(text)
    OutputVariables
    Environment variables
    %(key1: value1, ...)
    EnvironmentVariables
    Capture debug messages
    true/false
    CaptureDebug
  • SHEnsure2 - Uses a Shell script to collect, and then Ensure a configuration about a server.

    SHEnsure2

    Uses a Shell script to collect, and then Ensure a configuration about a server.

    Script usage:

    SHEnsure2(
    	Name: <text>,
    	[Parameters: <%(key1: value1, ...)>],
    	[Verbose: <true/false>],
    	[OutputLogLevel: <integer>],
    	[ErrorOutputLogLevel: <integer>],
    	[SuccessExitCode: <text>],
    	[CaptureDebug: <true/false>],
    	[InputVariables: <%(key1: value1, ...)>],
    	[OutputVariables: <@(text)>],
    	[Arguments: <text>],
    	[EnvironmentVariables: <%(key1: value1, ...)>]
    );
    
    

    This operation may be prefixed with Linux::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Name (default)
    text
    Name
    The name of the script asset. This argument is required.
    Parameters
    %(key1: value1, ...)
    Parameters
    Verbose
    true/false
    Verbose
    When true, additional information about staging the script is written to the debug log.
    Output log level
    integer
    OutputLogLevel
    Error log level
    integer
    ErrorOutputLogLevel
    Success exit code
    text
    SuccessExitCode
    Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
    Capture debug messages
    true/false
    CaptureDebug
    InputVariables
    %(key1: value1, ...)
    InputVariables
    OutputVariables
    @(text)
    OutputVariables
    Command line arguments
    text
    Arguments
    Environment variables
    %(key1: value1, ...)
    EnvironmentVariables
  • SHVerify2 - Uses a Shell script to collect configuration about a server.

    SHVerify2

    Uses a Shell script to collect configuration about a server.

    Script usage:

    SHVerify2(
    	Name: <text>,
    	[Parameters: <%(key1: value1, ...)>],
    	[Verbose: <true/false>],
    	[OutputLogLevel: <integer>],
    	[ErrorOutputLogLevel: <integer>],
    	[SuccessExitCode: <text>],
    	[CaptureDebug: <true/false>],
    	[InputVariables: <%(key1: value1, ...)>],
    	[OutputVariables: <@(text)>],
    	[EnvironmentVariables: <%(key1: value1, ...)>],
    	[Arguments: <text>]
    );
    
    

    This operation may be prefixed with Linux::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Name (default)
    text
    Name
    The name of the script asset. This argument is required.
    Parameters
    %(key1: value1, ...)
    Parameters
    Verbose
    true/false
    Verbose
    When true, additional information about staging the script is written to the debug log.
    Output log level
    integer
    OutputLogLevel
    Error log level
    integer
    ErrorOutputLogLevel
    Success exit code
    text
    SuccessExitCode
    Integer exit code which indicates no error. When not specified, the exit code is ignored. This can also be an integer prefixed with an inequality operator. Default value is "ignored".
    Capture debug messages
    true/false
    CaptureDebug
    InputVariables
    %(key1: value1, ...)
    InputVariables
    OutputVariables
    @(text)
    OutputVariables
    Environment variables
    %(key1: value1, ...)
    EnvironmentVariables
    Command line arguments
    text
    Arguments

Source Control

  • Ensure GitHub Release - Creates or updates a tagged release in a GitHub repository.

    Ensure GitHub Release

    Creates or updates a tagged release in a GitHub repository.

    Script usage:

    GitHub::Ensure-Release(
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Organization: <text>],
    	[Repository: <text>],
    	[ApiUrl: <text>],
    	Tag: <text>,
    	[Target: <text>],
    	[Title: <text>],
    	[Description: <text>],
    	[Draft: <true/false>],
    	[Prerelease: <true/false>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    From GitHub resource
    text
    From
    User name
    text
    UserName
    Not specifying will "Use user name from GitHub resource's credentials".
    Password
    text
    Password
    Not specifying will "Use password from GitHub resource's credentials".
    Organization name
    text
    Organization
    Not specifying will "Use organization from Github resource".
    Repository name
    text
    Repository
    Not specifying will "Use repository from Github resource".
    API URL
    text
    ApiUrl
    Not specifying will "Use URL from Github resource.".
    Tag name
    text
    Tag
    This argument is required.
    Target commit
    text
    Target
    May be specified as a branch name, a commit hash, or left blank for the latest commit on the default branch (usually master).
    Title
    text
    Title
    If left blank, the tag name will be used for new releases and existing releases will keep their original title. Value note: "(keep existing)".
    Description
    text
    Description
    Release notes, formatted as Markdown. Leave blank to keep the existing release notes. Value note: "(keep existing)".
    Is draft
    true/false
    Draft
    Value note: "(keep existing)".
    Is prerelease
    true/false
    Prerelease
    Value note: "(keep existing)".
  • Ensure GitLab Release - Sets the release notes for a tag in a GitLab repository.

    Ensure GitLab Release

    Sets the release notes for a tag in a GitLab repository.

    Script usage:

    GitLab::Ensure-TagReleaseNotes(
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Namespace: <text>],
    	[Project: <text>],
    	[ApiUrl: <text>],
    	Tag: <text>,
    	[Description: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    From GitLab resource
    text
    From
    User name
    text
    UserName
    Not specifying will "Use user name from GitLab resource's credentials".
    Password
    text
    Password
    Not specifying will "Use password from GitLab resource's credentials".
    Namespace
    text
    Namespace
    Not specifying will "Use namespace from GitLab resource".
    Project name
    text
    Project
    Not specifying will "Use project from GitLab resource".
    API URL
    text
    ApiUrl
    Not specifying will "Use URL from GitLab resource".
    Tag name
    text
    Tag
    The tag must already exist. This argument is required.
    Description
    text
    Description
    Release notes, formatted using Markdown.
  • SVN Checkout - Checks out a working copy from a repository.

    SVN Checkout

    Checks out a working copy from a repository.

    Script usage:

    Subversion::Svn-Checkout(
    	[SourcePath: <text>],
    	[DiskPath: <text>],
    	[RevisionNumber: <text>],
    	[From: <text>],
    	[AdditionalArguments: <text>],
    	[RepositoryUrl: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[SvnExePath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Source path
    text
    SourcePath
    Value note: "Repository root".
    Working copy directory
    text
    DiskPath
    Value note: "$WorkingDirectory".
    Revision number
    text
    RevisionNumber
    Value note: "eg. $RevisionNumber".
    From Svn resource
    text
    From
    Additional arguments
    text
    AdditionalArguments
    Repository URL
    text
    RepositoryUrl
    Not specifying will "Use repository URL from credentials".
    User name
    text
    UserName
    Not specifying will "Use user name from credentials".
    Password
    text
    Password
    Not specifying will "Use password from credentials".
    svn.exe path
    text
    SvnExePath
    Default value is "$SvnExePath".

    Example:

    # checkout a remote repository locally
    Svn-Checkout(
        Credentials: Hdars-Subversion,
        SourcePath: trunk,
        To: ~\Sources
    );
    
  • SVN Copy - Creates a copy of a source path to facilitate branching and tagging.

    SVN Copy

    Creates a copy of a source path to facilitate branching and tagging.

    Script usage:

    Subversion::Svn-Copy(
    	Source: <text>,
    	To: <text>,
    	Message: <text>,
    	[From: <text>],
    	[AdditionalArguments: <text>],
    	[RepositoryUrl: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[SvnExePath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    From path
    text
    Source
    This is the path relative to the Repository URL. This argument is required.
    To path
    text
    To
    This is the path relative to the Repository URL. All parent folders listed in the path must exist except the final child folder. This argument is required.
    Log message
    text
    Message
    This argument is required.
    From Svn resource
    text
    From
    Additional arguments
    text
    AdditionalArguments
    Repository URL
    text
    RepositoryUrl
    Not specifying will "Use repository URL from credentials".
    User name
    text
    UserName
    Not specifying will "Use user name from credentials".
    Password
    text
    Password
    Not specifying will "Use password from credentials".
    svn.exe path
    text
    SvnExePath
    Default value is "$SvnExePath".

    Example:

    # branch trunk to a path using the current release name
    Svn-Copy(
        Credentials: Hdars-Subversion,
        From: trunk,
        To: branches/$ReleaseName
    );
    
    # create a tag of the current package number
    Svn-Copy(
        Credentials: Hdars-Subversion,
        From: trunk,
        To: tags/$ReleaseNumber.$PackageNumber
    );
    
  • SVN Delete - Deletes a file in a Subversion repository.

    SVN Delete

    Deletes a file in a Subversion repository.

    Script usage:

    Subversion::Svn-Delete(
    	Path: <text>,
    	Message: <text>,
    	[From: <text>],
    	[AdditionalArguments: <text>],
    	[RepositoryUrl: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[SvnExePath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    File path
    text
    Path
    This argument is required.
    Log message
    text
    Message
    This argument is required.
    From Svn resource
    text
    From
    Additional arguments
    text
    AdditionalArguments
    Repository URL
    text
    RepositoryUrl
    Not specifying will "Use repository URL from credentials".
    User name
    text
    UserName
    Not specifying will "Use user name from credentials".
    Password
    text
    Password
    Not specifying will "Use password from credentials".
    svn.exe path
    text
    SvnExePath
    Default value is "$SvnExePath".
  • SVN Export - Gets the unversioned contents of a repository to a specified directory.

    SVN Export

    Gets the unversioned contents of a repository to a specified directory.

    Script usage:

    Subversion::Svn-Export(
    	SourcePath: <text>,
    	[DiskPath: <text>],
    	[From: <text>],
    	[AdditionalArguments: <text>],
    	[RepositoryUrl: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[SvnExePath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Source path
    text
    SourcePath
    This argument is required.
    Export to directory
    text
    DiskPath
    Value note: "$WorkingDirectory".
    From Svn resource
    text
    From
    Additional arguments
    text
    AdditionalArguments
    Repository URL
    text
    RepositoryUrl
    Not specifying will "Use repository URL from credentials".
    User name
    text
    UserName
    Not specifying will "Use user name from credentials".
    Password
    text
    Password
    Not specifying will "Use password from credentials".
    svn.exe path
    text
    SvnExePath
    Default value is "$SvnExePath".

    Example:

    # export the contents of a remote repository so .svn directories are not included
    Svn-Export(
        Credentials: Hdars-Subversion,
        SourcePath: trunk,
        To: ~\Sources
    );
    
  • SVN Update - Bring changes from a repository into the working copy.

    SVN Update

    Bring changes from a repository into the working copy.

    Script usage:

    Subversion::Svn-Update(
    	[DiskPath: <text>],
    	[From: <text>],
    	[AdditionalArguments: <text>],
    	[RepositoryUrl: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[SvnExePath: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Working copy directory
    text
    DiskPath
    Value note: "$WorkingDirectory".
    From Svn resource
    text
    From
    Additional arguments
    text
    AdditionalArguments
    Repository URL
    text
    RepositoryUrl
    Not specifying will "Use repository URL from credentials".
    User name
    text
    UserName
    Not specifying will "Use user name from credentials".
    Password
    text
    Password
    Not specifying will "Use password from credentials".
    svn.exe path
    text
    SvnExePath
    Default value is "$SvnExePath".

    Example:

    # update a local disk path (specifed as an application variable) to match the contents of its remote repository
    Svn-Update(
        Credentials: Hdars-Subversion,
        DiskPath: E:\LocalSvnRepos\$ApplicationSvnRepo
    );
    
  • Upload GitHub Release Assets - Uploads files as attachments to a GitHub release.

    Upload GitHub Release Assets

    Uploads files as attachments to a GitHub release.

    Script usage:

    GitHub::Upload-ReleaseAssets(
    	Tag: <text>,
    	[Include: <@(text)>],
    	[Exclude: <@(text)>],
    	[Directory: <text>],
    	[ContentType: <text>],
    	[From: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[Organization: <text>],
    	[Repository: <text>],
    	[ApiUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Tag
    text
    Tag
    The tag associated with the release. The release must already exist. This argument is required.
    Include files
    @(text)
    Include
    See KB#1119 to learn more about masking syntax.
    Exclude files
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    From directory
    text
    Directory
    Value note: "$WorkingDirectory".
    Content type
    text
    ContentType
    Value note: "detect from file extension".
    From GitHub resource
    text
    From
    User name
    text
    UserName
    Not specifying will "Use user name from GitHub resource's credentials".
    Password
    text
    Password
    Not specifying will "Use password from GitHub resource's credentials".
    Organization name
    text
    Organization
    Not specifying will "Use organization from Github resource".
    Repository name
    text
    Repository
    Not specifying will "Use repository from Github resource".
    API URL
    text
    ApiUrl
    Use URL from Github resource. Value note: "https://api.github.com".

Unit Tests

  • Execute Python Unit Tests - Executes Python unit tests.

    Execute Python Unit Tests

    Executes Python unit tests.

    Script usage:

    Python::Execute-PyUnit(
    	[Arguments: <text>],
    	[Verbose: <true/false>],
    	[FailFast: <true/false>],
    	[RecordOutput: <true/false>],
    	[PythonPath: <text>],
    	[VirtualEnv: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Arguments
    text
    Arguments
    Default value is "discover".
    Verbose
    true/false
    Verbose
    Default value is "True".
    FailFast
    true/false
    FailFast
    Default value is "False".
    RecordOutput
    true/false
    RecordOutput
    Default value is "True".
    Python path
    text
    PythonPath
    Full path to python/python.exe on the target server. Default value is "$PythonPath".
    VirtualEnv
    text
    VirtualEnv
    Default value is "$PythonVirtualEnv".

UPack

  • Query Package - Tests whether a universal package exists and optionally extracts its metadata.

    Query Package

    Tests whether a universal package exists and optionally extracts its metadata.

    Script usage:

    UPack::Query-Package(
    	[From: <text>],
    	Name: <text>,
    	Version: <text>,
    	NewVersion: <text>,
    	[Reason: <text>],
    	[PackageFile: <text>],
    	[Feed: <text>],
    	[EndpointUrl: <text>],
    	[UserName: <text>],
    	[Password: <text>],
    	[ApiKey: <text>],
    	[Exists: <true/false>],
    	[Metadata: <%(key1: value1, ...)>],
    	[FeedUrl: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Package source
    text
    From
    Package name
    text
    Name
    This argument is required.
    Package version
    text
    Version
    Default value is "latest". This argument is required.
    New version
    text
    NewVersion
    This argument is required.
    Reason
    text
    Reason
    Value note: "Unspecified".
    Package file
    text
    PackageFile
    When specified, FeedUrl, UserName, Password, PackageName, and PackageVersion are ignored.
    Feed name
    text
    Feed
    Not specifying will "Use Feed from package source".
    API endpoint URL
    text
    EndpointUrl
    Not specifying will "Use URL from package source".
    ProGet user name
    text
    UserName
    The name of a user in ProGet that can access this feed. Not specifying will "Use user name from package source".
    ProGet password
    text
    Password
    The password of a user in ProGet that can access this feed. Not specifying will "Use password from package source".
    ProGet API Key
    text
    ApiKey
    An API Key that can access this feed. Not specifying will "Use API Key from package source".
    Package exists
    true/false
    Exists
    When specified, this string variable will be set to "true" if the package exists or "false" if it does not. e.g. $PackageExists".
    Package metadata
    %(key1: value1, ...)
    Metadata
    When specified, this map variable will be assigned containing all of the package's metadata. If the package does not exist this value is not defined.
    FeedUrl
    text
    FeedUrl

    Example:

    # test whether a package exists in a feed and capture its metadata
    Query-Package
    (
        Credentials: MyExternalFeed,
        PackageName: Group/Package,
        Exists => $exists,
        Metadata => %packageData
    );
    
    if $exists
    {
        Log-Debug 'Package $(%packageData.name) exists. Latest version is $(%packageData.version).';
    }
    

Variables

  • Apply Template - Applies full template transformation on a literal, a file, or a template asset.

    Apply Template

    Applies full template transformation on a literal, a file, or a template asset.

    Script usage:

    InedoCore::Apply-Template(
    	[Asset: <text>],
    	[OutputVariable: <text>],
    	[OutputFile: <text>],
    	[Literal: <text>],
    	[InputFile: <text>],
    	[AdditionalVariables: <%(key1: value1, ...)>],
    	[NewLines: <integer>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Asset (default)
    text
    Asset
    Value note: "not using an asset".
    Store to variable
    text
    OutputVariable
    Value note: "do not store in variable".
    Output file
    text
    OutputFile
    Value note: "do not write to file".
    Literal
    text
    Literal
    Variables are not expanded within the contents of this property.
    Input file
    text
    InputFile
    Additional variables
    %(key1: value1, ...)
    AdditionalVariables
    New lines
    integer
    NewLines
    Default value is "Auto".

    Note: When reading from or writing to a file, there must be a valid server context.

    Example:

    # applies the a literal template and stores the result in $text
    Apply-Template
    (
        Literal: >>Hello from $ServerName!
    <% if $IsSimulation { %> This is a simulation run. <% } else { %> This is not a simulation run. <% } %>
    Thanks,
    $MyName
    >>,
        OutputVariable => $text,
        AdditionalVariables: %(MyName: Steve)
    );
    

Windows

  • Sign Binary - Signs .exe or .dll files using an installed code signing certificate.

    Sign Binary

    Signs .exe or .dll files using an installed code signing certificate.

    Script usage:

    Sign-Exe(
    	SubjectName: <text>,
    	[TimestampServer: <text>],
    	[ContentDescription: <text>],
    	[ContentUrl: <text>],
    	Include: <@(text)>,
    	[Exclude: <@(text)>],
    	[SignToolPath: <text>],
    	[SourceDirectory: <text>]
    );
    
    

    This operation may be prefixed with Windows::, although this is a built-in namespace and isn't really necessary.

    Arguments:

    NameFormatScript UsageUsage Notes
    Subject
    text
    SubjectName
    The subject name of the certificate. This is used to identify the certificate. This argument is required.
    Timestamp server
    text
    TimestampServer
    This server will be used to add a timestamp to the signature. Default value is "http://timestamp.comodoca.com/".
    Description
    text
    ContentDescription
    The content description that will be included with the signature.
    URL
    text
    ContentUrl
    The content URL that will be included with the signature.
    Include (default)
    @(text)
    Include
    See KB#1119 to learn more about masking syntax. This argument is required.
    Exclude
    @(text)
    Exclude
    See KB#1119 to learn more about masking syntax.
    signtool.exe path
    text
    SignToolPath
    The full path of signtool.exe. Default value is "$SignToolPath".
    Directory
    text
    SourceDirectory

Youtrack

  • Add Comment to YouTrack Issue - Adds a comment to a YouTrack issue.

    Add Comment to YouTrack Issue

    Adds a comment to a YouTrack issue.

    Script usage:

    YouTrack::Add-Comment(
    	[Query: <text>],
    	[Issues: <@(text)>],
    	Comment: <text>,
    	[From: <text>],
    	[Server: <text>],
    	[CredentialName: <text>],
    	[PermanentToken: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Query
    text
    Query
    The YouTrack issue query. For example, to get open issues for the release currently in context:

    Project: {$ApplicationName} Fix version: $ReleaseNumber State: -Completed

    For more information on filters, see: https://www.jetbrains.com/help/youtrack/standalone/Search-and-Command-Attributes.html.
    Issue IDs
    @(text)
    Issues
    Apply to the issue IDs directly. When this value is specified, "Query" is ignored.
    Comment
    text
    Comment
    This argument is required.
    From resource
    text
    From
    YouTrack server URL
    text
    Server
    Not specifying will "Use server URL from resource".
    Credentials
    text
    CredentialName
    Not specifying will "Use credential from resource".
    Permanent token
    text
    PermanentToken
    Not specifying will "Use permanent token from credential".

    Example:

    # Add a comment to issues in the current release of the current project.
    YouTrack::Add-Comment
    (
        Query: Project: {$ApplicationName} Fix version: $ReleaseNumber,
        Comment: Comment added by BuildMaster in build $BuildNumber of release $ReleaseNumber of $ApplicationName.
    );
  • Change YouTrack Issue States - Changes the state of YouTrack issues.

    Change YouTrack Issue States

    Changes the state of YouTrack issues.

    Script usage:

    YouTrack::Change-IssueStates(
    	[Query: <text>],
    	[Issues: <@(text)>],
    	State: <text>,
    	[Comment: <text>],
    	[IssueStatusFieldName: <text>],
    	[From: <text>],
    	[Server: <text>],
    	[CredentialName: <text>],
    	[PermanentToken: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Query
    text
    Query
    The YouTrack issue query. For example, to get open issues for the release currently in context:

    Project: {$ApplicationName} Fix version: $ReleaseNumber State: -Completed

    For more information on filters, see: https://www.jetbrains.com/help/youtrack/standalone/Search-and-Command-Attributes.html.
    Issue IDs
    @(text)
    Issues
    Apply to the issue IDs directly. When this value is specified, "Query" is ignored.
    State
    text
    State
    This argument is required.
    Comment
    text
    Comment
    Value note: "none".
    Issue status custom field
    text
    IssueStatusFieldName
    Default value is "$YouTrackStatusFieldName".
    From resource
    text
    From
    YouTrack server URL
    text
    Server
    Not specifying will "Use server URL from resource".
    Credentials
    text
    CredentialName
    Not specifying will "Use credential from resource".
    Permanent token
    text
    PermanentToken
    Not specifying will "Use permanent token from credential".

    Example:

    # Change the state of all issues in the application's project with 'Fix version' = $ReleaseNumber to Completed.
    YouTrack::ChangeIssueStates
    (
        Query: Project: {$ApplicationName} Fix version: $ReleaseNumber,
        State: Completed
    );
  • Create YouTrack Issue - Creates a new issue in YouTrack.

    Create YouTrack Issue

    Creates a new issue in YouTrack.

    Script usage:

    YouTrack::Create-Issue(
    	Project: <text>,
    	Summary: <text>,
    	[Description: <text>],
    	[IssueId: <text>],
    	[From: <text>],
    	[Server: <text>],
    	[CredentialName: <text>],
    	[PermanentToken: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Project
    text
    Project
    This argument is required.
    Summary
    text
    Summary
    This argument is required.
    Description
    text
    Description
    Issue ID
    text
    IssueId
    Value note: "ex: $issueId".
    From resource
    text
    From
    YouTrack server URL
    text
    Server
    Not specifying will "Use server URL from resource".
    Credentials
    text
    CredentialName
    Not specifying will "Use credential from resource".
    Permanent token
    text
    PermanentToken
    Not specifying will "Use permanent token from credential".

    Example:

    # Creates an example issue in the $ApplicationName YouTrack project and stores its issue ID in the $issueId variable.
    YouTrack::Create-Issue
    (
        Project: $ApplicationName,
        Summary: Example issue,
        Description: >>This issue was created by BuildMaster.
    It is just an example.>>,
        IssueId => $issueId
    );
    
    # Write the issue ID to the execution log.
    Log-Information Created issue $issueId in YouTrack.;
  • Ensure YouTrack Version - Ensures that a version exists for a YouTrack project and optionally updates its released and archived states.

    Ensure YouTrack Version

    Ensures that a version exists for a YouTrack project and optionally updates its released and archived states.

    Script usage:

    YouTrack::Ensure-Version(
    	Project: <text>,
    	Version: <text>,
    	[Released: <true/false>],
    	[Archived: <true/false>],
    	[VersionFieldName: <text>],
    	[From: <text>],
    	[Server: <text>],
    	[CredentialName: <text>],
    	[PermanentToken: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Project
    text
    Project
    Default value is "$ApplicationName". This argument is required.
    Version (default)
    text
    Version
    Default value is "$ReleaseNumber". This argument is required.
    Released
    true/false
    Released
    Value note: "no change".
    Archived
    true/false
    Archived
    Value note: "no change".
    Version custom field
    text
    VersionFieldName
    Default value is "$YouTrackVersionFieldName".
    From resource
    text
    From
    YouTrack server URL
    text
    Server
    Not specifying will "Use server URL from resource".
    Credentials
    text
    CredentialName
    Not specifying will "Use credential from resource".
    Permanent token
    text
    PermanentToken
    Not specifying will "Use permanent token from credential".

    Example:

    # Ensure that a version exists in YouTrack for the current release of the current application.
    YouTrack::Ensure-Version
    (
        Project: $ApplicationName,
        Version: $ReleaseNumber
    );
  • Query YouTrack Issues - Queries YouTrack for issues and stores information about them in an OtterScript variable.

    Query YouTrack Issues

    Queries YouTrack for issues and stores information about them in an OtterScript variable.

    Script usage:

    YouTrack::Query-Issues(
    	[Project: <text>],
    	[Query: <text>],
    	[Output: <RuntimeValue>],
    	[IncludeDetails: <true/false>],
    	[IssueStatusFieldName: <text>],
    	[IssueTypeFieldName: <text>],
    	[From: <text>],
    	[Server: <text>],
    	[CredentialName: <text>],
    	[PermanentToken: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Project
    text
    Project
    Query
    text
    Query
    The YouTrack issue query. For example, to get open issues for the release currently in context:

    Project: {$ApplicationName} Fix version: $ReleaseNumber State: -Completed

    For more information on filters, see: https://www.jetbrains.com/help/youtrack/standalone/Search-and-Command-Attributes.html.
    Output variable
    RuntimeValue
    Output
    The output variable should be a list variable. For example: @YouTrackIssueIDs.
    Include details in output
    true/false
    IncludeDetails
    When true, the output variable is a list of maps with id, title, and description properties. When false, the output variable is a list of id strings.
    Issue status custom field
    text
    IssueStatusFieldName
    Default value is "$YouTrackStatusFieldName".
    Issue type custom field
    text
    IssueTypeFieldName
    Default value is "$YouTrackTypeFieldName".
    From resource
    text
    From
    YouTrack server URL
    text
    Server
    Not specifying will "Use server URL from resource".
    Credentials
    text
    CredentialName
    Not specifying will "Use credential from resource".
    Permanent token
    text
    PermanentToken
    Not specifying will "Use permanent token from credential".

    Example:

    # Queries YouTrack for open issues with 'Fix version' = $ReleaseNumber for the $ApplicationName project and stores the issue IDs in the @issueIds variable.
    YouTrack::Query-Issues
    (
        Query: Project: {$ApplicationName} Fix version: $ReleaseNumber State: Open,
        Output => @issueIds
    );
  • Run YouTrack Command - Runs a YouTrack command against one or more issues.

    Run YouTrack Command

    Runs a YouTrack command against one or more issues.

    Script usage:

    YouTrack::Run-Command(
    	[Query: <text>],
    	[Issues: <@(text)>],
    	Command: <text>,
    	[Comment: <text>],
    	[From: <text>],
    	[Server: <text>],
    	[CredentialName: <text>],
    	[PermanentToken: <text>]
    );
    
    

    Arguments:

    NameFormatScript UsageUsage Notes
    Query
    text
    Query
    The YouTrack issue query. For example, to get open issues for the release currently in context:

    Project: {$ApplicationName} Fix version: $ReleaseNumber State: -Completed

    For more information on filters, see: https://www.jetbrains.com/help/youtrack/standalone/Search-and-Command-Attributes.html.
    Issue IDs
    @(text)
    Issues
    Apply to the issue IDs directly. When this value is specified, "Query" is ignored.
    Command
    text
    Command
    This argument is required.
    Comment
    text
    Comment
    Value note: "none".
    From resource
    text
    From
    YouTrack server URL
    text
    Server
    Not specifying will "Use server URL from resource".
    Credentials
    text
    CredentialName
    Not specifying will "Use credential from resource".
    Permanent token
    text
    PermanentToken
    Not specifying will "Use permanent token from credential".

    Example:

    # Applies the 'my-tag' tag to issues matching the specified query.
    YouTrack::Run-Command
    (
        Query: Project: {$ApplicationName} Fix version: $ReleaseNumber,
        Command: tag my-tag
    );