Trigger TeamCity Build

Octopus.Script exported 2015-03-16 by bjorgvino belongs to ‘TeamCity’ category.

Trigger a specific Team City build from an Octopus Deploy process.

Parameters

When steps based on the template are included in a project’s deployment process, the parameters below can be set.

null

BuildConfigurationId

The Id of the build configuration to trigger.

null

TeamCityUrl

The URL of the Team City server. E.g. http://teamcity.example.com.

null

TeamCityUsername =

The username to use for accessing TeamCity.

null

TeamCityPassword

The password for the TeamCity user.

Script body

Steps based on this template will execute the following PowerShell script.

$buildConfId = $OctopusParameters['BuildConfigurationId']

$teamCityUrl = $OctopusParameters['TeamCityUrl']
$teamCityUsername = $OctopusParameters['TeamCityUsername']
$teamCityPassword = $OctopusParameters['TeamCityPassword']

$url = $teamCityUrl + '/httpAuth/app/rest/buildQueue'
$contentTemplate = '<build><buildType id="{0}"/></build>'
$content = $contentTemplate -f $buildConfId
$encodedContent = [System.Text.Encoding]::UTF8.GetBytes($content)

Write-Host "================================================================================"
Write-Host "Triggering build with Id $buildConfId in TeamCity. Server:" $teamCityUrl 
Write-Host "================================================================================"

$req = [System.Net.WebRequest]::Create($url)
$req.Credentials = new-object System.Net.NetworkCredential($teamCityUsername, $teamCityPassword)
$req.Method ="POST"
$req.ContentType = "application/xml"

$req.ContentLength = $encodedContent.length
$requestStream = $req.GetRequestStream()
$requestStream.Write($encodedContent, 0, $encodedContent.length)
$requestStream.Close()

$resp = $req.GetResponse()
$reader = new-object System.IO.StreamReader($resp.GetResponseStream())
$reader.ReadToEnd() | Write-Host

Provided under the Apache License version 2.0.

Report an issue

To use this template in Octopus Deploy, copy the JSON below and paste it into the Library → Step templates → Import dialog.

{
  "Id": "22483ce2-1444-4c02-861c-fb9533959e16",
  "Name": "Trigger TeamCity Build",
  "Description": "Trigger a specific Team City build from an Octopus Deploy process.",
  "Version": 1,
  "ExportedAt": "2015-03-16T10:47:31.328+00:00",
  "ActionType": "Octopus.Script",
  "Author": "bjorgvino",
  "Parameters": [
    {
      "Name": "BuildConfigurationId",
      "Label": null,
      "HelpText": "The Id of the build configuration to trigger.",
      "DefaultValue": null,
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Name": "TeamCityUrl",
      "Label": null,
      "HelpText": "The URL of the Team City server.\nE.g. `http://teamcity.example.com`.",
      "DefaultValue": null,
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Name": "TeamCityUsername",
      "Label": null,
      "HelpText": "The username to use for accessing TeamCity.",
      "DefaultValue": "",
      "DisplaySettings": {
        "Octopus.ControlType": "SingleLineText"
      }
    },
    {
      "Name": "TeamCityPassword",
      "Label": null,
      "HelpText": "The password for the TeamCity user.",
      "DefaultValue": null,
      "DisplaySettings": {
        "Octopus.ControlType": "Sensitive"
      }
    }
  ],
  "Properties": {
    "Octopus.Action.Script.ScriptBody": "$buildConfId = $OctopusParameters['BuildConfigurationId']\n\n$teamCityUrl = $OctopusParameters['TeamCityUrl']\n$teamCityUsername = $OctopusParameters['TeamCityUsername']\n$teamCityPassword = $OctopusParameters['TeamCityPassword']\n\n$url = $teamCityUrl + '/httpAuth/app/rest/buildQueue'\n$contentTemplate = '<build><buildType id=\"{0}\"/></build>'\n$content = $contentTemplate -f $buildConfId\n$encodedContent = [System.Text.Encoding]::UTF8.GetBytes($content)\n\nWrite-Host \"================================================================================\"\nWrite-Host \"Triggering build with Id $buildConfId in TeamCity. Server:\" $teamCityUrl \nWrite-Host \"================================================================================\"\n\n$req = [System.Net.WebRequest]::Create($url)\n$req.Credentials = new-object System.Net.NetworkCredential($teamCityUsername, $teamCityPassword)\n$req.Method =\"POST\"\n$req.ContentType = \"application/xml\"\n\n$req.ContentLength = $encodedContent.length\n$requestStream = $req.GetRequestStream()\n$requestStream.Write($encodedContent, 0, $encodedContent.length)\n$requestStream.Close()\n\n$resp = $req.GetResponse()\n$reader = new-object System.IO.StreamReader($resp.GetResponseStream())\n$reader.ReadToEnd() | Write-Host\n",
    "Octopus.Action.Script.Syntax": "PowerShell"
  },
  "Category": "TeamCity",
  "HistoryUrl": "https://github.com/OctopusDeploy/Library/commits/master/step-templates//opt/buildagent/work/75443764cd38076d/step-templates/teamcity-trigger-build.json",
  "Website": "/step-templates/22483ce2-1444-4c02-861c-fb9533959e16",
  "Logo": "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",
  "$Meta": {
    "Type": "ActionTemplate"
  }
}

History

Page updated on Monday, March 16, 2015