Skip to content
TeamCity PowerShell Module
PowerShell
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
Modules
SetUp
Debugging.ps1
README.md
run-specs.bat

README.md

 ______                            ____         __                
/\__  _\                          /\  _`\    __/\ \__             
\/_/\ \/    __     __      ___ ___\ \ \/\_\ /\_\ \ ,_\  __  __    
   \ \ \  /'__`\ /'__`\  /' __` __`\ \ \/_/_\/\ \ \ \/ /\ \/\ \   
    \ \ \/\  __//\ \L\.\_/\ \/\ \/\ \ \ \L\ \\ \ \ \ \_\ \ \_\ \  
     \ \_\ \____\ \__/.\_\ \_\ \_\ \_\ \____/ \ \_\ \__\\/`____ \ 
      \/_/\/____/\/__/\/_/\/_/\/_/\/_/\/___/   \/_/\/__/ `/___/> \
                                                            /\___/
                                                            \/__/ 
 ____                                  ____    __              ___   ___      
/\  _`\                               /\  _`\ /\ \            /\_ \ /\_ \     
\ \ \L\ \___   __  __  __     __  _ __\ \,\L\_\ \ \___      __\//\ \\//\ \    
 \ \ ,__/ __`\/\ \/\ \/\ \  /'__`\\`'__\/_\__ \\ \  _ `\  /'__`\\ \ \ \ \ \   
  \ \ \/\ \L\ \ \ \_/ \_/ \/\  __/ \ \/  /\ \L\ \ \ \ \ \/\  __/ \_\ \_\_\ \_ 
   \ \_\ \____/\ \___x___/'\ \____\ \_\  \ `\____\ \_\ \_\ \____\/\____\\____\
    \/_/\/___/  \/__//__/   \/____/\/_/   \/_____/\/_/\/_/\/____/\/____//____/

TeamCityPowerShell v1.0.0.0 - Powered by endjin

About

TeamCityPowerShell is a series of 49 cmdlets that you can use to query TeamCity for information about its state.

$parameters = @{ 
     ConnectionDetails = @{
         ServerUrl = "teamcity.codebetter.com"
         Credential = New-Object System.Management.Automation.PSCredential("teamcitysharpuser", (ConvertTo-SecureString "qwerty" -asplaintext -force))
         UseSsl = $false
         IsGuest = $false 
     }
     BuildConfigId = "bt437"
}

$builds = Get-BuildConfigsByBuildConfigId @parameters

foreach($build in $builds)
{
    Write-Host $build.Number
}

Usage

The following cmdlets are supported:

 o Get-AllAgents
 o Get-AllBuildConfigs
 o Get-ArtifactsByBuildId
 o Get-Artifact
 o Get-ArtifactsAsArchive *
 o Get-BuildConfigByConfigurationName
 o Get-AllBuildsOfStatusSinceDate
 o Get-AllBuildsSinceDate
 o Get-AllChanges
 o Get-AllGroupsByUserName
 o Get-AllProjects
 o Get-AllRolesByUserName *
 o Get-AllServerPlugins *
 o Get-AllUserGroups
 o Get-AllUserRolesByUserGroup
 o Get-AllUsers *
 o Get-AllUsersByUserGroup
 o Get-AllVcsRoots
 o Get-BuildConfigByConfigurationId
 o Get-BuildConfigByConfigurationName
 o Get-BuildConfigByProjectIdAndConfigurationId
 o Get-BuildConfigByProjectIdAndConfigurationName
 o Get-BuildConfigByProjectNameAndConfigurationId
 o Get-BuildConfigByProjectNameAndConfigurationName
 o Get-BuildConfigsByBuildConfigId
 o Get-BuildConfigsByConfigIdAndTag
 o Get-BuildConfigsByConfigIdAndTags
 o Get-BuildConfigsByProjectId
 o Get-BuildConfigsByProjectName
 o Get-BuildsByBuildLocator *
 o Get-BuildsByUserName
 o Get-ChangeDetailsByBuildConfigId
 o Get-ChangeDetailsByChangeId
 o Get-ErrorBuildsByBuildConfigId *
 o Get-FailedBuildsByBuildConfigId *
 o Get-LastBuildByAgent
 o Get-LastBuildByBuildConfigId
 o Get-LastChangeDetailByBuildConfigId
 o Get-LastErrorBuildByBuildConfigId *
 o Get-LastFailedBuildByBuildConfigId
 o Get-LastSuccessfulBuildByBuildConfigId
 o Get-LatestArtifact
 o Get-NonSuccessfulBuildsForUser
 o Get-ProjectById
 o Get-ProjectByName
 o Get-ServerInfo
 o Get-SuccessfulBuildsByBuildConfigId
 o Get-VcsRootById
 o New-TeamCityUrl
 o New-TeamCityWebClientConnection

To discover what parameters are required for each cmdlet use the Get-Help cmdlet i.e.:

Get-Help Get-BuildConfigsByBuildConfigId

which will return

Get-BuildConfigsByBuildConfigId [[-ConnectionDetails] <Hashtable>] [[-BuildConfigId] <String>]

The ConnectionDetails hashtable requires the following values

ConnectionDetails = @{
    ServerUrl = "teamcity.codebetter.com"
    Credential = New-Object System.Management.Automation.PSCredential("teamcitysharpuser", (ConvertTo-SecureString "qwerty" -asplaintext -force))
    UseSsl = $false
    IsGuest = $false 
}

At a minimum the following values are required:

ConnectionDetails = @{
    ServerUrl = "teamcity.codebetter.com"
    Credential = New-Object System.Management.Automation.PSCredential("teamcitysharpuser", (ConvertTo-SecureString "qwerty" -asplaintext -force))
}

If you don't want to embedd TeamCity credentials you can enter them interactively using:

$parameters = @{ 
    ConnectionDetails = @{
        ServerUrl = "teamcity.codebetter.com"
        Credential = Get-Credential
    }
    BuildConfigId = "bt437"
}

Alternatively you can retrieve them disk using this PowerShell Cookbook recipie: http://www.leeholmes.com/blog/2008/06/04/importing-and-exporting-credentials-in-powershell/

For full documentation on how to use each Cmdlet see the Pester Specifications contained within TeamCity.Tests.ps1 and TeamCity-Artifacts.Tests.ps1

To run the full suite of BDD specs invoke "run-specs.bat" in the root of this project.

  • denotes that the function has a ignored specification pending investigation

Ingredients

TeamCityPowerShell makes use of the following tools and frameworks:

o TeamCitySharp - https://github.com/stack72/TeamCitySharp

o Pester - https://github.com/scottmuc/Pester

Install

TeamCityPowerShell depends on TeamCitySharp which is a .NET 4.0 application. By default PowerShell only supports .NET 2.0 - to enable .NET 4.0 support copy TeamCityPowerShell\SetUp\PowerShell.exe.config to the PowerShell install directory - this allows PowerShell to host the .NET 4.0 runtime.

To import the module use standard PowerShell syntax:

Import-Module C:\Code\OSS\TeamCityPowerShell\Modules\TeamCity

Or if you wish to load everything from the Modules directory, which will sit under your consuming script - you can use the following commands:

$path = Split-Path -Parent $MyInvocation.MyCommand.Path
Import-Module (Join-Path $path "Modules") -Force -DisableNameChecking

Contribute

http://github.com/endjin/TeamCityPowerShell

Support / Help

Follow http://twitter.com/endjin on twitter.

Report bugs & issues on https://github.com/endjin/TeamCityPowerShell/issues

Credits & Thanks

James Dawson for being the usual partner in crime

Paul Stack & Contributors for TeamCitySharp

Copyright (c) 2012 endjin (@endjin)

Version History

2012.03.24 - v1.0.0.0 - First public release

Something went wrong with that request. Please try again.