上一次成功构建分支的TeamCity构件

13

我最近重新配置了我们的TeamCity构建配置,以利用分支功能将同一构建配置应用于同一代码库中的多个分支。

现在,我正试图设置自动化构建脚本,可以从TeamCity拉取最新的构建产物,但仅限于特定的分支。在原始配置的默认分支上,使用TeamCity REST API,我能够很好地使其正常工作,但是无法弄清楚如何格式化URL以拉取特定分支的构建产物。

我查看了以下资源,但均无结果:

http://confluence.jetbrains.com/display/TW/REST+API+Plugin http://confluence.jetbrains.com/display/TCD7/Patterns+For+Accessing+Build+Artifacts

有什么想法吗?


真是令人惊奇,像这样一个简单的需求竟然如此难以解决。我也在寻找同样的解决方案。有一种通过标签来拉取的方法,因此我尝试使用分支名称自动标记我的构建,但即使这样也是不可能的。 :( TeamCity 要倒闭了。 - WeSam Abdallah
@WAMRA 真令人沮丧...我更新了我的回复,并提供了对我们有用的解决方案,希望能帮到你! - jeremyalan
3个回答

5

我刚看到了这篇文章

我计划在接下来的几天里试一试,如果行得通,我会简要总结一下结果,以帮助其他有同样问题的人。

编辑:

抱歉耽搁了,我刚才意识到我没有回来报告我们是如何解决这个问题的。

我们最终升级了TeamCity(我们本来就应该这样做,所以没什么大不了的),升级完成后,它非常容易地运行起来了。我们现在正在运行TeamCity v8.1.5,并使用以下URL模式来拉取我们的构建产物:

http://<build-server>/httpAuth/app/rest/builds/buildType:<build-type>,branch:<branch>/artifacts/content/<artifact-path>

注意:我们使用httpAuth API来授权访问我们的构建产物,因此我们还必须为我们的部署创建一个新的TeamCity用户。


5

从链接页面中,我通过添加QueryString参数解决了问题:

?branch=<branch_name>

如果没有这个设置,它只会从默认分支下载构件。

我们的完整URL:

http://<buildserver>/repository/downloadAll/<BuildId>/.lastFinished?branch=<branchname>

这将从“buildid”配置下载“branchname”分支的最新版本。


1
您可以按照以下方式构建URL:
http://<TeamCity-Server>/guestAuth/repository/download/<BUILD_TYPE_ID>/<BUILD_NUMBER>/<ARTIFACT_PATH>

这个被投票否决的原因是什么?我们在我开发的一个应用程序中使用这个结构来部署我们工作场所的构建。 - Hexum2600
可能是因为 Q 涉及到了特定的分支。 - Sebastian Dressler
@Hexum2600,可能也是因为您提供的URL是针对特定构建版本的,而OP要求的是“lastSuccessful”构建。 - Glen K
1
你可以使用.lastSuccessful作为构建编号 ;) - Tomasz Racia

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接