有没有办法在TeamCity中下载项目的特定版本?
您实际上要做的是在TeamCity中创建工件。工件通常是构建输出,然后附加到单个构建运行,以便您可以在以后下载和查看它们。有一个步骤,包括在You're deploying it wrong! TeamCity, Subversion & Web Deploy part 5: Web Deploy with TeamCity创建构建工件。
您可以使用构建ID,内部版本号或其中一个静态构建标识符:
http://{TeamCity-Server}/repository/download/{BUILD_TYPE_ID}/{BUILD_NUMBER}/{ARTIFACT_PATH}
http://confluence.jetbrains.net/display/TCD65/Patterns+For+Accessing+Build+Artifacts
我们将从构建生成的.msi文件作为包含构建号的工件附加(您可以使用%env.BUILD_NUMBER%来查找工件路径)。
如上所述,可以使用REST API下载。也可以使用FluentTc库和流畅的api:
下载最新成功构建的工件:
IConnectedTc connectedTc = new RemoteTc().Connect(a => a.ToHost("tc")
.AsUser("MYUSERNAME", "MYPASSWORD"))
IBuild lastSuccessfulBuild = connectedTc.GetLastBuild(having =>
having.BuildConfiguration(with => with.Id("FluentTc"))
.Status(BuildStatus.Success));
IList<string> downloadedFiles = connectedTc.DownloadArtifacts(lastSuccessfulBuild.Id,
@"C:\DownloadedArtifacts");
按构建ID从特定构建的工件下载特定文件:
string downloadedFile = connectedTc.DownloadArtifacts(
buildId,
@"C:\DownloadedArtifacts",
"binaries.zip");
要从Team City获取最新的成功构建工件,您可以使用以下链接模板:
http://<buildServer>/guestAuth/downloadArtifacts.html?buildTypeId=<buildTypeId>&buildId=lastSuccessful
http://<buildServer>/repository/downloadAll/<buildTypeId>/.lastSuccessful/artifacts.zip
http://<buildServer>/httpAuth/repository/download/<buildTypeId>/.lastSuccessful/<some file.ext>