2015-09-28 43 views
2

我有以下情况。使用powershell控制teamcity步骤

我在teamcity中有一个项目的5个构建步骤。只有当分支是主人时,我才需要执行第五步。如果分支不是主人,团队城市进程应该退出而不执行第5步。这是我可以通过PowerShell实现的吗?

+0

只是想知道为什么我的问题是downvoted? –

+0

从长远来看,这应该通过一个新的TeamCity功能来实现,该功能有条件地运行步骤。我相信它目前是[最受欢迎的TC功能请求](https://youtrack.jetbrains.com/issue/TW-17939)(您可能也想投票赞成)。这张票据说它是为TeamCity 9.1.x计划的,但我认为它并没有成为9.1.0中的任何一个。9.1.3所以它可能会滑落... – sferencik

回答

1

我认为这样做的唯一方法是有一个PowerShell步骤作为步骤5,它只是简单地检查当前分支(%teamcity.build.branch%)和错误,如果它不是主人,那么你想要运行的步骤是当前步骤5作为第6步。

团队城市doesn't always like to fail if the powershell steps fail,特别是在当前版本之前的版本中。

为了解决这个问题,我们使用的源脚本,但它假定您要运行脚本源代码控制:

& "%teamcity.build.checkoutDir%\Path\To\PowershellScript.ps1" "%teamcity.build.checkoutDir%" 
Write-Host "The result was of the previous script was " $LASTEXITCODE 
Exit $LASTEXITCODE 

链接的答案包含具体取决于哪个版本使用的是更多的选择,所以我假设你可以找到如何无法停止构建。

+0

但是如何在构建步骤不成功时实现它命令行。如果它是一个FTP部署者插件等,我们如何实现这一目标。 –

+1

@NevinRajVictor你需要在你的FTP部署者插件之前添加一个**新的构建步骤**,它只是检查分支,然后失败。然后将您的FTP部署器设置为仅在上一步成功时才运行 –

相关问题