我正在使用TeamCity的Artifactory插件来存储构建中的工件。然而,插件做了一些我认为很奇怪的事情,而不是TeamCity-ish。
该插件为我的构建配置中的每个构建步骤的设置添加了一个新部分。本节允许我指定要存储在Artifactory中的工件。然而,奇怪的是,这些设置对于每个构建步骤都是特定的;这意味着如果我的构建有两个构建步骤,并且我设置了第一个构建步骤来存储工件,然后查看第二个构建步骤的设置,那么该插件似乎不会在那里配置。
进一步混淆问题的是the documentation指定插件使用“大多数”构建运行器类型,并列出几个示例:“Maven2,Maven 3,Ivy / Ant(支持常春藤模块),Gradle, NAnt,MSBuild,FxCop和Ipr。“
我的问题是,我应该为Artifactory配置哪个构建步骤?如果我将其配置为不在“工作”构建运行程序列表中的构建步骤,该怎么办?为什么插件允许/要求我多次配置它?
在我看来,Artifactory插件应该添加一个新的构建运行器,即“将工件部署到Artifactory”,这将给我一个支持的位置来配置它。
答案 0 :(得分:3)
TeamCity Artifactory插件确实允许您附加工件部署,作为特定步骤的一部分,而不是提供一个部署步骤的方法。这种实现的原因之一是允许不同的部署方法,具体取决于您使用的构建工具或技术。例如,使用Gradle时,Artifactory插件使用Gradle的API部署工件,从而提供本地部署方法。
另一个原因是在工作流程中何时应该进行部署时具有更大的灵活性。在常见的场景中,您希望在构建结束时将您的工件部署到Artifactory,但情况并非总是如此。有时,您需要执行一个步骤(例如命令行步骤)来运行执行特定作业的脚本,从而导致在Artifactory中部署和标记特定工件。然后,您需要第二步,将这些工件作为依赖项使用,并将新工件部署到Artifactory。我想添加额外的" Artifactory Deployment"步骤是可能的,这是可以在将来添加的东西。 JFrog CLI最近变得非常流行,可以轻松地作为命令行步骤嵌入,下载,上传和发布构建信息到Artifactory。
因此,要回答您关于应该使用Artifactory的构建步骤的问题,这取决于您和您的需求。您可以通过多种方式规划构建管道,并且我认为您应该采用最适合您工作流程的方式。 我希望这能回答你的问题。